Bookmarks

ブックマーク バー

Watch-1

受信トレイ - suigun1000@gmail.com - Gmail
メール - Ichikawa Shin'ichi - Outlook
ウォッチリスト - Wikipedia
NHK NEWS WEB|NHKのニュースサイト
Yahoo! JAPAN
@tenpoku1000/WatchさんはTwitterを利用しています / Twitter
Twitter / 通知
tenpoku1000に関するツイートアクティビティアナリティクス
WindowsUpdate | ニッチなPCゲーマーの環境構築Z
システム・ファイル システム Windows - 窓の杜
ソフトウェア開発の最新ニュース、ビデオ、ブック
GIGAZINE(ソフトウェア)
GIGAZINE(セキュリティ)
GIGAZINE(ハードウェア)

Watch-2

Slack | 進捗報告するところ | プログラミング言語処理系が好きな人の集まり
田中宇の国際ニュース解説
北森瓦版
自作PCユーザーがゲーム用PCの解説をします - 自作ユーザーが解説するゲーミングPCガイド
ソフトウェア/アプリ - PC Watch
半導体/周辺機器 - PC Watch
市場 - PC Watch
プログラミング プログラミング - 窓の杜
オフィス・ドキュメント フォント - 窓の杜
iOS | CoRRiENTE.top
ASCII.jp:Windows Info
ADMINISTRATOR STAGE|gihyo.jp … 技術評論社
Best Practices
Deep Dives

blog

Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog
Fixstars Tech Blog /proc/cpuinfo - このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
FPGA開発日記
Lispエイリアンの狂想曲 | κeenのHappy Hacκing Blog
クックパッド開発者ブログ
Engineers' Blog | マネーフォワード エンジニアブログ
blog.jxck.io
mizdev
won't fix
ASnoKaze blog
in neuro
uchan note
借り初めのひみつきち
https://seiya.me/posts

etc

スイングトレード ★ 日記. - livedoor Blog(ブログ)
デビット 銀行 - Google 検索
microsoft 買収 - Google 検索
不景気.com - 不況を乗り切る不景気ニュースブログ | 倒産・リストラ
アーティクル > ページ #1
イベント - PC Watch
Vulnerability Responses - Red Hat Customer Portal
Project Zero
teqblog | teqblog
もずはっく日記 - WebStudio
Hardware Specification - PRMs | 01.org
series-chipset-pch-datasheet - Google 検索
NVMe Specification – NVM Express
INCITS: INCITS 558 - Information technology - ATA Command Set - 5 (ACS-5)

Rail

鉄道 | タビリス
JR東日本(1)|会社別の鉄道ニュース・イベントなど|鉄道ファン・railf.jp
関東エリアの運行情報・運休情報:JR東日本
ニュースリリース:JR東日本
ニュースリリース | JR北海道 - Hokkaido Railway Company
jr北海道 - Google 検索
jr 廃止 - Google 検索
jr 減便 - Google 検索
金沢シーサイドライン 複線化 - Google 検索
YOKOHAMA AIR CABIN - Google 検索
在来線運行状況
中国エリア 運行情報:JR西日本列車運行情報
列車運行情報 - JR四国
災害に伴う運行のご案内 | 駅・きっぷ・列車予約 | JR九州

Market

BDIY 銘柄 - バルチック海運指数 名称 - Bloomberg Markets
株価指数先物 - Investing.com 日本
ダウ平均 - Google 検索
s&p500 - Google 検索
日経平均 - Google 検索
テクニカル分析カスタム相場- Investing.com
ドル円 - Google 検索
元円 - Google 検索
ドル元 - Google 検索
ドル ユーロ - Google 検索
ユーロ元 - Google 検索
主要商品先物一覧 - Investing.com 日本
原油先物 WTI 過去の価格推移-Investing.com
アメリカ 原油在庫量

Money

Google カレンダー
西暦和暦年齢一覧表
総合 - NHKプラス
SBI証券(旧SBIイー・トレード証券)-オンライントレードで株式・投資信託・債券を-
秋葉原情報 価格情報 価格動向 - AKIBA PC Hotline!
Amazon.co.jp: 過去90日 - コンピュータ・IT: 本
Amazon.co.jp: 過去90日 - 科学・テクノロジー: 本
【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
旬の海の幸【豊洲市場&産地直送】|豊洲市場ドットコム

その他

Wikipedia

その他

泉涌寺 - Wikipedia
伏見桃山陵 - Wikipedia
武蔵陵墓地 - Wikipedia
大日本航空 - Wikipedia
円相場 - Wikipedia
国際労働機関 - Wikipedia

Wikipedia

Wikipedia:拡張半保護の方針 - Wikipedia
Skin:Vector-DarkCSS - MediaWiki
Category:井戸端の話題 - Wikipedia
Wikipedia:井戸端 - Wikipedia

松山高知急行線

松山高知急行線 - Wikipedia
久万高原町営バス - Wikipedia
久万高原町 - Wikipedia
仁淀川町 - Wikipedia
越知町 - Wikipedia

『レールウェイ マップル 全国鉄道地図帳』発売。428ページ、全国1冊で復活 | タビリス
JR本州3社「序列異変」で東海が売上高最下位に、利益最下位は?【決算報20秋】 | ダイヤモンド 決算報 | ダイヤモンド・オンライン
現状のまとめ - JR東日本車両更新予想スレッド 倉庫Wiki
公共交通 | 稲敷市公式ホームページ
一般路線バス運行情報 | ジェイアールバス関東
一般路線バス時刻表・路線図 | ジェイアールバス関東
利用可能エリア|Suica:JR東日本
お値段 | タッチでGo!新幹線:JR東日本
Make your donation now - Wikimedia Foundation
デビットカード - Wikipedia
ツインクルプラザ - Wikipedia
20201204_KO_ryoseclose.pdf
JR東日本の車両形式 - Wikipedia
賢所乗御車 - Wikipedia
ひたち (列車) - Wikipedia
鶴見線 - Wikipedia
列車集中制御装置 - Wikipedia
鉄道に関する日本一の一覧 - Wikipedia
交通に関する日本初の一覧 - Wikipedia
等持院・立命館大学衣笠キャンパス前駅 - Wikipedia
南阿蘇水の生まれる里白水高原駅 - Wikipedia
トラブルに強い! 同業者も驚くあの私鉄のスゴ技 : 深読み : 読売新聞オンライン
トラブルに強い! 同業者も驚くあの私鉄のスゴ技 : 深読み : 読売新聞オンライン
トラブルに強い! 同業者も驚くあの私鉄のスゴ技 : 深読み : 読売新聞オンライン

YouTube

【LIVE CAMERA】渋谷スクランブル交差点 ライブ映像 Shibuya scramble crossing
YouTube
田村ゆかり/好きだって言えなくて(*Sunny side Lily*ver.) - YouTube
田村ゆかり/「好きだって言えなくて」MUSIC VIDEO - YouTube
森高千里 『私がオバさんになっても(スローヴァージョン)』 【セルフカヴァー】 - YouTube
森高千里 『私がオバさんになっても』 (ライブ) - YouTube
森高千里 『渡良瀬橋』 (PV) - YouTube
「渡良瀬橋」と私 - YouTube
渡良瀬橋/森高千里 - YouTube
【MV】誰がために-2012ver.- - 成田賢 - YouTube
森口博子「GUNDAM SONG COVERS」全曲ダイジェスト - YouTube
森口博子/宇宙の彼方で (「機動戦士ガンダム THE ORIGIN Ⅳ 運命の前夜」主題歌) - YouTube
DREAMS COME TRUE - 未来予想図 Ⅱ ~VERSION‘07~ (from Live from DWL 2015 Live Ver.) - YouTube
【ゴダイゴ】銀河鉄道999をピアノで弾いてみました - YouTube
Justin Bieber, Mariah Carey - All I Want For Christmas Is You (SuperFestive!) (Shazam Version) - YouTube
広瀬香美 / ゲレンデがとけるほど恋したい - YouTube
レナウンCM 80年代⑤ - YouTube
レナウンが主力ブランドを譲渡、会社存続は困難な見通し 買収合併 - 不景気.com
「レナウン」に再生手続の廃止決定、破産手続へ移行 国内倒産 - 不景気.com
11/7 統計学はなぜ哲学の問題になるのか - YouTube
哲学オンラインセミナー
哲学オンラインセミナー - CAMPFIRE (キャンプファイヤー)

ハードウェア

セカイモン | sm951 ahci | eBay公認海外通販 | 日本語サポート、日本円決済
ヤフオク! -h97 動作(マザーボード)の中古品・新品・未使用品一覧
ココロストア:IoT関連商品・サービス
【国認定】パソコンの無料回収(処分・廃棄)サービス「リネットジャパン」
主な取扱不可製品
摂氏15度、室温超伝導状態を世界で初めて実現。しかし実用化にはまだ壁 - Engadget 日本版
産総研、人工光合成における次亜塩素酸の生成を抑制する技術 ~太陽光水素製造システムの実用化や天然光合成の理解を促進 - PC Watch
「電子レンジ」で"ビニール袋を宝の山にする"技術が登場! 廃棄プラスチックから水素とカーボンナノチューブを回収できる - ナゾロジー
わずか6分で電気自動車を90%まで充電する可能性を秘めたバッテリー材料が開発される - GIGAZINE
【プレスリリース】⾼純度の砂糖を⽣産する「砂糖イネ」の開発に成功 -砂糖きび、砂糖大根(甜菜)に続く、「第3の製糖作物」を作成- | 日本の研究.com
小惑星アポフィスは2068年に地球に衝突する可能性がある - ナゾロジー
化石燃料の代わりに「鉄」でクリーンなエネルギーを生み出す技術が開発中 - GIGAZINE

Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MITオープンコースに Python & CS入門があるのだが(これが一番人気らしい)、その問題(ProblemSet1-A)に「貯金は年利r%なので、毎月r/12づつ増えます」と書いてあり、それは違う…とか思ったり。 https://t.co/01msFrBgj0」 / Twitter
Assignments | Introduction to Computer Science and Programming in Python | Electrical Engineering and Computer Science | MIT OpenCourseWare
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(年利→月利は、÷12ではなく(1+r)の12乗根という話)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「正確にはドルコスト平均法ではなく時系列で分散投資する効果の検証(追記参照)。面白かった / https://t.co/qmYpRaugXQ」 / Twitter
ドルコスト平均法の効果検証(モンテカルロ法) - モーくん
Kazuho OkuさんはTwitterを使っています 「貿易依存度30%くらいの国なんだから米ドルベースで見るのは円ベースで見るよりおかしいんじゃないのかな。購買力平価GDPで見ると、自民民主時代関係なく21世紀は英仏と同レベル https://t.co/rm2eCk31f3」 / Twitter
過去20年間の日本経済(GDP)の推移をグラフで眺める(購買力平価GDP編その1) - 昭和生まれ30代経理マンが令和に始めたBlog
Kazuho OkuさんはTwitterを使っています 「仮に貿易依存度が0.0000001%の国を考えてみれば、貿易依存度に関係なく米ドルで考えることの問題点がわかるかと思います。そして、インフレ率の影響を除外できるのが、名目値でなく購買力平価を使う理由ですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「円ベースの名目GDPが出てくるのは、安倍政権が円ベースの名目GDPを政策目標に置いたからかな。あれ自体はインフレターゲット的なものとして妥当だったんじゃないの」 / Twitter
Shinji KonoさんはTwitterを使っています 「残念ながら遅延はかなりあるので高速取引には向きません。株式の高速取引は本来は法律的に禁止するべきもの。そんなのスケールするわけないので。」 / Twitter
森崎正人さんはTwitterを使っています 「@shinji_kono 株取引には、指値と成行があるので、高速取引は必須。成行は指値よりプライオリティが高いのが昔から(場立)からのルール。1st in 1st outの単純なマッチングでないので。 でないと、暴落/暴騰時の正しい処理が出来ない。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「海外の生活水準が10年ぐらいで数倍になっているとは思えないので、単にドルやユーロの貨幣価値が暴落しているのだが円との為替に反映されていないだけでは。」 / Twitter
ぱんかれ(pumpCurry)🎃🍛さんはTwitterを使っています 「日本人への給料下げ圧力が厳しすぎるせいで物価が全くあがっていかない為、海外が順調に物価と給与水準が上がっててそのレベルに沿って価格設定されてるので、iPhoneが20万円超えて日本人には買うの辛いレンジに入ってしまった。相対的に米国西海岸だと3万5000円~、全体でも9万~の程度な感覚のはずで」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「いずれ相場観を合わせるために強力な円高が発生すると思っている。」 / Twitter

バルチック海運指数 - Google 検索
ログイン画面/auカブコム証券
ログイン/マネックス証券 取引サイト
Blockchain Wallet - Exchange Cryptocurrency
PayPal、ビットコインなどの仮想通貨に対応。まずは米国内から - PC Watch
株探 | 株価注意報 - 本日のゴールデンクロス銘柄(5日と25日移動平均線)
株探 | 株価注意報 - 本日のデッドデンクロス銘柄(5日と25日移動平均線)
Secured Overnight Financing Rate - Federal Reserve Bank of New York
信用評価損益率 信用残 日経平均比較チャート
投資家が注目する「信用評価損益率」とは? | 東証マネ部!
株価移動平均線の見方・使い方(1)~移動平均線の基礎 | テクニカル分析指標 | 指標の見方・使い方 | 投資のノウハウ | 株の達人
移動平均線を使いこなす | みんなの株式
指数平滑法 - Google 検索
インバースはなぜ減価するのか - room5110
コンタンゴはなぜ減価するのか VXX(1552)が下がる理由 - room5110
【JR】関連が株式テーマの銘柄一覧 | 株探
NAKAMURA Minoru's Diary (2012年7月)
日経平均採用銘柄の株価一覧 :株式 :マーケット :日経電子版
インディカティブNAV・PCF情報 | 日本取引所グループ
営業時間・休業日一覧 | 日本取引所グループ
先物・オプション関連 | 日本取引所グループ
取引最終日 | 日本取引所グループ
大阪取引所障害時メール | 日本取引所グループ

気象

天気 - Google 検索
東京アメッシュ
環境省熱中症予防情報サイト 暑さ指数(WBGT)ランキング
気象庁 | 台風情報
気象庁 | 天気図
気象庁|地震情報
停電情報|東京電力パワーグリッド株式会社
理研天気予報研究:ホーム
GSMaPxNEXRA

SBI

SBI証券(旧SBIイー・トレード証券)-オンライントレードで株式・投資信託・債券を-
SBI証券|株・FX・投資信託・確定拠出年金・NISA
ログイン | SBI FXトレード
サービスガイド | SBI FXトレード
VCTRADE
サービス概要|SBI VCトレード
VCTRADE Pro
20190731_release.pdf
ログイン|住信SBIネット銀行
スマート認証NEO | 商品・サービス | 住信SBIネット銀行
住信SBIネット銀行株式会社:FIDO認証導入インタビュー - FIDO Alliance
手数料 - ATMご利用手数料|住信SBIネット銀行
SBIソーシャルレンディング|貸付型クラウドファンディング
よくあるご質問 | SBIソーシャルレンディング|貸付型クラウドファンディング
SBIポイント ログイン|SBIポイント・SBI iD
ファンド詳細│投資信託│SBIアセットマネジメント

楽天

楽天証券 | ネット証券(株・FX・投資信託・確定拠出年金・NISA)
手数料 | 楽天証券
プット・コールレシオ | マーケット情報 | 楽天証券
楽天ウォレット会員ログイン|暗号資産 (仮想通貨)の取引ならRakuten Wallet | 楽天ウォレット
サービス概要|楽天ウォレット
楽天銀行(旧イーバンク銀行)|ネットバンク
手数料一覧(振込手数料・ATM手数料など) - 個人のお客さま|楽天銀行
楽天モバイル メンバーズステーション
通信・エリア | 楽天モバイル
楽天ブロードバンド: プロバイダ・インターネット接続
JIS&TのiDeCo<イデコ>(個人型確定拠出年金)ポータル
日本インベスター・ソリューション・アンド・テクノロジー株式会社
20201001_311004_rakutenshoken.pdf

GMO

ログイン | VALUE-DOMAIN(バリュードメイン)
GMOクリック証券 - FXなど投資を身近にもっと便利にするネット証券会社
GMOクリック証券 - 手数料・費用一覧 | サービス一覧
ログイン | GMOコイン
手数料(入出金・取引)| GMOコイン
GMOあおぞらネット銀行
ATM手数料・振込振替 | 手数料 | GMOあおぞらネット銀行
ご質問詳細 | よくあるご質問 | GMOあおぞらネット銀行
GMO ID

郵便局

レターパックライト(370円)(20部セット): 切手・はがきストア|郵便局のネットショップ
94円普通切手・スミレ: 切手・はがきストア|郵便局のネットショップ
郵便局 | 日本郵便株式会社
ログイン
ゆうちょダイレクト ログイン(お客さま番号入力)
料金一覧:貯金・為替-ゆうちょ銀行
ゆうちょ認証アプリーゆうちょ銀行
ATMご利用時間・料金ーゆうちょ銀行
ATMの引き出し制限等についてーゆうちょ銀行
Pay-easy(ペイジー)-ゆうちょ銀行

決算短信

2021年3月期 | 決算説明会 | 双日株式会社
決算短信 | IR資料室 | 住友化学株式会社
SBIホールディングス 決算情報|SBIホールディングス
2020年度決算短信・説明会資料|楽天株式会社
決算短信 | IR資料室 | IR情報 | GMOフィナンシャルホールディングス
決算短信 | クリヤマホールディングス株式会社
IRライブラリ : 決算短信 | 株式会社フェローテックホールディングス
決算短信:株主・投資家情報:FREUND フロイント産業
決算短信 | 平河ヒューテック
決算短信 | IRライブラリー | 明電舎
決算短信|IR情報|小野建株式会社
決算短信 | 住友大阪セメント

公的機関等

社会保障

住まいに困っている 東京都福祉保健局
「水害にあったら、どうすればいい?」 このチラシが、とてもわかりやすい
労働者健康安全機構 トップページ
中小企業庁:セーフティネット保証制度 概要
がん相談支援センターにご相談ください|がんになったら手にとるガイド [国立がん研究センター がん情報サービス]
生活費等の助成や給付など:[国立がん研究センター がん情報サービス 一般の方へ]
がん相談ホットライン | 日本対がん協会
がんの「余命宣告」の正しい意味を知っていますか?(大須賀 覚) | ブルーバックス | 講談社(1/4)
お金が無くても保険証が無くても病院受診する方法!(藤田孝典) - 個人 - Yahoo!ニュース
国や自治体からお金を借りられる、公的融資制度&給付金まとめ。キャッシングでお金を借りる前に、これらの貸付制度が使えないかの確認を! - クレジットカードの読みもの
一般社団法人 個人版私的整理ガイドライン運営委員会
トップページ|全国社会福祉協議会
NPO法人POSSE
法務省:「更生保護」とは
日本内科学会雑誌:新型コロナウイルス感染症特集の公開について | 日本内科学会の取り組みについて | 日本内科学会

縦割り110番

受け付けた提案及び所管省庁からの回答:「規制改革ホットライン」 : 規制改革 - 内閣府
内閣府共通意見等登録システム - 内閣府
縦割り110番、内閣府HPでも一時停止 河野規制改革相: 日本経済新聞
「縦割り110番」、受け付けの一時停止を検討 要望6000件超え 河野氏「霞が関の処理に限界」 - ITmedia NEWS
「縦割り110番」の裏側初潜入!どんなメンバーがどんな部屋で?明かされる“チーム河野太郎” のリアル

地デジ高度化実験受信対策センター トップページ
チャンネル一覧 | 一般社団法人放送サービス高度化推進協会(A-PAB)
官報決算データベース
月例経済報告 - 内閣府
今週の指標 - 内閣府
需給ギャップと潜在成長率 : 日本銀行 Bank of Japan
実効為替レート : 日本銀行 Bank of Japan
「地震保険は損だ」という考えが危ない理由 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
政府統計の総合窓口
e-Gov法令検索
登記情報提供サービス
登記・供託オンライン申請システム 登記ねっと 供託ねっと
政府の事業が検索できるサイトJUDGIT!(ジャジット)
証券・金融商品あっせん相談センター
会派名及び会派別所属議員数
会派別所属議員数:参議院
事故物件の売却なら【お困り不動産解決本舗】へ|事故物件はお任せください
何故お役所ってオワコンIEが大好きなの?|楠 正憲(国際大学GLOCOM 客員研究員)
海外から注文していない植物が郵送された場合は、植物防疫所にご相談ください:植物防疫所
「研究開発型スタートアップと事業会社のオープンイノベーション促進のためのモデル契約書ver1.0」を取りまとめました (METI/経済産業省)
アルトア | スモールビジネスの新しい選択肢となるオンライン融資
支援情報検索サイト
急増する世界の「データ」流通量 | 地域・分析レポート - 海外ビジネス情報 - ジェトロ
総務省|東海総合通信局|電波の人体に対する影響

税金

住民税

千葉市:市税過誤納金等の還付・充当
還付(住民税)について|東京都北区
市税の領収証書は何年保存したらよいのか。 | 市税の納付(口座振替) | 市税 | くらしの手続き | 西宮市ホームページ
上場株式等の譲渡損失の繰越控除や損益通算をしたら住民税の申告も検討しよう
株式等の譲渡益や配当に対する税金:練馬区公式ホームページ
現役税理士が所得税と住民税の控除額の計算方法の違いをわかりやすく解説 - 経営ハッカー | 「経営 × テクノロジー」の最先端を切り拓くメディア
<税金の種類><個人住民税> | 東京都主税局
所得税と住民税の計算方法
住民税 税額シミュレーション
名古屋市:税額の計算方法(暮らしの情報)
名古屋市:市民税・県民税の計算例(暮らしの情報)
住民税はどうやって決まる? その計算方法とは  - INTERNET Watch
サラリーマンと個人事業主の税金の話まとめ:源泉徴収票の見方・年末調整の書き方から住民税の計算方法まで - INTERNET Watch
地方税申告の合理化 | 衆議院議員 河野太郎公式サイト

所得税

国税庁

No.1300 所得の区分のあらまし|国税庁
No.1199 基礎控除|国税庁
No.1240 外国税額控除|国税庁
No.2240 申告分離課税制度|所得税|国税庁
No.2260 所得税の税率|所得税|国税庁
No.1250 配当所得があるとき(配当控除)|国税庁
No.1330 配当金を受け取ったとき(配当所得)|国税庁
No.1331 上場株式等の配当所得等に係る申告分離課税制度|国税庁
No.1474 上場株式等に係る譲渡損失の損益通算及び繰越控除|国税庁
No.1521 外国為替証拠金取引(FX)の課税関係|国税庁
No.1522 先物取引に係る雑所得等の課税の特例|国税庁
No.1523 先物取引の差金等決済に係る損失の繰越控除|国税庁
No.1524 ビットコインを使用することにより利益が生じた場合の課税関係|国税庁
01.pdf
[手続名]所得税及び復興特別所得税の更正の請求手続|国税庁
No.2026 確定申告を間違えたとき|国税庁
新型コロナウイルス感染症に関連する税務上の取扱い関係

ビットコインの譲渡における消費税との税務関係について税理士が解説 - エキサイトニュース(1/2)
ビットコイン・仮想通貨の「雑所得課税」に有利な材料? 副業の所得や年金などと通算 | ZUU online
遺産としての仮想通貨、鍵が不明で引き出せなくても相続税がかかる | 日経 xTECH(クロステック)
青色申告、電子なら控除10万円増 20年1月から  :日本経済新聞
配当所得は所得税では総合課税で、住民税では申告不要にすれば有利になるケースとは? - やまばた税理士事務所
みずほ証券:証券税制早わかり 株式の税金
松浦晋也さんのツイート: "これ、もっと前があるのだ(財務省ページからは消されているが、以前は載っていた)。1970年代初頭はもっと厳しい累進課税だったのである。その税制で、日本は高度経済成長を達成している。「意地悪ばあさん」で「昭和元禄浪花節」と歌った時代である。… https://t.co/3UDrmnNSGY"
貧富格差を拡大する方向に進んできた日本の税制 - WirelessWire News(ワイヤレスワイヤーニュース)
松浦晋也さんのツイート: "財務省は消しても国会図書館ウェブアーカイブには残っている、というわけで、このページである。 https://t.co/6xFPj5r5yY"
所得税の税率構造の推移 : 財務省
外貨預金の損失で「節税」できる? | ビジネスジャーナル

年金

日本年金機構
国民年金保険料|日本年金機構
国民年金前納割引制度(現金払い 前納)|日本年金機構
国民年金保険料の「2年前納」制度|日本年金機構
企業年金連合会(Pension Fund Association)
年金13万円、生活苦に悩む高齢者たちの実情 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
悠々自適な老後は夢のまた夢。「70歳まで就業」案に失意の声 - まぐまぐニュース!
「年金積立金の減少」を騒ぎ立てる人が陥っているひどい勘違いとは | 自分だけは損したくない人のための投資心理学 | ダイヤモンド・オンライン

信用情報

信用情報 - Wikipedia
日本信用情報機構 - Wikipedia
JICC 日本信用情報機構(指定信用情報機関)| HOME
全国銀行個人信用情報センター - 全国銀行協会
指定信用情報機関のCIC

マイナンバー

国税庁法人番号公表サイト
総務省
社会保障・税番号制度 - 内閣府
マイナンバー社会保障・税番号制度
地方公共団体情報システム機構 地方公共団体情報システム機構
マイキープラットフォーム
サービストップ | マイナポータル
マイナンバーカード総合サイト/トップページ
事前の準備 : 公的個人認証サービス ポータルサイト
証券会社へのマイナンバー登録・通知の義務化。通知しないとどうなる? | Money Lifehack
銀行の口座開設や既存口座でのマイナンバー(個人番号)の登録・通知の義務化のタイミングはいつ? | Money Lifehack
CSS2017キャンドルスターセッション
マイナンバー制度について-ゆうちょ銀行
スイングトレード ★ 日記.:【悲報】マイナンバー提出期限3年延長が決定!提出するだけ無駄だった - livedoor Blog(ブログ)

【確定申告書等作成コーナー】-TOP-画面
確定申告期に多いお問合せ事項Q&A|国税庁
【税金の還付】|国税庁
振替納税の領収証書送付取りやめのお知らせ|国税庁
クレジット販売の場合の領収書|国税庁
No.7105 金銭又は有価証券の受取書、領収書|国税庁
国税クレジットお支払サイト
一般会計税収の推移 : 財務省
税収に関する資料 : 財務省
負担率に関する資料 : 財務省
財政に関する資料 : 財務省
予算 : 財務省
平成31年度財務省所管予算概算が決まりました : 財務省
日本銀行が国債の引受けを行わないのはなぜですか? : 日本銀行 Bank of Japan
GDPとGNI(GNP)の違いについて - 内閣府

ISP

What Is My IP Address - See Your Public Address - IPv4 & IPv6
あなたの IPv6 をテストしましょう。
スピードテスト - Google 検索
Wild Speed インターネット回線 スピード測定
本の虫: CloudflareのDNSからArchive.isが解決できない問題について
1.1.1.1 — the Internet’s Fastest, Privacy-First DNS Resolver
Get Started  |  Public DNS  |  Google Developers
サービス情報サイト
個人向けSIM・インターネットサービスのIIJmio
IIJmio:DS-Liteについて
IPv6接続「v6プラス」のご案内:BIGLOBE会員サポート
格安SIMならBIGLOBE SIM
ドコモオンラインショップで「SIMのみ契約」、スマホ購入せずに回線契約が可能 - ケータイ Watch
コロナ禍で高速なv6プラスも一部で大幅な速度低下 - PC Watch
Yasuhiro MorishitaさんはTwitterを使っています 「ICANNと契約しているgTLDレジストリの側から見た場合、今は「契約に基づいてWHOISに加え、RDAPサービスも提供することになった」という状態だと思います。 今後、WHOISサービスの廃止とか、契約上オプションにするとかが行われることはあり得ますが、今はまだそうなっていないのではと。 #janog」 / Twitter
「ファイブ・アイズ」によって国民のプライバシーが侵害される危険性はあるのか? - GIGAZINE
NURO光で使用する管理者アカウントが特定される、見えてはいけない画面がまる見え&root権限も奪取可能 - GIGAZINE

Doc

Bing
DuckDuckGo — Privacy, simplified.
Google Scholar
Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
Stack Overflow - Where Developers Learn, Share, & Build Careers
高度なソースコード検索

その他

(0)市川 真一にマシュマロを投げる | マシュマロ
docin.com豆丁网-分享文档 发现价值

その他

老害

7594591200220899443さんはTwitterを使っています 「たとえばgitを捨てられない人はgitにしがみつくしかなくなるし、そうなったらもはや老害に片足突っ込んだも同じである。今、我々が当たり前のように使っているgithub、newrelic、heroku、それらより良いものに明日、乗り換えられるか?常に新しいものを取り込んでいるか?」 / Twitter
7594591200220899443さんはTwitterを使っています 「若者の足を引っ張る老害がいるのは事実だし対策も必要だが、過去の経験から言うと別にそれは老害自身が手遅れだからかどうかとはあまり関係ないと感じる。立派に成功した人や教育者にも老害はいた。手遅れだけ分断すれば万事解決という立場には与しがたい。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「@shyouhei 「Xした方が良い」は、それですべての問題が解決するという主張ではありません。「Xすれば万事解決」とは主張していないので、与しがたいという意見には同意します。」 / Twitter
7594591200220899443さんはTwitterを使っています 「@nishio はい。まあ若者に近付こうとする大人がそもそも全員ダメという可能性も自分としては感じるので、そういう方向性の主張の一部としてであれば割と納得できます。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「そういう人は若者が成功しそうになると嫉妬して足を引っ張って「俺が助けなければこいつはダメなんだ」という構図を作ろうとするから、若者のことを最優先で考えるならそういう人を近づけてはいけない」 / Twitter
7594591200220899443さんはTwitterを使っています 「環境が違えば俺だってもっといい人生を送れたはずみたいに思ってる人はどうせお前らの人生なんかもう手遅れなんだからそれよりまだ今救えば間に合う若者の人生をどう救っていくかの方を真剣に考えなよ。」 / Twitter
7594591200220899443さんはTwitterを使っています 「むしろ我々だよ。若者が真に警戒すべきなのはさ。過去に他人に足を引っ張られてきた自覚がある我々。そういう経験が目を曇らせるんだ。「自分の経験が他人にも通用すると勘違いする」ってのが老害の構造なわけじゃん。そこ自分でも最近怖いよ。やっちまってないかな?っていうの。」 / Twitter

時代遅れ

7594591200220899443さんはTwitterを使っています 「「まったく同じシステムをPerlやらRubyやらで作るとJavaで作った時の10分の1とかの工数でも余裕で作れる」はさすがに十年前にはすでに鼻で笑われてたような主張で、今更言う人がいる事にそもそも衝撃を受けましたね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「Bruce TateのFrom Java to Rubyが原著2006年とかだもんねえ。まあ十年前にはもう賞味期限切れてたよね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「プログラマーは業務の他にずっと勉強していないと時代に取り残される、のだとしても、別に時代遅れだったからといって即死するわけではないのだなあ。なるほどなあ。」 / Twitter

小池都知事のアラビア語力をどう評価したらいいのかわからない方へ|jaber|note
ダム Advent Calendar 2020 - Adventar
学会の役割:難しい評価をすること
科研費の話
ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ
AIやロボットを導入した企業はむしろ雇用が増えるという研究結果 - GIGAZINE
【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256 今読んだこの記事良いです。この記事で言う「ブラックボックス化」というのを意識すると,オリジナルのコンセプトにフォーカスできます。 https://t.co/8ZCiSB9QGW」 / Twitter
才能ない人を観察してどうやったらできるようになるか考えてみた|牛尾 剛|note
Shiro KawaiさんはTwitterを使っています 「初期の恐れを乗り越える、Paulが挙げてない手法のひとつがあって、それは「ノルマを自分で決めてしまう」、例えば1日ひとつづつ何か作る、というのをしばらく続けるのは一定の効果があると思う。うまくできなくてもとにかく今日の分を上げないとならない、と言い訳できる。 https://t.co/AB5mfvCc4N」 / Twitter
Early Work
Shiro KawaiさんはTwitterを使っています 「注意点は、ある程度慣れると惰性で量産できる段階に達して、そうなってくると効果が薄れるから、ゴールを設定しなおさないとならない。」 / Twitter
Vさんのツイート: "そういえばこの間「インターネットで作り上げた自分」と「実際の自分」の技術力の差がすごいあって色々辛い人が存在するという話を聞いた。"
Shinya KatoさんはTwitterを使っています: 「最近思うんだけど「目標を達成するためのロードマップを描くために必要な情報を集める」ってだけで十分な成果だよなぁって」 / Twitter
Genichi KataokaさんはTwitterを使っています 「ITリテラシーって、「今知っている」ことより、見たこともないものも忌避せず使ってみるとか、知らないこともとりあえず調べてわかった範囲でやってみるとか、そういう姿勢のほうがずっと大切なんだな、ということを最近実感している。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「手順は言語化しやすく検索もしやすい。インターネットで公開されていう記事にコンピューターの分野が多いのは、コンピューターを扱っている人が書き手として多いからだけでなく、コンピューターに関する課題には「手順が分かればなんとかなる」ようなものが多いからかもしれない。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「検索エンジンからの流入という「読み手が能動的に情報を取りに行く世界における記事」の話なので、SNSのような世界における書き手には適用できないか。SNSで多いのは何と言っても時事を含むネタだしな…。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「前々職時代、「このコードなんでこうなってるんだろう意味わからん」と思ってgit blameしたら「なんとかを追加」みたいなコメントしかない超でかビッグバンコミットだったんでよく前任者を恨んだけど、ここ数年、新しいものを作るのが主になった今は気持ちがとてもわかる😰」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幸いその「ここ数年」に私が書いたコードの大半は私しか触っていないので大きな問題はない😅」 / Twitter
首相官邸さんはTwitterを使っています 「2050年カーボンニュートラルへの挑戦は、日本の新たな成長戦略です。この挑戦を産業構造や経済社会の発展につなげ、経済と環境の好循環を生み出していきたいと思います。 温暖化対策推進本部を開催し、全閣僚に対し、「地球温暖化対策計画」などの見直しを加速するよう指示しました。 https://t.co/YdH3a31Vwt」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ソフトウェアエンジニアリングといっても分野が広いので、僕は検索チームとかではあんまり活躍できなかったわ。小気味よく動くものをチョロっと作るみたいなのは得意だけど、データサイエンスっぽいのはいまいちだし。」 / Twitter
ジロウさんはTwitterを使っています 「性にしても姓にしても、「自分の信じる価値観以外の価値観もOKになる」こと自体が耐えがたいストレスになる人がわりと多くて、自由や多様性そのものが人間にとってストレスをかける(不安にする)ということをスルーしていると、なかなかこれ以上前には進まないんじゃないかという気もしている。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「世の中実際、銀の弾丸で勝つんじゃなくて、ほとんどは、やるべきことを全部着実にこなして失敗しなかった人が勝つイメージ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たまたまだけど CPU にせよ何らかのシステム設計に関してもそうなんじゃないの、というか、コンピュータエンジニアってだいたいアムダールの法則なんてだいっきらいだーーーーー わーーーーーんん」 / Twitter

blog サービス

Crieit - プログラマー、クリエイターが何でも気軽に書けるコミュニティ
Zenn|プログラマーのための情報共有コミュニティ
note ――つくる、つながる、とどける。
DEV Community 👩‍💻👨‍💻
Hashnode: A one-stop platform to start blogging as a developer.
Medium – Get smarter about what matters to you.

企業

JR

やわたじさんはTwitterを使っています 「流石に見に来たわ https://t.co/16Y9asS3gO」 / Twitter
やわたじさんはTwitterを使っています 「WEST EXPRESS銀河一番列車 京都31番入線 https://t.co/nUhJoCxGZG」 / Twitter

人事

Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「伝統的日本企業で、なぜ博士より、無知で無垢な若者の方が好まれるのか。それは年功序列の社内身分制度を前提にしているから。新入り<先輩、という不等式が成り立たないと秩序が乱れる。この不等式は、ビジネス上の市場価値とは無関係で、会社の村社会の秩序だけから来ている。それが問題。」 / Twitter
Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「なぜ問題なのか。市場価値より村社会の秩序が優先されるような会社は(国は)、長期的に見て、必ず市場競争に負け、淘汰されるから。それこそ現に日本で起こりつつあること。死にたくなければ、既得権益死守勢力には退場願うしかない。企業はもちろん大学でもそうだよ。」 / Twitter

企業文化

Shinji KonoさんはTwitterを使っています 「この「これも自動化できるのではないか」ってのはTeal的な自律組織の特徴なんだよな。昔の日本な中小企業には普通にあった。破壊した人たちがいるんだよな。 https://t.co/wvJCNarQXe」 / Twitter
業務ハックしてクビにならないために|ふらふら|note
エンジニアに独学を期待するのはもう時代遅れだと思う。 - ヨーロッパで働くIT土方社長のブログ
Shinji KonoさんはTwitterを使っています 「経済止めてまでっていうけど、特に生活必需品には困ってないじゃん。 今までの消費競争とか無意味な仕事や通勤 がおかしかったってことでしょ。」 / Twitter
ところてんさんはTwitterを使っています 「結局のところ、DXがわけわからん概念になっているのは、 経産省が2025年の崖レポートで、日本固有の問題をDXの一部だとしてしまったがために、グローバルにおけるDXの定義と、日本のDXの定義がズレてしまっていることにある なので、これを紐解いてあげると簡単な概念になる https://t.co/LyrKVA70bN https://t.co/MJfEGFN8J3」 / Twitter

CTO

Keiji ARIYAMAさんはTwitterを使っています 「日本CTO協会の件、業界として政治に関わろうとする姿勢はとても良いと思うので、ぼくは今回の取り組みを応援しています。 また、この業界は、誰かの初手がイマイチだった時に厳しく当たりすぎるきらいがあるのは本当に改善した方がいい(Remember COCOA)と思っている。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「話題の提言をなんとなく読み始めたんだけど、「ITサービスで最初から完璧は不可能だからまずは最低限のベータ版を素早く利用者に届ける」という前提と、「技術的負債を生み出さぬようにしなければならない」とう話は、最近になった再発見された「技術的負債」という語の本来の含意にあっていないのでは」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「最初から全部はできないけどまずはリリースするために後で返せるところは負債にしておいて後でちゃんと返せばいい、というのが技術的負債だったはず。それを可能にするのは失敗を許容できる態度であり、透明性が必要なのもそれを可能にするため。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「次の「ソフトウェアファーストな法整備」の項目にある「要求仕様のリファクタリング」という表現も地味に引っかかりがある。法令を要求仕様としたら、これにはテストが書けないので、リファクタリングではなく単なる見直しであるはず。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「このへんのふわっとした用語は、かっちりした文書ではかっちりと使ったほうがいいです。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「少なくとも技術的負債とリファクタリングという専門用語の使い方が間違っているのでは、という指摘は置いておいて、おそらくCTO協会からの提言としてユニークな点は「デジタル庁長官にCTO人材を」にあると読みました。でもこれむしろ「CTO的な役割を置け」なんじゃないかなあ。https://t.co/aEPf70ubNw」 / Twitter
デジタル庁の創設に向けた提言 | 一般社団法人 日本CTO協会

独禁法訴訟

イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる https://t.co/9BgKVa3TG7」 / Twitter
Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる - GIGAZINE
イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「"Googleは検索エンジンとしてデフォルトの位置を守り、取引先が競業他社と契約することを防ぐために、毎年、Apple、LG、Motorola、Samsungなどの人気のあるデバイスメーカーを含むディストリビューターや、(略)そしてMozilla、Opera、UCWebなどのブラウザ開発者に数十億ドル(数千億円)を支払います"」 / Twitter
イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「この訴訟、意図に反してMozillaを潰しそう…という気がしてきた」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@syuu1228 未だに大きな収入源ですしねぇ。」 / Twitter

買収その後

デジタルライブラリーのScribd、SlideShareをLinkedInから買収 - ZDNet Japan
Welcome SlideShare to the Scribd community — Scribd Blog
Microsoftが延命したYammerの今後は(上) - Microsoftが延命したYammerの今後は:CIO Magazine
Microsoftが延命したYammerの今後は(下) - Microsoftが延命したYammerの今後は:CIO Magazine
【2018年6月版】プレゼンテーション共有サービス『Speaker Deck』の使い方 - 八雲文庫ブログ
Fewer and Faster - Measure, Improve and Repeat

広く使ってもらうための戦略

uint256_tさんはTwitterを使っています 「誰かに使ってもらえるものを作るにはどうすればいいんだろうね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t ポイントは「巨人の肩」と「応用事例も作ること」そして「世界に向けて発信すること」だと思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「巨人の肩」というのは,既存のインフラとの親和性を良くすること,差別化点をはっきりすることが重要になってきます。既存のものに対する調査と,階層構造を踏まえることが大事になってきます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「応用事例を作ること」は,自分が発信したいプログラムを活用した事例を作り,それも含めて発信することが大事なポイントです。そうすると,もともとのプログラムをどう改良していけばいいかの指針も得られます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「世界に向けて発信すること」は,単にGitHubに公開し,Twitterでつぶやいているだけでは,誰かの目に止まることは難しいということです。もっと広く情報を発信しないと,注目を集めません。」 / Twitter

情報発信の利益・不利益

Rui UeyamaさんはTwitterを使っています 「自分が何年も苦労して獲得した技術的ノウハウを誰でも簡単に学べる親切なオンラインブック(無料)を書くみたいなの、何も得してないみたいだけど、ここだけの話すごく得なんですよ。今は得になってないけど。どう得になるのかもわからないけど、損得でいうと相当プラスになる気がする(根拠なし)。」 / Twitter
ogiwaraさんはTwitterを使っています 「例えば「OSの基礎がわからない」って言われてOS自作入門をすすめるの、正直なところにわかだと思う OSのコンセプトとか、もっと適した教材が他にもたくさんある」 / Twitter
いわんこ(小学生)さんはTwitterを使っています 「@designpatterngf これは本当にそう。 OS自作入門とかそのへんは、OSを作ってCPUとかメモリを理解しましょう、って感じですよね。 OSの勉強するならタスクの管理とか権限とか、仕組み的な感じのものを期待してる人が多そう。」 / Twitter
ogiwaraさんはTwitterを使っています 「適切な教科書って作るのめっちゃくちゃ大変なんですね…」 / Twitter
ogiwaraさんはTwitterを使っています 「楽しく読め、かつとてつもなく効率的にキャッチアップできるので、本当に感謝しかないです… いつか自分も書く側になりたい…」 / Twitter
ロボ太さんはTwitterを使っています 「任意の分野Xで僕よりずっと詳しい人がたくさんいるんで、「僕がXについて解説書いたりしていいんだろうか」といつも思うんだけど、その「僕より詳しい人」がみんな解説書いてくれるわけではないので……」 / Twitter
ロボ太さんはTwitterを使っています 「まぁ、情報発信なんていいことないよね……」 / Twitter
杉本啓さんはTwitterを使っています 「自転車の乗り方を本に書いたら、それは単に情報だ。実際にどうやれば自転車に乗れるのかは、それぞれがやってみて習得するしかないし、得た tacit knowing はその人だけのもの。我々が何かを出来るかは全面的に tacit knowing に依拠している。形式知=情報は、むしろそれを生成するためのよすがだ。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング技術も同様で、習得する本人が自分の意思と試行から再発明するしかない。いくら教科書的なものを用意しても、それは練習メニューに過ぎない。練習する気がない人に練習メニューを見せても、うまくはならないんだよ。でも、世の中には、それで終っちゃってる「教育」が多い気がする。」 / Twitter
ネオ高等遊民@哲学youtuberさんはTwitterを使っています 「YouTuberはいいですよ。 解説や研究を読んで知った面白い解釈を紹介すると 「受け売りしてすごいと言われて楽しいの?」などと言ってもらえますし、 自分で考えて面白いと思った解釈を話すと 「根拠のない思い付きより、最新研究分かりやすくかみ砕けよ」などと言ってもらえます。」 / Twitter

伝達・理解・認識

MasaTamさんはTwitterを使っています 「英語圏の人達が主張が強いという印象は、主張が強いと言うより、情報が100%伝わるわけじゃないという前提で話してるということな気がする。伝わってないと思ったらI meanで噛み砕くし、paraphraseで違う表現したり。例も挙げるし、一つかそうでないかも明確にする。」 / Twitter
チェシャ猫さんはTwitterを使っています 「ちなみに実装コスト以前の問題として、「ロジックに誤りがないとはどういうことか」を人間が認識するところがボトルネックになりがち。訓練されていない人間は本人が思っている以上に、頭の中にある仕様を検証可能な形で表現することができない。」 / Twitter
satさんはTwitterを使っています 「丁寧に書くと「冗長」、簡潔に書くと「説明不足」、詳細に書くと「難しすぎる」、わかりやすく書くと「わかった気になるだけ」と誰かしらは言うので個々の評で一喜一憂してたら身が持たない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「東証会見について、記者の質が低いって怒ってるエンジニアの人たちの気持ちが正直わからない。だって非専門家だよ? わからないことを確認するのは、記事を書く上で記者の義務だよ。社内でも、営業とか新米の人が理解しようと質問してきたら、そうやって怒ってるの?って思う」 / Twitter
古川英光(やわらか3Dプリンターサイエンティスト)(Hidemitsu Furukawa)さんはTwitterを使っています 「「なぜかが分からないと先に進めない人」と「役立つことが分からないと先に進めない人」。 私は理学部と工学部の両方の経験がありますが、前者が理学部型、後者が工学部型、みたいに思います。 良し悪しではなく「思考回路」の違いですね。 https://t.co/6SQiW7INl1」 / Twitter
若者の「それ、何の役に立つんですか?」に隠された驚きの事実(幻冬舎ゴールドオンライン) - Yahoo!ニュース
nishio hirokazuさんはTwitterを使っています 「「正解が書かれたものがどこかにある」という思い込みを持ってる人はそれを得ようとするが、経験者は「しばしば世の中のどこにも正解が書かれたものが存在しない」と思ってるため自分で正解を導く方法を教えようとする。魚を得たい人に釣りの仕方を教えるので、魚を得たい人が不満に思うのは当然。」 / Twitter
Sho YokoiさんはTwitterを使っています 「知的誠実さは居直り根性でもないし自主的な勉強の放棄の免罪符でもないよね。 離乳食のようなイントロが尊ばれ、本文に数式が一行でも入ると「わからないからもっと簡単に説明してほしい」とか「わからないけど難しいことしていて凄そう」とか宣うパーソンが散見される領域に居るからなおそう思う。」 / Twitter
Sho YokoiさんはTwitterを使っています 「伝える側がその説明を分かりやすくするために工夫をこらすことが大切なのと同様、伝えられる側も新しいアイデアなり概念なりを理解するために脳を絞る必要があるに決まってるだろ。「私にも分かるように説明して」は分かるための努力をし続ける者だけに許される発話。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ノートは書き写すんじゃなくて、自分の再発明を書き下す。再発明しない限り理解に達してない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミングもそういうところがあって、ライブラリを使ってるだけで再発明しないようだと次の段階に進めない。」 / Twitter

入門書

ぱそほし(kzm)さんはTwitterを使っています 「いやそういうことじゃなくて、シェルだったり、アプリのインストールの方法だったり、インストールしたアプリのコードの読み方だったり、あるいはOSの機能(TCP/IP、ドライバ、DLL、メモリ、プロセス管理)だったり、GUIアプリケーションだったり、サウンドだったり、そういうのなんですよね https://t.co/xuUTaw9MZ1」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「プログラミング入門書を読んでも、一般的に知られているソフトウェアの作り方みたいな事が書いてない」とありますが、プログラミング言語の処理系もまた「一般的に知られているソフトウェア」の一つなので、プログラミングの入門でプログラミング言語を作ればいいんですよ。 https://t.co/ompL0KjN6l」 / Twitter
プログラミングというかITが理解できない。

用語・訳

みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)さんはTwitterを使っています 「IT界隈の人たちは楽屋ノリで「不正」って言葉をカジュアルに使いすぎ 世の中的にはほとんど「違法」と同義だから「不正な入力です」とか画面に表示しちゃダメだよ」 / Twitter
chikoskiさんはTwitterを使っています 「recursiveを帰納と訳すこともあるのか」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「サーバーレスの-lessっていうやつ、個人的には、countlessの-lessと同じ意味合いだと思うと、むしろ、クラウド感があってよい。ないっていう意味じゃない。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「そうそう、あと WikipediaをWikiと略すのとか、 無限スコープ、動的エクステント を 動的スコープと略すのとかも取り締まるべき」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債って言葉がなんか好きではなくて、実際にはコードの老化が正しいと思うんだけど。X年でやりかたとして正しかったこと (ビジネスも含めて) がY年で正しくない(もっといい方法がある)ってことでしかないと感じるんだよね、みんな言ってること」 / Twitter
Ignacio Enriquez GさんはTwitterを使っています 「@makoto_kato @piro_or 老化は技術的負債の原因の一つだと思います。 最初から技術的負債はあると思います。メンターや経験者が近くにいなくて生まれる。または技術的な理由以外で(政治的なビジネス的な狭いビジョン的な理由)Y年数立たなくても直ぐに生まれると思います。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「それはさておき、プログラマかエンジニアか、というのは割と国内だけの話で、英語圏だとエンジニアという大カテゴリの中に開発者(デベロッパ)やSRE(サービスリライアビリティエンジニア)やCSE(カスタマーサポートエンジニア)といった様々なエンジニアが存在する、と理解するのが普通だと思う」 / Twitter
Watching_Big_BroさんはTwitterを使っています 「これは記事化する際の用語選択のためのすり合わせなんだよな。非専門家である読者に、記事では専門用語を使わず事象を説明するにあたり、不適切な言い換えになるリスクを避けるために当事者の言葉を求めている。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「日本語で」の質問について。実際専門用語に頼った説明は問題を生みがちで、今回も「フェイルオーバ」をactive-standby構成の説明を参考にしたのか「予備機に切替」という表現を使っている報道がある。自分の言葉で再説明する、というのはそういう問題を潰す効果がある cf. https://t.co/0m1aWv3ja8」 / Twitter
Kazuho OkuさんはTwitterを使っています 「障害が発生した記憶装置を切り離したあと、なぜ再起動が必要になったかについて明確な回答(うまく動作しなかったタスクが既に発生し、それらを確認修正するより再起動のほうが早い)を引き出した質問が「横文字を使わないで説明して」だったのは面白い」 / Twitter

編集者が必要

keiichiro shikano λ♪さんはTwitterを使っています 「これはポジショントークですが、散文をGitHubなどで管理するうえで重要なのはPull Requestやtextlintといった仕組みの有無ではないということがまた明らかになってしまったな…」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「つまり編集者がいないと難しいのですよ(執筆者が編集者でもいいけれど)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「もうちょっと具体的な話はこのへんで。 https://t.co/YSkxsbWcBB」 / Twitter
k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
keiichiro shikano λ♪さんはTwitterを使っています 「「俯瞰的な修正の作業は、かなり大きな範囲全体でコミットとして意味を持つので、他でコミットされたりPull Requestされた局所的な文章の修正をこのコミットの内容と調整するのはけっこう厄介です。」」 / Twitter

校正

keiichiro shikano λ♪さんはTwitterを使っています 「これらの指摘をみた人がどう直すかが気になる。たとえばこの文の「思います」を断定にすればいいわけでないし、「サーバサイド」は文中で見えてる限りでは揺れてないし、「無い」が指摘されずに「例えば」が指摘されているのが気になるし(個人的には後者は許容できるが前者は許容しない)」 / Twitter
suin❄️ TypeScriptが好きさんはTwitterを使っています 「textlintという、日本語のMarkdownを校正できるツールがあるのですが、これをVS Codeと組み合わせると、めっちゃ便利でした✨ あまり意識してなかった深いところまで、いろいろ教えてくれます。 ブログや社内文書を書くときなどに、一回textlint通すとよさげ。 https://t.co/BKnoBYi4yR」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「別のルールを使えばいいという話ではないと理解している。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「ルールベースの文章校正ツールに対する考え方をそのうちまとめたいと思っているのだけど、うまく言えないんだよなあ」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「文意はシンタックスでだいたい決まる」としても、「書き手が意図している内容」と「シンタックスで決まってしまう文意」との溝を、当のシンタックスから取り出せるかどうかといったら、たぶん無理ではないか。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「一方、プログラミング言語のコードだと、「シンタックスで決まってしまう文意」はコンピューターで計算できる解釈であり、書き手の意図もまたコンピューターにおける動作として形式化されうるので、シンタックス自体を検査する意味が多分にある。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「たぶんこんな感じの断絶があると思っている」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「そんなわけで、プログラミング言語におけるlintのように使うこと(≃質の悪い文章のパターン発見に使うこと)にもやもやが残る、という感じなんだと思う。単なるシンタックスエラーの発見として使うぶんには、文章校正ツールは間違いなく武器になるんだけど。」 / Twitter

研究・論文

科学の発展

Shinji KonoさんはTwitterを使っています 「間違いを正していくのが科学なのに間違ってる論文を撤回してしまったらダングリングポインタになると思うんだが。解法よりも問題提議の方が発展性があり重要なので、間違ってるというより問題提議した論文というのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学ってのは正しいものの積み重ねて単調増加していくようなものとは違う。互いに相容れない理論が同時に進んでいく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「矛盾からはなんでも出るのだが、矛盾を含む理論でも、矛盾のない部分を切り出すことができる。それを見つけるのは難しい。集合論でも矛盾を突きつけたカントルに対する風当たりはかなり強かった。ラッセルはうまく立ち回ったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学は疑うからこそ科学なのであって、信じてる科学者は科学者じゃない。否定を信じるのもあり得ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学技術系では再発見ってのがあるので、昔あるってだけで研究をやめるのは良くない。今と昔ではパラメーターが違う。そういう風に昔の論文から今のが研究のアイデアを探すのも可。」 / Twitter
jicchoさんはTwitterを使っています 「「でもテストとは違って、研究には正解がない。 失敗を積み重ねて、少しでも良い答えを見つけていくしかない。 だからうまくいかなかったとしても、そのぶん研究は進むから良いのだ。」 試行錯誤の結果、うまくいかなくても、そのぶん研究は進んでいるんだよね。 最近やっと分かってきたような気がする」 / Twitter
森野キートスさんはTwitterを使っています 「研究で失敗するのが怖い - いつか博士になる人へ https://t.co/bdhQlW7oQu」 / Twitter
研究で失敗するのが怖い - いつか博士になる人へ

誰もやっていないところをやる

須山敦志 Suyama AtsushiさんはTwitterを使っています 「大隅先生「みんながやっていると怖くない,というのが科学にも入ってきている」 #役に立たない科学が役に立つ」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「誰もやっていないところをやる」ではなく「価値が認められるとわかっている部分を誰よりも先にやる」の傾向が強かったのは何となく学生時代にも感じていた... 僕は科学者じゃないですが,「自分がやらなくてもどうせ成熟するだろう」と思う仕事には手を出さないようにしよう.」 / Twitter

Shinji KonoさんはTwitterを使っています 「少しでも新しい問題が出ると手も足も出ない。そうならないような授業をしてるつもりだが、そこを突破できるのは1/10くらいな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「授業中でも、わざと自分の知らない部分に突っ込んでいくのが好きなのはそういう狙いもあるけど、自分が面白がってやってるだけでもある。そこで行き詰まったりしてるのを心良く思わない学生もいるだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「基礎からやるってのが間違ってる。それでは目標がない。最初にボスに当たって、それから必要な基礎をやるんだよ。基礎は無限にあるから優先順位がないと死ぬ。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新規性は,闇雲に追求しても着想できるものではありません。先行研究を踏まえて,それで出来ていないことをあげていきます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新しく作るのはコンセプトやテーマが決まってからですね。」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
なんで論文なんか書くのか - いつか博士になる人へ
森野キートスさんはTwitterを使っています 「研究の進捗報告で意識するといいこと ・やったことを説明する前に、何が知りたくてやったのか言う ・方法の説明は、有名な方法との違いを言うとわかりやすいし勉強になる ・結果を説明する前に、どんな結果になると予想してたか言う ・データを見せたら、その解釈を言う」 / Twitter
森野キートスさんはTwitterを使っています 「研究をどこまででまとめるか、最後は自分で決めるしかない。10年後また読んだときに、自分で恥ずかしくない論文が書けたらそれでいいと思う。学生のうちにいろんな人の論文を読むといい。ここが好きとか嫌いとか思うのがいい。自分の判断基準を作るのが大事だと思う」 / Twitter
jicchoさんはTwitterを使っています 「論文投稿した直後に論文整理するの結構いいかもしれないな」 / Twitter

何をやってきたか、これでいいのか

Kazuho OkuさんはTwitterを使っています: 「うらやましいなんて話じゃなくて、自分たちは何をやってきたんだ、これでいいのか、ってこと」 / Twitter
市川 真一さんはTwitterを使っています: 「. @kazuho さんが出張で使ってる航空機の運航を支えるシステムや、病院の運営に必要なシステムをやってきました。国のためになっているという自負はあります。私個人には、これで良いとしか言えないのです https://t.co/v3lGCi3CMX」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@tenpoku1000 社会を支える仕事をして「これで良い」と思えるのはすばらしいことだと思います。いろんな関わり方があると思うので」 / Twitter
航空:航空交通管制情報処理システム - 国土交通省
cab20181001-2.pdf
スライド 1
Wayback Machine

OSS

Code of Conduct

Kazuho OkuさんはTwitterを使っています 「えっそうなのかな。今のやつはだいたい 2014 年頃からのカンファレンスでの問題に由来する系のものだと思ってた cf. https://t.co/5PG6H3a4iQ」 / Twitter
The New Normal: Codes of Conduct in 2015 and Beyond by Coraline Ada Ehmke | Model View Culture
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「今では割とみかけるCode of Conductってのは、オープンソースの世界ではUbuntuが元祖なのだろうと思う。まあ、他にもあったのかもしれないが、2006年あたりの当時、Debianという世界でのフレームがあまりにひどい状態になって、そこへ救世主のようにやってきたので一気に受け入れられたのだろう。」 / Twitter

Shuji SadoさんはTwitterを使っています 「俺オープンソースの話題が出ると思うことだが、単に定義があるので正しく使おう、ということではなく、当時の有力開発者、著名人(RMS除く)が揃って今後はオープンソースという新語を使っていくと宣言したプロセスを踏まえてほしいなと思う。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「オープンソースという概念が最初にあってOSIが出来たのではなくて、ソースコードの共有文化が最初にあり、それを開発者ごとロックインしたプロプライエタリソフトウェアが発生し、これに対抗するためのフリーソフトウェア活動が生まれ、」 / Twitter
https://twitter.com/mhiramat/status/1301686434382766080
History of the OSI | Open Source Initiative
https://twitter.com/mhiramat/status/1301690040855089152
Free and open-source software - Wikipedia
ママレモンサワーさんはTwitterを使っています 「オープンソースの定義がどうこうの話時々聞くけどあれでどうにかなるのは著作権の話で、それとは別にパテントの問題が出てくるよね?」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「あの商標登録は「誰かがオープンソースという名称で登録して、この言葉を独占的に使おうとするアクションを起こされないように」という予防的な目的のみで行われているはずで、「オープンソース」という言葉の定義に権威を与える目的ではないはずだし、そもそもそんな機能は商標にはない。」 / Twitter
https://twitter.com/kazuho/status/1302547623803379712
https://twitter.com/kazuho/status/1302548910095777794
https://twitter.com/kazuho/status/1302550762078105600
https://twitter.com/kazuho/status/1302551524971696129
https://twitter.com/kazuho/status/1302556326078234630
https://twitter.com/kazuho/status/1302556975658487809
https://twitter.com/n_soda/status/1302558887002873856
Open Source Certification:Press Releases | Open Source Initiative

クラウド == メインフレーム

Shinji KonoさんはTwitterを使っています 「Cloudとか言ってるが、結局は課金制大型計算機センタなんだよな。JCLの代わりにLmbdaで戦ってるだけでさ。そこから抜け出したくて、マイコンミニコン、Unixだったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「インターネット上のスケールする分散アプリの代わりにCDNってのは退化だと感じる。メインフレームの第n次オンライン的な。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Cloudのダウンは、httpsとCDNで囲い込んだ報い。本来は蜘蛛の巣的なキャッシュあるいは自律サーバネットワークで止まらないはず。ただし、updateはリアルタイムではないがな。リアルタイムを求めるなら、そこに行かなくては。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Playstationの予約でサーバダウンとかやってた頃を繰り返してる」 / Twitter

トレードオフ・動機

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそもトレードオフ(とモチベーション)を考えた結果ならどちらもアリだよなぁ。 単に「今時古い」的な思考停止で判定する人見るとオイオイと思うことも。」 / Twitter
Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年前、本業そっちのけでやったのが今になって役に立ってるから、むしろお勧めしたい。」 / Twitter
MiyahanさんはTwitterを使っています 「技術力がない人ほどDNSサーバーやメールサーバーを自前で立てたがる現象に誰か名前をつけてほしい。」 / Twitter

進捗・インクリメンタルな開発

Yasunori GotoさんはTwitterを使っています 「あー… なんか似てるかも…。 テレワークになってから特に…。」 / Twitter
ymmtさんはTwitterを使っています 「@satoru_takeuchi 1. こまめにアウトプットする。 2. 集中しないのがデフォルトだと割り切って焦らない。 なにがしかやってればそのうち興がのるタイミングがあって、そのとき大きく進捗します。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「私も,小さく試す,本格的に作る前にプロトタイピングするということをしょっちゅうしています。幼少の頃,レゴブロックで色々試行錯誤していたのと,小学校・中学校でプログラミングにて散々ハマりまくったので,自然とその習慣が身についたんだと思います。 https://t.co/O0okFVJ2gy」 / Twitter
ついに達人がハマらない原因を見つけたかもしれない話|牛尾 剛|note
7594591200220899443さんはTwitterを使っています 「これだけは言っておかねばと思うのだけれど、右と左は別に品質面で差が出るような違いではない。ウォーターフォールが失敗した時には低品質の物が期限通りに出てくると思うべからず。そうなった時には期限日には何も出てこないのが実情である。」 / Twitter
jMatsuzaki🔥さんはTwitterを使っています 「←期限ギリギリで低品質な物を作り上げる人のスケジュール  →期限内に高品質な物を余裕を持って仕上げる人のスケジュール https://t.co/PUucITCacM」 / Twitter
7594591200220899443さんはTwitterを使っています 「最後にジャーンと出来上がった物を比べた時にウォーターフォールが特段に低品質ということはないはずと理解している。ただ納期は破綻する。」 / Twitter
7594591200220899443さんはTwitterを使っています 「むしろ逆に低品質だろうが何だろうがともかく納期に何かが動いているというのが反復プロセスの特徴とも言える。」 / Twitter

美意識

渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「B1から配属可能な研究室の制度でやってきて感じることは、研究室で研究問わずまずは好きな活動やってもらって、教員側がそれを観察して、その学生がこだわる部分や強そうな部分を発見し、テーマからこういうのやってみたら?っていうマッチング測るのが良さそう。というのが見えつつ。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「まずはディープな自己紹介みたいなことも大事だなと。どういう環境で生きてきたか、どういう遊びをしているのかとか。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「ちょっと何かつくると、人によってこだわる部分が違う、つまりそういうことが美意識なんだと思うん。で、それって自分だと気づきにくかったりするんだけど、教員側は多くの学生を見ているから、すぐわかったりする。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「教員のエゴが強いと、その美意識は潰されてしまうけどね。だってそれってどうでもいいことって思うわけでしょう。だから逆に積極的に潰していくタイプの人もいるんでしょうけど。」 / Twitter

競争ではない

yhara (Yutaka HARA)さんはTwitterを使っています 「一方で狂人たちがどう考えているかというと、彼らは別に競ってはないのですよね。プログラミングの世界には無限に「やること」があるので、みんなそれぞれ違うことをしている。競争ではない」 / Twitter
古都ことさんはTwitterを使っています 「プログラマ、無策に愚直に上目指そうとすると「仕事でプログラミングやってるし休憩時間は気分転換のプログラミングやってるし退勤後は息抜きのプログラミングやってるし休日は趣味のプログラミングに全ぶっぱ」みたいな狂人との電流金網デスマッチが始まるので、自分なりの目標と適度な割り切りが必要」 / Twitter

意味のある技術

Hiromitsu TakagiさんはTwitterを使っています 「思い出すのは、大学で研究室に配属になった1988年頃の話。当時の一つのブームは「データフローコンピュータ」だった。指導教授がその道で名を上げかけた方(米国で見てきたものを国内で再現的な)で、当時の第五世代コンピュータのテーマの一つでもあった(教授は枠外)ので研究室のテーマはそれ。で…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…で、データフロー型の謳い文句は「ノイマン型コンピュータには限界がある。データのフローを直接処理することで問題が持つ並列性をそのまま並列実行できるのだ、と言うのだけども、コスト度外視なのね。連想メモリ(content addressable memory、データを入力するとアドレスが出る)の回路を使って…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…使って作るというのだけど、規模はどうするよとか、条件分岐は?とかいろいろ問題あり。M1の頃にはすでにおかしいと気づいており、fjに書くなどしていたら、学会の懇親会で偉い先輩(今の大ボス)に「君さあ」的なことを言われたwのであった。自分の研究は教授から与えられたネタで、それ自体は…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…それ自体は、なんというか、思いつきの一つの設計例にすぎず、その有用性を語るなんてできないわなと思って、学部の卒論の時点で、どうにか意味のある内容に変更(データフローコンピュータはトークン(データ)をキューに流すのだけども、データはメモリにおいてキューのカウンタだけ使う)して…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…して凌いだ。その後、Mではその方式を一般化して概念を確立させ研究会デビュー、ちょうど国際的にも似てるけどちょっと違う方式が出てきていたので、それらと比較して一つの小分野を構築することができ、どうにかD論に持って行けたのは、幸いだった。ちょっとした違いで人生大幅に違っていただろう。」 / Twitter
富岳てるみさんはTwitterを使っています 「「スパコンでなければならないのか?グリッドでいいのではないのか?」というのは、ある意味真だし、ある意味偽でもある。まぁ原理的にはグリッドですべて賄えるといえば賄えるけど。明日の天気予報に一か月とかかけていいなら」 / Twitter
宇賀智之さんはTwitterを使っています 「日本のスパコンにかける情熱は素晴らしい。 しかし、どれほど有効活用されているのだろう。 そして僕は常々思うことに、家庭のPCをつなぎ合わせて、一つのコンピューターとして見なすことで凄まじい情報処理ができるのではないだろうか。」 / Twitter
Masakazu SekijimaさんはTwitterを使っています 「@telmin_orca @sacred_fox SETI@homeやFolding@homeとスパコンが計算している“ならでは”のものの区別がついていないというか後者を知らないだけかもしれません。」 / Twitter
富岳てるみさんはTwitterを使っています 「xxはどれほど有効に使われているのか?(xxには結構な高値のあれこれを入れよう) というのは、結局ポジショントークでしかないのでやめたほうがいいですよ。世の中には、自分は知らないけど活用されているものって山ほどあるわけで」 / Twitter
富岳てるみさんはTwitterを使っています 「まぁどこかの世界には、1Exaの計算を実現するのに1PFlopsの計算機を1000倍長く稼働させればいいとかいうことを言っていたヤツもいるので、みなさんはそういうアホにならないように気をつけてください。今必要な計算を1000倍の時間かけてやっても意味はないです」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「テクノロジーとは物を作る能力ではなく価値を具現化することだという結論に至った」 / Twitter

簡単に使えるようにする

7594591200220899443さんはTwitterを使っています 「プログラムを書くのに計算機科学の素養が必要かどうかで言うと現状必要なのは事実だが必要でなくしていくべきです。おばちゃんの作ったキッチュなアップリケとかが人類史に決定的なインパクトを与える事ができるようになるべく専門家以外をエンパワーしていくのが我々の仕事である。」 / Twitter
7594591200220899443さんはTwitterを使っています 「これ」 / Twitter
7594591200220899443さんはTwitterを使っています 「結局金突っ込んだやつが順当に勝つみたいなつまらない世界をやりたくてwebやってるんじゃなかったはずだろ。今よりももっと間口を広くすべきです。素人が適当に作ったもので相応に戦えるべき。」 / Twitter

圏論入門

七誌さんはTwitterを使っています 「話題の『圏論入門』を入手しました! https://t.co/fWei06kAEM」 / Twitter
https://twitter.com/7shi/status/1297189240531382272
https://twitter.com/7shi/status/1297474094892376065

システム障害

「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る - Publickey
東証、障害の原因を特定 設定値に不備、切り替え失敗 - ITmedia ビジネスオンライン
品川 高廣さんはTwitterを使っています 「東証のシステム障害の原因が設定ミスと聞いて、ああよくあることだねとしか言えない。https://t.co/sKKKoWe2ro」 / Twitter
An empirical study on configuration errors in commercial and open source systems | Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
hrk先生さんはTwitterを使っています 「@utshina2 問題は、各パーツは品質が良いので多様な故障発生状況をあらかじめテストすることができないことと思います。故障解析で、通ってないパスが沢山あるのじゃないかな? 故障率が10000倍高いメモリとかストレージとかプロセッサチップが出来れば貢献するのかな?」 / Twitter
品川 高廣さんはTwitterを使っています 「@Prof_hrk 最近は software fault injection でソフトウェア的に擬似的な故障を発生させてエラー処理を検証する研究も幾つかなされていますね。手前味噌ながら、我々も BitVisor で実ハードウェア環境で疑似故障を挿入する研究をやっていました。https://t.co/yEaP5w4OXW https://t.co/u2AycsJCkf」 / Twitter
Testing device drivers against hardware failures in real environments | Proceedings of the 31st Annual ACM Symposium on Applied Computing
FaultVisor2: Testing Hypervisor Device Drivers Against Real Hardware Failures - IEEE Conference Publication
hrk先生さんはTwitterを使っています 「@utshina2 それは知っているのですが、ソフトウェアは知っている壊れ方しか再現・擬似実現しないというところに限界があると思っています。 プロセッサ設計でも、ここが危ないと思ったところには普通バグが入らないです。」 / Twitter
品川 高廣さんはTwitterを使っています 「@Prof_hrk メモリの壊れ方を調べた empirical study はあるようですが(https://t.co/fwGYHNBfW8 等)、プロセッサの壊れ方を調べた論文はざっと見た限りはあまり見つからないですね。普通はあまり壊れなさそうな気がしますが、どんな壊れ方をするんでしょうか?」 / Twitter
dsn07.dvi - hotdep2007.pdf
(1) hrk先生さんはTwitterを使っています 「@utshina2 一番あるのは浮動小数点が温度や電圧の都合で値化けすること。次はPCIE等のI/Fかな?マザーボードによっては同じく温度・電圧でご機嫌がでそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い。 同じCPU内で、整数演算系に比べて、浮動小数点が選択的に弱いとしたら、理由は何だろう?? (答えまでのパスが長くて、エラー検査間隔が長いとか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、科学技術計算(スパコンとAI?)とそれ以外(Web、金融、DB、業務系)では、前者が浮動小数点演算メイン、後者は整数演算メインという違いあると予想。 それが割当トランジスタ数と、実行時の処理割合にも反映して、確率的に前者なら浮動小数点エラー増え気味、とかはありそう?」 / Twitter
東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通
Shinji KonoさんはTwitterを使っています 「切り替えというけど、切り替わる条件は無数にあるので全部をテストするには、モデル検査するしかない。本番環境でのモデル検査は普通は不可能。この規模だと二系統は用意しないだろうし。」 / Twitter
10月1日に株式売買システムで発生した障害について | 日本取引所グループ

セキュリティ

ドコモ口座問題 - OAuth.jp

表現者のために、抽象的なことを|山口尚|note

図形

draw.io
VSCodeでDraw.ioが使えるようになったらしい! - Qiita
Free AWS, Azure, GCP, Kubernetes Architecture Diagram Tool | CloudSkew
クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 - Publickey
AWS Perspective | Implementations | AWS Solutions
AWSがアーキテクチャ図を自動作成できるソリューション実装「AWS Perspective」を公開 - GIGAZINE
AWSがダイアグラムエディタの開発に便利なライブラリ「Diagram Maker」を公開 - GIGAZINE
最近のアイコンが似通ってきている問題 | デザイン会社 ビートラックス: ブログ freshtrax
最近のロゴが似通ってきている問題 - 第2弾 | デザイン会社 ビートラックス: ブログ freshtrax
無料&YAMLで豊富なアイコンからネットワーク構成図が書ける「drawthe.net」レビュー - GIGAZINE

Wayback Machine

Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
Internet Archive: Search Engine
Donate to the Internet Archive!
インターネット上のあらゆる情報を記録・保存する「インターネット・アーカイブ」はどのように運営されているのか? - GIGAZINE
ウェブ上の情報を記録・保存する「インターネット・アーカイブ」の存続をひっそりと脅かしているものとは? - GIGAZINE
「インターネット・アーカイブのウェイバックマシンが記録した過去のウェブサイトの情報」に証拠能力があると裁判所が認める - GIGAZINE
Cloudflareとインターネットアーカイブがウェブの信頼性をさらに高めるため提携 - GIGAZINE
新型コロナウイルスの影響で「インターネット・アーカイブ」の通信量が秒間60ギガビットに到達、月間通信量は20ペタバイト以上 - GIGAZINE
フェイクニュースと戦うインターネットアーカイブの取り組みと問題 - GIGAZINE

検索

その他

AndroidのEUにおけるデフォルト検索エンジン指定に批判多数 | TechCrunch Japan
Lumen
DuckDuckGo — Privacy, simplified.
HotBot - The Private Search Engine
ウェブを検索
Qwant - The search engine that respects your privacy
Yandex
GMX International - Search Engine
Seznam – najdu tam, co neznám
Givero - Search the web to raise money for good causes.
PrivacyWall
Ecosia - the search engine that plants trees

Searchfox

Searchfox
bgrins/searchfox: Mozilla code search web site
Searchfox | Bill McCloskey's Blog

日本

国立国会図書館デジタルコレクション
国立国会図書館インターネット資料収集保存事業
サクラチェッカー | やらせ・サクラレビューを見抜けるレビューチェックシステム
特許情報プラットフォーム|J-PlatPat
全国法人リスト - 全国約500万件の法人企業を一覧で検索

Twitter

Twitterの高度な検索
Takashi OkumuraさんはTwitterを使っています 「有益な情報。弊アカウントの過去ツイセレクションはこちら。面白い。歴史も感じる。 RT 過去にどんな発言をしてきたアカウントなのかチェックしたい時は、"from:user min_retweets:100"とすると、過去に100以上RTされた発言がざっと読めて、だいたい把握できる https://t.co/cGFZer4K0G」 / Twitter
Twitter検索コマンド全まとめ。日付指定やアカウント内検索など23個 -Appliv TOPICS

Stack Overflow - Where Developers Learn, Share, & Build Careers
高度なソースコード検索
everyRFC
【本日のできるネット】【これは便利!!】Googleで「ライセンスフリー画像」を検索できるの知ってる? - PC Watch
Google Scholar
Google 検索オプション
Search Console - ホーム
Dataset Search
Bing
researchmap
Welcome | Computer History Museum
メインページ - ウィクショナリー日本語版
Mapbox
5star opendatamap
TIMEMAP
Microsoftが過去14年間・2億5000万件分のカスタマーサービスの記録をネット上に流出させてしまったことが判明 - GIGAZINE
BinaryEdge
Googleが機械学習用のデータセットをインターネット上から検索可能な「Dataset Search」を正式公開 - GIGAZINE
Dataset Search
AWS S3の膨大な公開データを検索できるQuilt Dataが脱ステルス、無料利用も可 | TechCrunch Japan
Quilt is a versioned data portal for AWS

翻訳

DeepL翻訳
Linguee | Dictionary for German, French, Spanish, and more
Google 翻訳
Google翻訳コミュニティの間違った使い方 - アラフォー女子大生キャリアカウンセラー日記
英語翻訳 - エキサイト翻訳
Grammarly: Free Writing Assistant
OmegaTのHTMLファイルフィルターを移行した話 - 水底の血
Firefoxにローカルで動作する自動翻訳機能が追加される - GIGAZINE
Software – Bergamot
chikoskiさんのツイート: "GitLocalize使ってみてるんですが、結構MLによる自動翻訳の精度が高くて驚いてる。https://t.co/GNzX93qosX ローカライズ前のファイル名とローカライズ後のファイル名の対応ルールを、もう少し柔軟にかけたら、もっといいのになー、って思いながら、1つずつファイルを追加してる。"
GitLocalize – Continuous Localization for GitHub Projects
chikoskiさんのツイート: "新規の翻訳は本当に楽でいい。更新された時の差分表示がわかりやすいといいなあ。MDNは差分の把握が本当に大変で、そのせいで原文の更新の反映作業をやろうって気になかなかなれずにいるし…"
chikoskiさんのツイート: "GitLocalizeでローカライズ→GitLocalize場でレビュー→GitHubへpull request送信→GitHubでマージ、とういう流れ。自分でやった翻訳と、MLによる翻訳は別のコミットとして扱われている点が興味深かった。よくできてるな。"
腾讯翻译君 - 在线翻译
オープンソースのコミュニティにNICT「みんなの自動翻訳」を提供 | NICT-情報通信研究機構

書籍

その他

雑誌

Software Design バックナンバー|gihyo.jp … 技術評論社
WEB+DB PRESS バックナンバー|gihyo.jp … 技術評論社
数理科学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
検索結果|日本評論社
雑誌バックナンバー在庫一覧
Interface – CQ出版

BOOTH

登録禁止商品の追加に関するお知らせ - BOOTH
windhole booth - BOOTH
Hello uchan world - BOOTH
海洋軟件 - BOOTH
OtakuAssembly - BOOTH
fadis_press - BOOTH
galaxy-sixth-sensey - BOOTH
マークアップ言語愛好会 - BOOTH
すらりんラボ - BOOTH
ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH
GPSと仲良くなってNTPサーバを作ろう - 調布技研 - BOOTH
seiya - BOOTH
マイクロカーネルの設計と実装 - seiya - BOOTH
だめぽラボ
だめぽラボ - BOOTH

ヘネパタ

Hennessy & Patterson Computer Architecture 第6版 原著の問題点 | Amano Lab
Microsoft PowerPoint - RISC-V Day2019.pptx

Wikipedia

出版取次 - Wikipedia
日本出版取次協会|取協概況|沿革と現状
フレデリック・ブルックス - Wikipedia
人月の神話 - Wikipedia
銀の弾などない - Wikipedia

Qiita

ラムダノートの技術 Advent Calendar 2019 - Qiita
自作OSとかLinuxカーネルについて役立った本 - Qiita
低レイヤーを学ぶための技術書をまとめてみる - Qiita

Twitter

ドッグさんのツイート: "おもちゃ実装の Git を自分でつくってみてオブジェクトなどの内部データ構造や merge, diff などのアルゴリズムの仕組みを理解できる書籍 Building Git が出るのか.使用言語は Ruby | 'Building Git' https://t.co/Ka8sIaDrno"
Building Git – shop.jcoglan.com
Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「我々は紙の本を安価に全国共通の値段で手に入れることができた最後の世代になるだろう。次の世代に本はない。」 / Twitter

日本の古本屋
寄付の方法 | つなぐ書店
かみふくおか作業所の出張トトロ
国立国会図書館サーチ(NDL Search)
販売中の書籍一覧 – 技術書出版と販売のラムダノート
1月と7月
大神 祐真 (Ohgami Yuma) (サークル名:へにゃぺんて)
BOOK TECH | トップ
BareMetalで遊ぶ Raspberry Pi - 達人出版会
p20190528a - K-kiwi
水晶雫
株式会社ロングゲート
なぜ研究者は学術書を翻訳すべきなのか?|Daichi G. Suzuki|note
Amazon | Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables (Dover Books on Mathematics) | Abramowitz, Milton, Stegun, Irene A. | Pure Mathematics
自作OSとかLinuxカーネルについて役立った本 | Zenn
Webpage: BEKKI Daisuke
Amazon | Writing Compilers and Interpreters: A Software Engineering Approach (English Edition) [Kindle edition] by Mak, Ronald | Languages & Tools | Kindleストア
機関誌2019|公益社団法人 日本オペレーションズ・リサーチ学会
嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
本を書ける人がなかなかいない:生涯現役のITエンジニアを目指して:エンジニアライフ

未入手

定理証明手習い(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
プログラミングHaskell 第2版(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
論理学への数学的手引き – 1月と7月
朝倉書店| サンプルサイズの決め方
はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる:書籍案内|技術評論社
数理論理学 - 合理的エージェントへの応用に向けて - | コロナ社
入門Haskellプログラミング(Will Kurt 株式会社クイープ 株式会社クイープ)|翔泳社の本
<書籍紹介> 手を動かしてまなぶ 集合と位相(藤岡 敦 著)【数学】
並列プログラミング入門 - 東京大学出版会
統計分布を知れば世界が分かる|新書|中央公論新社
『高次元空間を見る方法 次元が増えるとどんな不思議が起こるのか』(小笠 英志):ブルーバックス|講談社BOOK倶楽部
サンプリングって何だろう - 岩波書店
基礎日本語文法・改訂版|くろしお出版WEB
自然言語処理シリーズ 10 文脈解析 - 述語項構造・照応・談話構造の解析 - | コロナ社
データ分析のための数理モデル入門本質をとらえた分析のために(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
問題解決力を鍛える!アルゴリズムとデータ構造 | 書籍情報 | 株式会社 講談社サイエンティフィク
しっかり学ぶ数理最適化 モデルからアルゴリズムまで | 書籍情報 | 株式会社 講談社サイエンティフィク
多モデル思考 データを知恵に変える24の数理モデル | 森北出版株式会社
朝倉書店| 機械学習 ─データを読み解くアルゴリズムの技法─

Unicode

サポートページ:プログラマのための文字コード技術入門:|技術評論社
[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
文字符号の歴史:アジア編 正誤表
文字符号の歴史 アジア編 三上喜貴 著/2002.3
三省堂-世界の言語ガイドブック
世界のことば小事典 柴田 武(著/文)(大修館書店)| 版元ドットコム
国際化と日本語処理 : Javaプログラミング・ノート : Cafe Babe (アスキー): 2000|書誌詳細|国立国会図書館サーチ

アルゴリズム

その他

CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
書店・アマゾン販売書一覧 | sibaccess公式ページ
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
省メモリプログラミング―メモリ制限のあるシステムのためのソフトウェアパターン集 (Software patterns series) | ジェイムズ ノーブル, チャールズ ウィアー, James Noble, Charles Weir, 安藤 慶一 |本 | 通販 | Amazon
情報科学セミナー 遺伝的プログラミング - 東京電機大学出版局 科学技術と教育を出版からサポートする
計算の理論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
みんなのデータ構造(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
おすすめ書籍/プレアデス出版 Pleiades PUBLISHING
The Art of Computer Programming Volume 4A... - アスキードワンゴ
CiNii 図書 - 情報学のための離散数学
情報科学のための 離散数学 | コロナ社
電子機器設計に活かすディジタル代数学|科学情報出版
グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
マグロウヒル大学演習 離散数学 コンピュータサイエンスの基礎数学 | 理工学専門書,理学,数学 | Ohmsha

技術評論社

サポートページ:正規表現技術入門 ――最新エンジン実装と理論的背景:|技術評論社
平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
[改訂新版]C言語による標準アルゴリズム事典:書籍案内|技術評論社

共立出版

アルゴリズムと計算量 / 野崎 昭弘 著 | 共立出版
グラフ理論とフレームワークの幾何 / 前原 濶 桑田 孝泰 著 | 共立出版
簡潔データ構造 / 杉原 厚吉 室田 一雄 山下 雅史 渡辺 治 編 定兼 邦彦 著 | 共立出版
近似アルゴリズムデザイン / David P.Williamson  David B.Shmoys  著 浅野 孝夫 訳 | 共立出版

O'Reilly Japan

O'Reilly Japan - 並行コンピューティング技法
O'Reilly Japan - アルゴリズムクイックリファレンス 第2版
O'Reilly Japan - Hadoop MapReduce デザインパターン

講談社

新装版 集合とはなにか | ブルーバックス | 講談社
逆問題の考え方 | ブルーバックス | 講談社
『「複雑ネットワーク」とは何か』(増田 直紀,今野 紀雄):ブルーバックス|講談社BOOK倶楽部
離散数学「数え上げ理論」 : 「おみやげの配り方」から「Nクイーン問題」まで (講談社): 2008|書誌詳細|国立国会図書館サーチ

森北出版

超高速グラフ列挙アルゴリズム 〈フカシギの数え方〉が拓く,組合せ問題への新アプローチ | 森北出版株式会社
アルゴリズム理論の基礎 | 森北出版株式会社

岩波書店

「高速文字列解析の世界」サポートページ - daisuke.okanohara
高速文字列解析の世界 - 岩波書店
高速文字列解析の世界[読書メモ].rb
朱鷺の杜(IBIS)ブログ 高速文字列解析の世界
数値処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ

コンパイラ

その他

lint (UNIXユーティリティライブラリ) | イアン・F. ダーウィン, 菊池 彰 |本 | 通販 | Amazon
知の教科書 論理の哲学 (講談社選書メチエ) | 飯田 隆 |本 | 通販 | Amazon
i386TMDXマイクロプロセッサプログラマーズ・リファレンス・マニュアル | |本 | 通販 | Amazon
リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
書籍情報―Linux技術者のためのC言語入門
書店・アマゾン販売書一覧 | sibaccess公式ページ
S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル | 3世, サムエル・P. ハービソン, ジュニア, ガイ・L. スティール, 3, Samuel P. Harbison, Jr., Guy L. Steele, 玉井 浩 |本 | 通販 | Amazon
デバッガによるx86プログラム解析入門【x64対応版】|書籍情報|秀和システム
Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
CiNii 図書 - 論理プログラミングの基礎
真理・証明・計算 - ミネルヴァ書房 ―人文・法経・教育・心理・福祉などを刊行する出版社
1+2=3
Miura HidekiさんはTwitterを使っています 「1+1=2じゃないのは、全加算器を導入したいからだな。たぶん」 / Twitter
数理論理学とタイプ理論 : 証明による真理へ (丸善): 1987|書誌詳細|国立国会図書館サーチ
コンピュータ・サイエンス研究書シリーズ 17 : 関数型プログラミング (日本コンピュータ協会): 1985|書誌詳細|国立国会図書館サーチ
日経BP SHOP|チューリングを読む
<書籍紹介> 証明論と計算量(竹内外史 著)【数学】
筑摩書房 公理と証明 ─証明論への招待 / 彌永 昌吉 著, 赤 攝也 著
SQLパフォーマンス詳解 | Markus Winand, Markus Winand |本 | 通販 | Amazon
サンライズ出版 » 論理と集合
論理学をつくる « 名古屋大学出版会
数理論理学 - 東京大学出版会
C++言語のカラクリ|SBクリエイティブ
ゲーデルの世界 - 海鳴社
数理論理学の基礎・基本 (牧野書店): 2012|書誌詳細|国立国会図書館サーチ
内田老鶴圃/書籍詳細/数理論理学 使い方と考え方:超準解析の入口まで
形式論理探求 第1巻 古典論理のタブロー | やまなみ書房 Yamanami Books
CiNii 図書 - 時間の論理
NHK出版新書 394 数学的推論が世界を変える 金融・ゲーム・コンピューター | NHK出版
連続体仮説 (東京図書): 1990|書誌詳細|国立国会図書館サーチ

サイエンス社

コンパイラの理論と作成技法 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
コンパイラ入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
人工知能の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
計算モデル論入門 : チューリング機械からラムダ計算へ (サイエンス社): 2006|書誌詳細|国立国会図書館サーチ
プログラミング言語の意味論入門 (サイエンス社): 1993|書誌詳細|国立国会図書館サーチ
プログラミング言語の基礎概念 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
モデルの記述と検証のためのプログラミング入門 – CafeOBJ
プログラム意味論の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
リレーショナルデータベース入門[第3版] - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社

岩波書店

システムプログラム入門 - 岩波書店
論理と意味 - 岩波書店
アルゴリズムとプログラミング言語 - 岩波書店
論理とプログラム意味論 - 岩波書店
Introduction to Computer Science
プログラミング言語 (岩波書店): 1994-06|書誌詳細|国立国会図書館サーチ
プログラミング言語処理系 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
記号処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
計算モデルの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
プログラムの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
モデルと表現 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
ゲーデル 不完全性定理 - 岩波書店
論理学超入門 - 岩波書店
論理と計算のしくみ - 岩波書店

近代科学社

近代科学社
近代科学社
近代科学社
近代科学社
演習プログラムの証明 (近代科学社): 1980|書誌詳細|国立国会図書館サーチ
近代科学社
近代科学社
近代科学社
近代科学社

技術評論社

80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
たのしいバイナリの歩き方:書籍案内|技術評論社
プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
証明と論理に強くなる ~論理式の読み方から,ゲーデルの門前まで~:書籍案内|技術評論社
WEB+DB PRESS Vol.60|技術評論社
「言語設計の基礎知識」本日発売! - 西尾泰和のはてなダイアリー
プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜:書籍案内|技術評論社
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで
WEB+DB PRESS総集編 [Vol.1~102]:書籍案内|技術評論社

コロナ社

コンピュータ数学シリーズ 超並列処理コンパイラ|コロナ社
コンピュータ数学シリーズ 3 数理論理学 | コロナ社
並列処理シリーズ 命令レベル並列処理 プロセッサアーキテクチャとコンパイラ|コロナ社
計算論理に基づく 推論ソフトウェア論 | コロナ社

O'Reilly Japan

O'Reilly Japan - make 改訂版
O'Reilly Japan - Hacking:美しき策謀 第2版
O'Reilly Japan - リバースエンジニアリング
O'Reilly Japan - Binary Hacks
O'Reilly Japan - アンダースタンディング コンピュテーション
O'Reilly Japan - Cクイックリファレンス 第2版
O'Reilly Japan - プログラミングGauche

オーム社

GNU Autoconf/Automake/Libtool | コンピュータ・一般書,UNIX,UNIX | Ohmsha
新世代工学シリーズ システムソフトウェア | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
Linkers & Loaders | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
コンパイラ (情報系教科書シリーズ) | 湯浅 太一 |本 | 通販 | Amazon
IT Text コンパイラとバーチャルマシン | Ohmsha
IT Text プログラム仕様記述論 | Ohmsha
型システム入門 プログラミング言語と型の理論 | Ohmsha

翔泳社

ガベージコレクション(RichardJones AntonyHosking EliotMoss 前田敦司 鵜川始陽 小宮常康) | 翔泳社の本
ヘネシー&パターソン コンピュータアーキテクチャ 第5版 翻訳版ホームページ | Amano Lab
関数型リアクティブプログラミング 電子書籍(株式会社クイープ 株式会社クイープ AnthonyJones StephenBlackheath)|翔泳社の本
実用Common Lisp(Peter Norvig 杉本宣男)|翔泳社の本
Scala逆引きレシピ(竹添直樹 島本多可子)|翔泳社の本
独習コンピュータ科学基礎II 論理構造(神林靖 James L. Hein)|翔泳社の本

CUTT System

CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
CUTT System:AVX命令入門
CUTT System:64ビットアセンブラ入門

CQ出版

データベース技術教科書
数値演算入門―8086による浮動小数点演算の実際と8087の使い方 (パラダイム・ブックス) | 大貫 広幸 |本 | 通販 | Amazon
x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
[絶版1999.4] 8086ファミリ・ハンドブック
[絶版2003.5.26] PostScript詳細解説
組み込みソフトへの数理的アプローチ

共立出版

情報理論のための数理論理学 / 板井 昌典 著 | 共立出版
スタックコンピュータ ―CISC/RISCとスタックアーキテクチャ― / Philip J.Koopman,Jr.  著 田中 清臣 監訳 藤井 敬雄 訳 | 共立出版
新しいプログラミング・パラダイム / 井田 哲雄 編 | 共立出版
続新しいプログラミング・パラダイム / 井田 哲雄 田中 二郎 編 | 共立出版
属性文法入門 | 今泉 貴史, 片山 卓也, 佐々 政孝, 篠田 陽一, 中田 育男, 西野 哲朗, 松田 裕幸, 情報処理学会 |本 | 通販 | Amazon
プログラムスライシング技術と応用 / 下村 隆夫 著 | 共立出版
並列論理型言語GHCとその応用 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
プログラム変換 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
制約論理プログラミング / 淵 一博 監修 溝口 文雄 古川 康一 J-L.Lassez  編 | 共立出版
応用論理 / 桔梗 宏孝 著 | 共立出版
プログラム検証論 / 林 晋 著 | 共立出版
プログラミング言語Standard ML入門 / 大堀 淳 著 | 共立出版
復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
プログラミング言語の新潮流 / 井田 哲雄 著 | 共立出版
情報代数 / 小野 寛晰 著 | 共立出版
情報検索の基礎 / Christopher D.Manning  Prabhakar Raghavan  Hinrich Schutze  著 岩野 和生 黒川 利明 濱田 誠司 村上 明子 訳 | 共立出版
新装版 プログラミング言語の基礎理論 / 大堀 淳 著 | 共立出版
計算機代数の基礎理論 / 長坂 耕作 岩根 秀直 編著 北本 卓也 讃岐 勝 照井 章 鍋島 克輔 著 | 共立出版
新世代プログラミング / 淵 一博 黒川 利明 編著 | 共立出版
数学における証明と真理 ―様相論理と数学基礎論― / 菊池 誠 編 佐野 勝彦 倉橋 太志 薄葉 季路 黒川 英徳 菊池 誠 著 | 共立出版

アスキー

Amazon | エキスパートCプログラミング―知られざるCの深層 (Ascii books) | ピーター ヴァン・デ・リンデン, Peter van der Linden, 梅原 系 通販
デバッガの理論と実装 (ASCII SOFTWARE SCIENCE Language) | ジョナサン・B. ローゼンバーグ, Jonathan B. Rosenberg, 吉川 邦夫 |本 | 通販 | Amazon
Amazon | Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown 通販
C/C++ セキュアコーディング 第2版
純粋関数型データ構造 - アスキードワンゴ
『純粋関数型データ構造』のためだけの超いい加減な Standard ML 入門 - cafelier@SRM - TopCoder部
じょんどろさんのツイート: "What's new in purely functional data structures since Okasaki? https://t.co/9xo0yqn1W0 純粋関数データ構造の原著が発売されて以降に生まれた純粋なデータ構造等のリスト"
reference request - What's new in purely functional data structures since Okasaki? - Theoretical Computer Science Stack Exchange
CiNii 図書 - Cプログラムブック

マイナビ出版

Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
入門Common Lisp : 関数型4つの特徴とλ計算 (毎日コミュニケーションズ): 2006|書誌詳細|国立国会図書館サーチ

日本評論社

古森 雄一 のホームページ
圏論の歩き方|日本評論社
関数プログラミング|日本評論社
情報科学における論理|日本評論社

朝倉書店

朝倉書店| コンパイラの構成と最適化 (第2版)
朝倉書店| 数理論理学
数理情報学入門 : スコット・プログラム理論 (朝倉書店): 1982|書誌詳細|国立国会図書館サーチ
朝倉書店| パターンの発見 ―離散数学―
朝倉書店| パラドックスの不思議 ―論理と集合―
朝倉書店| コンピュータの思考法 ―計算モデル―
朝倉書店| コンピュータと数学

森北出版

形式的モデル化 離散事象/実時間/ハイブリッドシステムのモデル化と解析 | 森北出版株式会社
定理証明支援系とは何か、何ができるのか|森北出版|note
Coq/SSReflect/MathCompによる定理証明 フリーソフトではじめる数学の形式化 | 森北出版株式会社
計算モデルとプログラミング | 森北出版株式会社

ナノオプト・メディア

モデル検査 (ナノオプト・メディア): 2010|書誌詳細|国立国会図書館サーチ
モデル検査 : 基礎から実践まで4日で学べる (ナノオプト・メディア): 2009|書誌詳細|国立国会図書館サーチ

幻冬舎ルネッサンス新社

論理がはじめてわかる 新・論理考究 - 自費出版の幻冬舎ルネッサンス新社
「ならば」騒乱 - 自費出版の幻冬舎ルネッサンス新社

新潮社

ジョージ・G・スピーロ、青木薫/訳 『ケプラー予想―四百年の難問が解けるまで―』 | 新潮社
ロビン・ウィルソン、茂木健一郎/訳 『四色問題』 | 新潮社

デザインエッグ社

数理論理の手法 - 証明の発見と背理法の除去 (MyISBN - デザインエッグ社) | 安部 直人, 中西 泰雄 |本 | 通販 | Amazon
タブロー法による直接証明の発見 (MyISBN - デザインエッグ社) | 中西 泰雄 |本 | 通販 | Amazon

トッパン

注解C++リファレンス・マニュアル (トッパン): 1992|書誌詳細|国立国会図書館サーチ
A=B : 等式証明とコンピュータ (トッパン): 1997|書誌詳細|国立国会図書館サーチ

遊星社

数学と新しい論理
述語論理・入門
構成的プログラミングの基礎
選択公理と数学

放送大学教育振興会

「コンピューティング-原理とその展開-」 - 理学の本棚 - 東京大学 大学院理学系研究科・理学部

青土社

青土社 ||科学/数学/生物:コンピュータは数学者になれるのか?
青土社 ||科学/数学/生物:バナッハ=タルスキの逆説

GUI

その他

Kindle

Google Chrome ユーザーデータ自動軽量化Book | 柳井 政和 | 工学 | Kindleストア | Amazon
速習ECMAScript2018: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ | 山田祥寛 | 工学 | Kindleストア | Amazon

curses―UNIXユーティリティライブラリ | ジョン ストラング, 菊池 彰 |本 | 通販 | Amazon
The Craft of Text Editing―手作りのテキストエディタ | クレイグ・A. フィンゼス, Craig A. Finseth, 岩谷 宏 |本 | 通販 | Amazon
グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon
HTML+スタイルシート徹底活用ガイド (SOFTBANK BOOKS) | 宮坂 雅輝 |本 | 通販 | Amazon
HTML&CSS―HTML4.01&CSS2対応 (速効!ポケットマニュアル) | 森 理浩 |本 | 通販 | Amazon
朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
マイナビ ブックス - 目次
IBM PCビデオシステムプログラミング (ソフトバンク出版事業部): 1994|書誌詳細|国立国会図書館サーチ
秀和システム:フルスクラッチによるグラフィックスプログラミング入門
並列処理シリーズ 並列図形処理|コロナ社
Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 - インプレスブックス

CQ出版

[絶版2008.9.4] JPEG2000詳細解説
[絶版2008.8.19] よくわかる動画・静止画の処理技術
No.6(2010・SUMMER) 目次|ディジタル・デザイン・テクノロジ

技術評論社

検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏:書籍案内|技術評論社
Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
ブラウザのしくみ:書籍案内|技術評論社
Webフロントエンド ハイパフォーマンス チューニング:書籍案内|技術評論社

アスキー

プログラミングWideStudio―オープンソース、マルチプラットフォーム対応統合開発環境 (ASCII SOFTWARE SCIENCE Language) | 平林 俊一, 末竹 弘之, 白沢 克年, 玉木 徹, 重 俊博, 山崎 亮, 金 泰斗, 山本 清, おぐら ともふみ |本 | 通販 | Amazon
termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon

O'Reilly Japan

O'Reilly Japan - 初めてのJavaScript 第3版
O'Reilly Japan - SVGエッセンシャルズ 第2版
O'Reilly Japan - CSSシークレット
O'Reilly Japan - CSSクックブック
O'Reilly Japan - 実用Git
O'Reilly Japan - PDF構造解説

アンテナハウス

『PDFインフラストラクチャ解説 電子の紙PDFとその周辺技術を語り尽す』 | アンテナハウス PDF資料室
『タグ付きPDF 仕組と制作方法解説』Kindle版とプリントオンデマンド版発売になりました。 | 電子書籍、電子出版のCAS-UBブログ
目次:MathML 数式組版入門

OS

その他

Kindle

Windows Installer技術 | 福間通人 | 工学 | Kindleストア | Amazon
Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア

Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう|書籍情報|秀和システム
Solarisインターナル―カーネル構造のすべて | ジム モーロ, リチャード マクドゥーガル, Jim Maure, Richard McDougall, 福本 秀, 細川 一茂, 佐藤 敬, 兵頭 武文, 大嶺 朋之 |本 | 通販 | Amazon
UNIXカーネル内部解析―キャッシュとマルチプロセッサの管理 (プロフェッショナルコンピューティングシリーズ) | カート シメル, Curt Schimmel, 岩本 信一 |本 | 通販 | Amazon
オペレーティングシステム入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
[改訂版]コンピュータと素因子分解
はじめての数論 原著第3版[丸善出版]
Amazon | Win32システムサービスプログラミング―Windows NT/95システムAPIリファレンス (Windows programming technique) | マーシャル・ブレイン, 郡司 芳昭, 三田 典玄 | Web構築・管理
Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
ソフトウェア実行/開発環境 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
分散オペレーティングシステム ―UNIXの次にくるもの― / 前川 守 所 真理雄 清水 謙多郎 編 | 共立出版
実践サイバーセキュリティモニタリング|コロナ社

工学社

書籍情報―OpenCV3ではじめる Windowsアプリ開発
OpenCV3ではじめる Windowsアプリ開発
次世代OSアーキテクチャ―QNXオペレーティング・システムの世界 「マイクロカーネルOS」と「ネットワーク分散処理」 | 鈴木 治 |本 | 通販 | Amazon
書籍情報―「USB TypeC」の基礎知識
書籍情報―実践「USB TypeC」

翔泳社

Amazon | Windows 98 APIバイブル シェル・シェルユーティリティ・印刷・IME・追加関数編 (Programmer’s Selection) | ガリバー, 長谷川 勝規 | Windows
COM IDL&インターフェイスデザイン (Programmer’s SELECTION) | アル メジャー, 萩原 正義, Al Major, 夏目 大 |本 | 通販 | Amazon
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(鈴木貢 中條拓伯 John L. Hennessy David A. Patterson 天野英晴 吉瀬謙二 佐藤寿倫)|翔泳社の本

トムソン

プログラマーのためのDCE入門 | ワード ローゼンベリー, ゲリー フィッシャー, デビッド ケニー, Ward Rosenberry, Gerry Fisher, David Kenney, 中田 温朗 |本 | 通販 | Amazon
DCEプログラミングガイド | ジョン シャーリー, デビット マギッド, ウェイ フー, John Shirley, David Magid, Wei Hu, 中田 温朗 |本 | 通販 | Amazon
DCEとWindows NT―対応アプリケーションのプログラミング | ワード ローゼンベリー, ジム ティーグ, Ward Rosenberry, Jim Teague, 望月 康司 |本 | 通販 | Amazon

日経BP社

プログラミングWindows Runtime|日経BPブックナビ【公式サイト】
日経BP書店|目次 -
Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
APIで学ぶWindows徹底理解 (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア編 |本 | 通販 | Amazon
APIで学ぶWindowsプログラミング (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア |本 | 通販 | Amazon
日経ソフトウエア 2010年 04月号 [雑誌] | 日経ソフトウエア |本 | 通販 | Amazon
COM+テクノロジガイド (マイクロソフト公式解説書―最新テクノロジシリーズ) | デイビット プラット, David S. Platt, 豊田 孝 |本 | 通販 | Amazon

技術評論社

3分間HTTP &メールプロトコル基礎講座 : 世界一わかりやすいネットワークの授業 (技術評論社): 2010|書誌詳細|国立国会図書館サーチ
Firefox OS 【決定版】 開発ガイドブック:書籍案内|技術評論社

O'Reilly Japan

O'Reilly Japan - Bluetooth Low Energyをはじめよう
O'Reilly Japan - 詳解 Linuxカーネル 第3版
O'Reilly Japan - Real World HTTP

オーム社

USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
sonic1.biz/front_page.htm
マスタリングTCP/IP SNMP編 | コンピュータ・一般書,ネットワーク構築,プロトコル | Ohmsha

ラムダノート

プロフェッショナルSSL/TLS(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
書評:プロフェッショナルSSL/TLS - ぼちぼち日記
プロフェッショナルSSL/TLS 1.2章
OpenSSLクックブック(電子書籍のみ) – 技術書出版と販売のラムダノート

森北出版

情報セキュリティの理論と技術 暗号理論からICカードの耐タンパー技術まで | 森北出版株式会社
Javaで作って学ぶ暗号技術 RSA,AES,SHAの基礎からSSLまで | 森北出版株式会社

CQ出版

改訂新版 パソコン・インターフェース規格入門(SP No.94)
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
定番!超軽量マイコン用ファイル・システムFatFs
組み込み機器へのUSBホスト実装技法
USB 3.0設計のすべて
シリアルATAの基礎とFPGAへの実装
[品切れ重版未定2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
[絶版2011.9.8] リアルタイム/マルチタスクシステムの徹底研究
全部ネット接続!Ethernetマイコン・プログラミング
USB Type-Cのすべて

アスキー

SOUND BLASTERオフィシャルブック (マルチメディアプログラミング―Disk book) | Richard Heimlich, Peter M. Ridge, David M. Golden, Ivan Luk |本 | 通販 | Amazon
Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown |本 | 通販 | Amazon
Amazon | プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール | Web構築・管理
プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール |本 | 通販 | Amazon
Amazon | Inside OLE (マイクロソフトプレスシリーズ) | Kraig Brockschmidt, エー・ピー・ラボ, 長尾 高弘 | ソフトウェア開発・言語
Amazon | Inside COM―Microsoft’s Component Object Model (Microsoft programming series) | Dale Rogerson, バウングローバル株式会社 | ソフトウェア開発・言語
termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
UNIX Cプログラミング (NUTSSHELL HANDBOOKS) | デビッド・A. クリ, アスキー書籍編集部 |本 | 通販 | Amazon

SBクリエイティブ

WinSock関連リンク集
WinSock2 プログラミング 改訂第2版
SBクリエイティブ:最新 Windows Vistaプログラミング徹底理解
『暗号技術入門 第3版 秘密の国のアリス』
SBクリエイティブ:動かして学ぶセキュリティ入門講座

機械学習

その他

作品紹介:パターン認識と機械学習の学習普及版 :暗黒通信団
図解でわかる多変量解析 : データの山から本質を見抜く科学的分析ツール 涌井 良幸(著/文)…他1名(日本実業出版社)| 版元ドットコム
概念記憶システムの研究―概念記憶の意味ネットワークモデルと連想プロセッサによる実現法 (1982年) | 嶋津 好生 |本 | 通販 | Amazon
発語内行為の意味ネットワーク―言語行為論からの辞書的対話事例分析 (松山大学言語・情報研究センター叢書) | 久保 進, 越智 希美子, 向井 留実子, 阿部 桂子, 鈴木 光代 |本 | 通販 | Amazon
CiNii 図書 - C言語によるエキスパートシステム : シェルの実例と知識表現
CiNii 図書 - エキスパートシステムの設計と開発
ソフトコンピューティング (海文堂出版): 1998|書誌詳細|国立国会図書館サーチ
O'Reilly Japan - word2vecによる自然言語処理
近代科学社
知識と推論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
確率的言語モデル - 東京大学出版会
考えることの科学|新書|中央公論新社
ニューロ・ファジィ・遺伝的アルゴリズム (産業図書): 1994|書誌詳細|国立国会図書館サーチ
朝倉書店| しくみがわかる深層学習
複雑系のための基礎数理 : べき乗則とツァリスエントロピーの数理 (牧野書店): 2010|書誌詳細|国立国会図書館サーチ
自然言語処理シリーズ 構文解析|コロナ社
新しい微積分<上> | 書籍情報 | 株式会社 講談社サイエンティフィク
1次近似で視る多変数の微分積分 (学術図書出版社): 2013|書誌詳細|国立国会図書館サーチ
海文堂出版株式会社

技術評論社

Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社
Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー:書籍案内|技術評論社
サポートページ:日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界:|技術評論社

岩波書店

知識と推論 (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
自然言語処理 (岩波書店): 1996|書誌詳細|国立国会図書館サーチ
認識と学習 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
言語の獲得と喪失 (岩波書店): 1999|書誌詳細|国立国会図書館サーチ
キーポイント 多変数の微分積分 - 岩波書店

共立出版

確率的グラフィカルモデル / 鈴木 譲 植野 真臣 編著 黒木 学 清水 昌平 湊 真一 石畠 正和 樺島 祥介 田中 和之 本村 陽一 玉田 嘉紀 著 | 共立出版
微分積分学講義 / 野村 隆昭 著 | 共立出版
数値計算の常識 / 伊理 正夫 藤野 和建 著 | 共立出版
線形代数入門 : 理論と計算法徹底ガイド 松本 和一郎(著/文)(共立)| 版元ドットコム
言語を獲得するコンピュータ / 日本認知科学会  編 錦見 美貴子 著 | 共立出版
最小二乗法・交互最小二乗法 / 森 裕一 黒田 正博 足立 浩平 著 | 共立出版
知識の帰納的推論 / E.Y.Shapiro  著 淵 一博 監修 有川 節夫 訳 | 共立出版
定性推論 / 淵 一博 監修 溝口 文雄 古川 康一 安西 祐一郎 共編 | 共立出版
イプシロン‐デルタ / 田島 一郎 著 | 共立出版

内田老鶴圃

内田老鶴圃/書籍詳細/統計学への確率論,その先へ
Papers and Preprints
sonosakie.pdf

オーム社

続・わかりやすい パターン認識 -教師なし学習入門- | 理工学専門書,情報科学,知識科学・人工知能 | Ohmsha
【書評】続・わかりやすいパターン認識 -教師なし学習入門- - old school magic
知的連想メモリマシン (オーム社): 1989|書誌詳細|国立国会図書館サーチ
グッド・マス ギークのための数・論理・計算機科学 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha

森北出版

フリーソフトでつくる音声認識システム(第2版) パターン認識・機械学習の初歩から対話システムまで | 森北出版株式会社
はじめてのパターン認識 | 森北出版株式会社
はじめての数理論理学 証明を作りながら学ぶ記号論理の考え方 | 森北出版株式会社
待ち行列と確率分布 情報システム解析への応用 | 森北出版株式会社

丸善出版

keiichiro shikano λ♪さんのツイート: "PRML、無償ダウンロードだと。。 https://t.co/vXEwlTZLnr"
パターン認識と機械学習 上[丸善出版]
PRML演習問題 全問解答 | 機械学習の教科書の決定版【パターン認識と機械学習】の演習問題の全てを詳しく解答・解説
New Book: Knowledge Representation and Fast Inferences
情報学シリーズ2

CQ出版

RFワールドNo.30 - 目次
RFワールドNo.32 - 目次
改訂新版 データの符号化技術と誤り訂正の基礎

PDF 等

オンラインで入手できる数理論理学・数学基礎論のテキスト
計算機プログラムの構造と解釈 第二版
クラウドを支えるこれからの暗号技術
Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア
jr4qpv/GNU_Make_3rd_jp: The GNU Make 3rd edition PDF of Japanese.
『OpenSSLクックブック』提供開始のお知らせ – 技術書出版と販売のラムダノート
Git - Book
「プロフェッショナルIPv6」- 窓の杜
LambdaNote/errata-professional-ipv6-1-1: 『プロフェッショナルIPv6』正誤情報
OpenDataStructures.jp
HTTP/3 explained - The book
日本統計学会75周年記念出版
XML関連出版物トップ - AH Formatter V6
O'Reilly Japan - GNU Make 第3版
O'Reilly Japan - Real World HTTP ミニ版
Real World HTTPミニ版 - Google スライド
犬テトラ+
イヌでもわかるCSS Houdini - 犬テトラ+ 出版社 - BOOTH
低レイヤを知りたい人のためのCコンパイラ作成入門 - - BOOTH(同人誌通販・ダウンロード)
低レイヤを知りたい人のための Cコンパイラ作成入門
「低レイヤを知りたい人のためのCコンパイラ作成入門」フィードバックフォーム
サークル詳細 | 海洋軟件 | 技術書典
導入 -
多言語組版について | 多言語フォント | モリサワのフォント | 株式会社モリサワ
Aho/Ullman Foundations of Computer Science
PC ハードウェアインタフェース - shikimidai | パブー
徹底解説 v6プラス | 日本ネットワークイネイブラー株式会社
ソフトウェアの基礎
SICP Web Site for the Japanese Edition
Kazuho OkuさんはTwitterを使っています 「宣伝しとくと、ロングマン英英辞典は、約2000語の基礎語彙を使って全ての単語を説明していて、英語を英語のニュアンスで学ぶ際の決定版とも言われる英英辞典です。英和だと、どうしても単語の一対一対応になりがちで、文脈による言い回しに対応しづらいから、学習用として英英辞典が勧められる認識」 / Twitter
Longman Dictionary of Contemporary English | LDOCE
セキュリティに関する情報源を整理してみた 2020年版 - トリコロールな猫/セキュリティ
2020年上半期に公開されたセキュリティ関連文書まとめ - トリコロールな猫/セキュリティ
xv6-riscv-jpn.pdf

規格

JIS

ODF

ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
JIS X 4157-3:2008 トピックマップ―第3部:XML構文 | 日本規格協会 JSA Group Webdesk
JIS X 4158:2005 XML名前空間 | 日本規格協会 JSA Group Webdesk
JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4160:2007 XMLパス言語(XPath)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4166:2005 XML文書へのグリフ識別子の埋込み | 日本規格協会 JSA Group Webdesk
JIS X 4176:2005 XMLリンク付け言語(XLink)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 5093:2008 XML署名利用電子署名(XAdES)の長期署名プロファイル | 日本規格協会 JSA Group Webdesk

JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
JIS X 4156:2005 ハイパテキストマーク付け言語(HTML)
JIS X 4168:2004 段階スタイルシート 水準1(CSS1)
JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様/Open Systems Interconnection -- Specification of Abstract Syntax Notation One (ASN.1) 日本規格協会 JSA Webdesk
JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造/Volume and file structure of CD-ROM for information interchange 日本規格協会 JSA Webdesk
JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 | 日本規格協会 JSA Group Webdesk
JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) | 日本規格協会 JSA Group Webdesk

Publicly Available Standards
日本規格協会 - JSA Webdesk
JIS公示 | IPSJ/ITSCJ
JIS(日本工業標準)関係
MCPC-モバイルコンピューティング推進コンソーシアム
CIPA 一般社団法人カメラ映像機器工業会: ホーム
JEITA 電子情報技術産業協会
標準規格(放送分野)一覧表|一般社団法人 電波産業会
JIS法改正(産業標準化法)(METI/経済産業省)
工業標準化法 - Wikipedia
日本工業規格 - Wikipedia
総務省|標準化の推進|デジュール及びフォーラム標準に関する標準化活動の強化に資する調査
ISO - ISO/IEC 646:1991 - Information technology — ISO 7-bit coded character set for information interchange
ISO 80000-2:2019 量及び単位-第2部:数学 | 日本規格協会 JSA Group Webdesk

論文

その他

【プレスリリース】アンモニアをクリーンで画期的な燃料に変える新しい触媒を開発 | 日本の研究.com
プラスチックを「食べる」酵素、研究室で偶然作成 | ナショナルジオグラフィック日本版サイト
遠山 祐典さんのツイート: "Nature公式、論文要旨の書き方。 授業でこれを扱うと国籍問わず大半の大学院生が知らなかったと言うので簡易和訳版を作成。 もちろん、Nature以外の論文にも流用する事が可能。 注目は、[結果]に使える文の少なさ(2~3文。全体の20~25%)。 和訳の修正案、大歓迎です。 英語版:https://t.co/RQEbeOWoNX… https://t.co/zdu9I9J24b"
2c_Summary_para.pdf
F1000とビル&メリンダ・ゲイツ財団、オープンアクセス出版のためのプラットフォーム“Gates Open Research”を2017年の第3四半期に開始 | カレントアウェアネス・ポータル
Gates Open Research
松田 栄治 Eiji Matsudaさんのツイート: "Nature Researchの松田と申します。このアブストラクトの書き方について、Nature日本法人の方で作っているPDFもありますので、よろしければご自由にお使いください。下記URLのp11となります。 https://t.co/7ze0gbfpCW… "
Yasunori GotoさんはTwitterを使っています 「作り方でもあるけど、論文のサマリの読み取り方でもあるよね。」 / Twitter
遠山 祐典さんのツイート: "ありがとうございます。 既にNature日本法人公式の日本語版があるとは存じあげませんでした。 公式版の方が、はるかに分かりやすいですね。 皆さま、こちらの公式版をお使い下さい。 Nature投稿案内: https://t.co/Nr1VZzaLjG… https://t.co/8u0eAdgbnV"
gta-2017.pdf
SIGのスポンサーになって、プログラミングの英語論文を読みまくろう! - Fight the Future
OS & システムソフトウェアの一流国際会議 - 品川高廣(東京大学)のブログ
工学系大学4年生のための論文の読み方

ResearchGate

ResearchGate | Find and share research
ResearchGate News
ResearchGate - Wikipedia
ResearchGate - Wikipedia
ResearchGate (リサーチゲート) | お役立ち情報ページ | レタープレス株式会社
研究者向けSNS「ResearchGate」で研究者間のつながりや議論はどう変わるのか | 英文校正と論文翻訳の医学英語総合サービス
ResearchGate 170万本の閲覧制限から見える著作権問題ー学術英語アカデミー
第303号 ResearchGateをめぐる動き(2) |ユサコニュース詳細 | 学術情報・論文作成支援【ユサコ株式会社】
ResearchGateによる無許可掲載 | エディテージ・インサイト

JAC複製利用許諾システム |
Kenichi Asai
FrontPage - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
IEICE ソフトウェアサイエンス研究会 (SIGSS)
情報処理学会 プログラミング研究会
情報学広場:情報処理学会電子図書館
コンピュータ ソフトウェア
人工知能学会論文誌
情報通信学会誌
電子情報通信学会 基礎・境界ソサイエティ Fundamentals Review
電子情報通信学会 通信ソサイエティマガジン
情報学広場:情報処理学会電子図書館
無料で読める記事-情報処理学会
解説・論文等-コンピュータ博物館
JAIRO : Japanese Institutional Repositories Online
CiNii Articles - 日本の論文をさがす - 国立情報学研究所
J-GLOBAL 科学技術総合リンクセンター - 科学技術振興機構
J-STAGE トップ
arXiv.org e-Print archive
ACL Member Portal | The Association for Computational Linguistics Member Portal
AAAI Publications
トップページ|日本漢字学会(Jsccc)
日本の研究.com
Open Access to ACM Digital Library During Coronavirus Pandemic
ACM Digital Library
Home - Springer

素材

アイコン素材

IcoMoonの使い方・ライセンス一覧など!Webフォントで扱えるアイコン素材サイト | ホームページ大学
FLATICONの使い方・ライセンスなどをご紹介!無料でも利用できるフリーアイコン素材サイト | ホームページ大学
オリジナルのアイコンをWEBフォント化して使う【fontello.com】
Network Topology Icons - Doing Business With Cisco - Cisco
図面とともにあらんことを!:第二面 - ネットワークのゲンバ(2014) | Interop Tokyo 2014
Dia Shape Repository
Bootstrapにとって初めての独自アイコン集「Bootstrap Icons」バージョン1.0が初公開 - Publickey

Lorem ipsum - Wikipedia
NHKクリエイティブ・ライブラリー 素材をさがす
ニューヨーク・メトロポリタン美術館、パブリックドメインになった芸術作品のデジタル画像をオープンアクセス化 | スラド オープンソース
The Metropolitan Museum of Art makes 375,000 images of public domain art freely available under Creative Commons Zero – Wikimedia Blog
ポーズビューワ | デッサンポーズ
無料ダウンロード&商用利用もOKなクラシカルな装飾を集めた「Handbook of Ornament」作品集 - GIGAZINE
無料でゲーム・アプリの開発に使えるアイコンが2800種類以上ある「Game-icons.net」 - GIGAZINE
Googleが機械学習用データとして利用できる手書きイラスト5000万点をオープンに利用できる形で公開 | スラド オープンソース
Quick, Draw! The Data
googlecreativelab/quickdraw-dataset: Documentation on how to access and use the Quick, Draw! Dataset.
英BBC、個人および研究目的なら無料で使える約1万6000種類のサウンドライブラリーを公開中【やじうまWatch】 - INTERNET Watch
ご利用について | いらすとや
クラシック音楽mp3無料ダウンロード 著作権切れ、パブリックドメインの歴史的音源
今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI

予約済みドメイン等

Example Domain
Example Domain
Example Domain
Example Domain
予約済みドメイン (.example, .localhost, .test) について | blog.jxck.io
RFC 7042 - IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
RFC 3849 - IPv6 Address Prefix Reserved for Documentation
RFC 5737 - IPv4 Address Blocks Reserved for Documentation

チェックリスト等

技術書、それも売れるやつを書きたい人へ、編集者からのアドバイス | ツチノコブログ
技術系ブログを書いてくれてる人に申し上げたいこと6つ
論文等、書き物を他人に見せる前のチェックリスト – 上田ブログ
ブログを書くときのアンチパターン集【Agent Grow Advent Calendar 2016:25日目】 | 自主的20%るぅる
第3回プロから学ぶ「わかりやすい文章の書き方」
PDCAと5W1Hと4S
k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
ドキュメントの構造化による,良いドキュメントの作成方法:新春特別企画|gihyo.jp … 技術評論社
読まれるテキストは読者へのおもてなしの構造を持っている - mizchi's blog
失敗を学びに変える「障害報告書」の書き方 ─ RettyのCTOがGoogleで学んだ「問題を隠さない文化」 - エンジニアHub|若手Webエンジニアのキャリアを考える!
本の虫: Bjarne Stroustrupのプログラミング入門書の査読の感想
わかりやすい文章の10大原則(第2回) | Web文章入門(全7回) | Web担当者Forum
sogitani / baigie inc.さんのツイート: "話が分かりにくい人の条件 ・前提の説明がない ・結論を先に言ってない ・質問に答えてない ・全体→部分という構造になってない ・抽象的な言葉が多い ・相手に合わせて使う言葉を選んでない ・言葉を省略しすぎてる ・事実と解釈がごちゃまぜ ・話が拡散したり脱線したりする"
sogitani / baigie inc.さんのツイート: "分かりやすい文章の条件 ・前提の説明を丁寧にする ・結論をなるべく先に書く ・読み手の疑問を想定しそれに答える ・全体→部分という構造にする ・抽象的な言葉を避けて具体的に書く ・読み手に合わせて使う言葉を選ぶ ・言葉を省略しすぎない ・事実と解釈を区別して書く ・話の拡散、脱線を避ける"
これだけ守れば見やすくなるデザインの基礎 - Speaker Deck
Kazuho Okuさんのツイート: "どんな仕事でもそうだと思うけど、ソフトウェア開発でも実装の「how」でなく設計の背後にある「why」を共有しちゃえば、PRを細かく見る必要がなくなって楽になるんだよなーと思ってる"
事業計画書の作り方、新規ビジネスの考え方

日本語

読み

【みんなの知識 ちょっと便利帳】記号/符号の種類・名称・読み方 =キーボードの記号=
等幅フォントは「とうふく」「とうはば」どっち? - しろもじメモランダム
括弧 - Wikipedia
混乱する括弧の呼び方(パーレン?ブラケット?ブレース?) - ポンコツWebエンジニアのかっこ悪く生きる日記
ハイアラーキー(はいあらーきー)とは - コトバンク
日本人が間違った覚え方をする「得意ではない」言葉について - GIGAZINE
ハッシュタグ記号は「シャープ」じゃない? | 毎日ことば
既存(キソン)とは - コトバンク
アキバで恥をかく禁句ワード Vol.5:アムド【あむど】 - ITmedia PC USER
不思議な読み方をするあの漢字 : KODOMO : 読売新聞(YOMIURI ONLINE) 1/2
なかのん&マジックさんのツイート: "Wikipediaはwikiという聞き慣れない単語を固有名詞内に含めた時点で、マーケティング的には「wikiと略すな」は、逆に何言ってんのという感じある(言ってるのは外野なんだと思うけど)。"
なかのん&マジックさんのツイート: "むしろ、wikiと言われてWikipediaが連想される状況って、Wikipediaにとっては誇らしい状況だと思うんだけど。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔からダイヤル、ワイヤレス、のように本来Yが発音にないのに「ヤ」と表記する由来は何かと思ったが、母音連続を避ける「介入子音」という概念があり、英語でも冠詞aがanとなったり、idea ofと発音する際、aとoの間にr音が発生するという話…面白い。 https://t.co/fZBTMBj0cF"
contentscinii_20180414235118.pdf
なかのん&マジックさんのツイート: "交野市私市って、大阪の人間でも読めない人多そうで、なんて地名だ。"
なかのん&マジックさんのツイート: "かたのし、きさいち"
大西科学さんのツイート: "同じ難読市名でも、「まいかたかな……?」と間違って読んでしまうものも難読と言えますが、そもそも読めない、どう読んでよいかわからない市が千葉にあります。そこを訪れて初めて出会ったので、まったく読めない字というのがまだあるのだな、私はまだまだだなと思いました。匝瑳市というのですが。"
suzakiさんのツイート: "「ちょうふく」と「じゅうふく」の読み方はMemory Deduplication (LinuxではKSM:kernel shared memory)を日本語で説明するのに苦労しました。 どちらを使っても大抵もう一方を指摘されました。… "
まさみさんは語りたいさんのツイート: "代替と代替の議論も(笑)… "
Shiro Kawaiさんのツイート: "「定数」はどっちがどっちだろう https://t.co/tYqmgeXybX"
「稟議=りんぎ」「消耗=しょうもう」ではない? 現代人には分からない“漢字の本来の読み方”(ねとらぼ) - Yahoo!ニュース
羊頭狗肉(ようとうくにく)の意味・使い方 - 四字熟語一覧 - goo辞書

毎日ことば

辞書にはない「大宗」の意味 | 毎日ことば
「訳」と「わけ」 | 毎日ことば
「多いに」 | 毎日ことば
「ありがたい」と「有り難い」 | 毎日ことば
「よい」と「良い」 | 毎日ことば
「多数」と「大多数」 | 毎日ことば
「任期を迎える」 | 毎日ことば
「臨む」と「望む」 | 毎日ことば
「なぜ新聞は閉じカッコの前に句点を付けないのか。」 | 毎日ことば
「濃(こま)やか」と「細やか」 | 毎日ことば
「無実」と「罪のない」の違い | 毎日ことば
「司令」と「指令」 | 毎日ことば
「シャッターを押す」 | 毎日ことば
「ため」とよむ「為」 | 毎日ことば
「目線に立って」 | 毎日ことば
「固定概念」 | 毎日ことば
「排外」と「拝外」 | 毎日ことば
各上位2位までが | 毎日ことば
辞書を、言葉をなんだと思っているのか | 毎日ことば
なぜ新聞は「想う」を使わないか | 毎日ことば
約1万3249基 | 毎日ことば
「鋭い目線」を「鋭い視線」に直す理由 | 毎日ことば
「薄皮をはぐように」忘れる? | 毎日ことば
ネットの類語辞典は辞書といえるか | 毎日ことば

blog

医療法人申請における当用漢字 | yasuokaの日記 | スラド
恣意的の誤用
”たてつけ”??その使い方はあり?? : 生活・身近な話題 : 発言小町 : 大手小町 : YOMIURI ONLINE(読売新聞)
日本語は何故、どこが難しいのかー外国人から見る日本語のムズカシイ - 昭和考古学とブログエッセイの旅へ
シャベルとスコップの呼び方が東日本と西日本で逆だと話題に 「小さい方がシャベル」「え、スコップだろ?」 - ねとらぼ
ひとりふたりという数え方はなぜ三人めから「……り」とならないのか?→実は三人以上にも “り” はあるらしい「へぇ! 知らなかった」 - Togetter
k16's note: 日本語の編集をしていてよく直すパターン15選(増えるかも)
漢字研究ブログ: 「函数」が音訳というデマと、本当の語源
「させていただけないでしょうか」禁止令 | ウェブ電通報

Wikipedia

誤謬 - Wikipedia
以上・以下 - Wikipedia

Twitter

Fumiaki Nishihara(西原史暁)さんのツイート: "これ、本当にそうで、なぜか「標本」のことを「母集団」と呼んでいる人、ネット上でも実社会でもよく見ます。たぶん、分母と混同しているんだと思うんですよね。 - 「母集団」の意味間違えてる奴多すぎ問題 https://t.co/0efNkMvOon"
「母集団」の意味間違えてる奴多すぎ問題
統計学における「母数」は"parameter"の訳語だってみんな知ってた?―訳語選択の失敗例
なかのん&マジックさんのツイート: "「無学」だと知らないレベルのものが「共通の」言語プロトコルなのかというところには同意しかねますなぁ。… "
棚旗 織さんのツイート: "正しい敬称での呼び方は、敬意だけでなくそれ以上に、共通の言語プロトコルで会話できる旨を示します。わざわざ変な呼び方をして、己を育ちの悪い無学だと他者に思わせて何がしたいのでしょう。聞いてもらえる話も聞いてもらえなくなります。… "
なかのん&マジックさんのツイート: "人それぞれ掘り下げたところ、掘り下げずに行ったところはあるわけで、「無学」という言葉自体、得意分野でマウントとりたい場合に使われるものと私は認識しています。"
なかのん&マジックさんのツイート: "極端に言えば、昨今Twitterで叩かれてる「マナー講師の作り出すマナー」と何の違いがあるんだろうかと。言葉は誰かが作り出して広まるものなので。"
Yusuke Teradaさんのツイート: "有名な「横書き句読点の謎」という文書https://t.co/8YjP40ma83 があるけれど,最新の調査結果として文化庁の「国語に関する世論調査」の資料 https://t.co/dOLJQfC4Wj が興味深い。うちの業界では「カンマ・マル」方式が主流だけれど,世間では「テン・マル」方式が主流になりつつある流れを感じる。… https://t.co/2wL2IsIPsG"
ten.dvi
r1393038_01.pdf
Yusuke Teradaさんのツイート: "理数系の専門書では「カンマ・ピリオド」方式が圧倒的に感じるけれど,この調査では2.3%しかない。むしろ2.7%もあることになっている「テン・ピリオド」方式は一度も見たことがない気がする……(「横書き句読点の謎」では「まずないでしょう」と切り捨てられている)。"
ショーンKY(ネット論客)さんはTwitterを使っています 「なまじ一般語と同じ言葉を使っているために勘違いされやすそうな言葉の例 医学「清潔・不潔」 数学「高々」 化学「雰囲気」 あと他に専門の方頼む」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「情報工学だと、低レベルとか。」 / Twitter
松野美穂💮さんはTwitterを使っています 「「そうゆう」を使う方は私は警戒してしまいます。お仕事の依頼のメールに使われていたらお引き受けしない可能性がグンと上がります…。言葉を扱う仕事の方には使ってほしくありません😢 この他に「延々と」を「永遠と」とされるのも嫌です… https://t.co/RkXhBeSPeT」 / Twitter
マカオさんはTwitterを使っています 「@matsunom @kotoyoshi_y 一応をいちようと言われるのが個人的には苦手ですね。 言葉でいちようと言われて文字でどう書くんだろうって思ったら「いちよう」で苦笑いしました。」 / Twitter
まこ🐁きめつ沼さんはTwitterを使っています 「@matsunom 『言わざるおえない』と書く人も結構多くて……どんなにいい文章を書かれるかただったとしても『ウッッ』ってなってしまいます。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ら抜き言葉みたいに、「間違い」(名詞)を「間違え」って言う/書くのもどっかの方言なんかな?」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「日本語の書き下しという問題をめぐっては、これまでに思考を何周も回してしまった結果、読み手に対して誤解がなさそうなら何でも正解でいいという心境にあり、あらゆる意味で「正解」の存在が怖い。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「いまのところの好みは、文部省がなんか昭和に出したやつを原則としつつ、副詞とか接尾辞はひらがなに倒して、ただし漢字による強い語感がほしい場合には漢字を使うことをいとわない、かなあ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「これもどっかで文書化しておかないとなんだよな」 / Twitter
公文書の読点「,」から「、」に 半世紀以上前の通知変更へ | 共同通信
Sho YokoiさんはTwitterを使っています 「句読点に「,.」を使うのは欧米かぶれだとか “理系” の論文ではそれが普通だとかいう声が飛び交っているので、みなさん是非まずこちらを: 渡部 善隆「横書き句読点の謎」(PDF) https://t.co/N9DvYZA5gs」 / Twitter
ten.dvi - ten.pdf
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「英語だとboundになるのだがこの表現や律速の語源、どこからきたんだろう。 https://t.co/fatIw7nzhN」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「嫁(統計屋さん?)に「律速」が通じなかった。(電車の乗り換えを何回もするけど)「結局◯◯線律速だからここを急いでも着く時間変わらん」と言ったら「リッソク??」だった。 「律速」って理科系の方言なんか。普通に日常会話で使ってたわ。てか「りっそく」漢字変換で出ない。。。」 / Twitter
あきぽち@とくになしさんはTwitterを使っています 「@dr_vegepamyu 理系だけど律速はじめて聞きました! ニュアンスが分からない😅 よく使う理系方言は、さちる。です笑」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@pochicoh 元は複数の化学反応が同時に起こる際の反応速度などに使う用語で、パンピー用語に直すと「ボトルネック」らしい。 個人的な印象だけの話ですが、例えば書類のスタンプラリーで部長があんまり席におらず判子がもらえない時「部長がボトルネック」というと「判子押しが一番遅いのは部長」という名詞?」 / Twitter

員数 - 国語 解決済 | 教えて!goo
若者ことばの「やばみ」や「うれしみ」の「み」はどこから来ているものですか | ことばの疑問 | ことば研究館
15.変換機能のイタズラ――間違われやすい「同音異義語」 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
25.間違えるのには理由がある「にもかかわらず」の漢字表記 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
「5人のなかでCの“次に”背が高い人は?」 解釈の分かれる質問にあなたならどう選ぶ? - ねとらぼ
敷衍 - ウィクショナリー日本語版

英語

Qiita

IT業界で横行する恥ずかしい英語発音 - Qiita
コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
要注意な技術英語 - Qiita
英語の技術文書を早く読むには - Qiita
英語(1) プログラマが知っているとよい英単語の語源 - Qiita

Wikipedia

コンピュータ略語一覧 - Wikipedia
List of computing and IT abbreviations - Wikipedia
ISV - Wikipedia
OSV型 - Wikipedia
Numeronym - Wikipedia
ヌメロニム - Wikipedia
和製英語 - Wikipedia

フォニックス

ヒーホーくんさんのツイート: "英語でこれを教えないせいでどんだけ今まで無駄な時間を費やしてたのか… "
梓弓さんのツイート: "米国駐在中、娘がキンダーでフォニックスを叩きこまれてたのを見て目から鱗。 表音文字のくせにスペルと音が一致しない凶悪な英語でフォニックスを教えないのはアイウエオ表の読み方知らずに日本語(しかも旧仮名使い)習う様なモノ。てふてふでせうの読み方知らないんだから会話上手くなるはずない。… https://t.co/A7iF1p5teM"
梓弓さんのツイート: "小学生から英語を、で週一でハローとかやる全く時間の無駄。 文科省のアホ。 意味のない事を暗記出来るうちに九九の様に、フォニックスとサイトワードを関連付けて徹底的に暗記させるなら意味がある。 例えばcook, book, lookの塊、oil, off, openの塊でスペルの並び方と発音の法則を覚える。"
まさみさんは語りたいさんのツイート: "フォニックスっぽい言い方はなんとなく身に着いちゃったなあ。多分文科省の人とかもそういう非自覚的な学び方しかしてないから、自覚的な学び方を教えられないのだろう。"

”delete”と”remove”の使い分けについて | SDNA ローカライズチームブログ
mappedの意味 - 英和辞典 Weblio辞書
圧倒的腹落ち感!英語の発音と綴りが一致しない理由を専門家に聞きに行ったら、犯人は中世から近代にかけての「見栄」と「惰性」だった。 | DMM英会話ブログ
どうしても英語の綴りが覚えられない! 難しい「スペル」を覚えるための7つのヒント | DMM英会話ブログ
TBAとTBD、TBCの違いがどうしても覚えられないのでメモ - インターネットの備忘録
日本人が陥りがちな英文メールの罠 - 人生の難易度が高すぎるのですが
【英語論文の書き方】第24回 because, since, as など 理由を表す表現 論文翻訳・英文校正 研究者専門の翻訳会社 ワールド翻訳サービス
ゲタ子🇺🇸国際結婚ネバダ州🏜️ベガスじゃないよさんのツイート: "中高の英語、こういう英語教えてほしかったわ… "
英語では「0個の」もの(名詞)は複数形で表現する | Weblio英会話コラム(英語での言い方・英語表現)
Manabu Uenoさんのツイート: "18の時にアメリカに留学してまずESLのクラスに入った。そこで驚いたのは、日本の中高で習った発音は完全に間違いだったということ。そもそも母音の違いが分かってなかった。そこでアメリカ英語の母音16個を徹底的に練習した。そしたらどんな単語もだいたい通じるようになった。今も発音は褒められる。… https://t.co/icY1ZBPV5s"
Manabu Uenoさんのツイート: "外国語の発音についてはどうしても子音の違いに注目しがちだけど、日本人が英語についてまず注目すべきは、母音の数が3倍もあるという点だと思っている。この「音の多さ」に自覚的でなければ、第二言語としてうまく習得できないだろう。発音にしても、聞き取りにしても。"
Manabu Uenoさんのツイート: "英語の発音を練習する際は、自分が知っている全ての単語について、日本語の母音ベース=カタカナで覚えている音を一度全部「捨てる」こと。そして英語の母音を練習して、その母音ベースで全ての単語の音を一から知り直す。例えば bat とbut をはじめから違う音として覚える。"
gr4vit0nさんはTwitterを使っています: 「今回の海外遠征でヨーロッパの人達が発音していた専門用語で驚いた発音は 「Ghidra」->「ジーハイドラ」 「ioctl」->「アイオクタル」 がダントツでした。 全員微妙に発音違うのにちゃんと会話がすぐに通じてるのすごい」 / Twitter
pseudo とは 意味・読み方・表現 | Weblio英和辞書
mappedの意味・使い方 - 英和辞典 WEBLIO辞書
hikaliumさんはTwitterを使っています 「まじか、OOBEはうーびーなのか、文字は見たことがあったけど、発音したりそれを聞いたことがなかった…。(えいごむずかしい。)」 / Twitter
今更聞けない会社の英語表記「Co., Ltd.」「Inc.」「LLC」「Co.」を解説!【保存版】 | English Lab(イングリッシュラボ)┃レアジョブ英会話が発信する英語サイト
青子守歌さんはTwitterを使っています 「「キリル文字の」という意味の英単語Cyrillicはセリリックと発音することを覚えた(ずっとキリリックって読んでた)」 / Twitter

数式用字体
Overleaf, オンラインLaTeXエディター
cartesian closed category in nLab
Mathpedia - Mathpedia
MathWills - 数式に特化した情報共有サービス
Anki - powerful, intelligent flashcards
ELSA - Speak English fluently, easily, confidently

Install

Tools

その他

その他

scoop windows - Google 検索
convert pdf to open document format - Google 検索
microsoft/Detours: Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.
Tuning Guides and Performance Analysis Papers | Intel® Software
ゼロ トラスト セキュリティを実現するための 10 のヒント - original
お役立ち情報一覧 | ニッチなPCゲーマーの環境構築Z
Windowsエクスプローラー特殊Tips【5選】 ― 開発者/クリエイターにおすすめ - Build Insider
Windows 10ミニTips(282) 標準で使える画面キャプチャ機能は7つ | マイナビニュース
山市良のえぬなんとかわーるど: "About your PC" を検索せよ
文字の消滅から11年、Windowsの「スタートボタン」が最近のユーザーには通じないという指摘【やじうまWatch】 - INTERNET Watch
Windows 8 で ISO の「マウント」が出来くなってしまったら | The Simplest Essence
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(前にも書いたけど)Windowsで、拡張子ないファイルのオープンをエディタに関連付けておくと便利(特に開発者) https://t.co/dSFuS8Szia」 / Twitter
How to set the default program for opening files without an extension in Windows? - Super User
拡張子の無いファイルをダブルクリックして開く時、任意のプログラムで開く方法 | MidoNote
Windowsのコマンドライン引数でのクォートの話 | Qrunch(クランチ)
unison file - Google 検索
Microsoft、年内にWindows 10Xリリース?Neoは2022年に延期? - iPhone Mania
入谷 優さんはTwitterを使っています 「PowerShell 7 では cd - や cd + でカレント ディレクトリの履歴を行き来できることを、同僚から教えてもらいました。popd や pushd よりも気軽に使えそうです。 https://t.co/rUR1Wu2raE」 / Twitter
Set-Location (Microsoft.PowerShell.Management) - PowerShell | Microsoft Docs
「Windows」開発にもオープンソース浸透--変わりゆくマイクロソフトの現場 - ZDNet Japan

Microsoft Store

ProcDump - Windows Sysinternals | Microsoft Docs
DebugView - Windows Sysinternals | Microsoft Docs
RAMMap - Windows Sysinternals | Microsoft Docs
A5:SQL Mk-2 (x64) を入手 - Microsoft Store ja-JP

Process Monitor

Process Monitor
Process Monitor – Japan WDK Support Blog
Process Monitor で OS 起動時のログを採取する手順 – Japan WDK Support Blog

Process Explorer

Process Explorer - Windows Sysinternals | Microsoft Docs
Process Explorer が Paging List 統計情報の表示に対応していた件 - NyaRuRuが地球にいたころ
Process Explorer で探る Windows Vista メモリ管理戦略 - NyaRuRuが地球にいたころ
3 分ぐらいでわかる,Process Explorer による Windows Vista メモリ使用状況の調べ方 - NyaRuRuが地球にいたころ
メモリ周りを見るときの Process Explorer の準備 - NyaRuRuが地球にいたころ

パフォーマンス診断

パフォーマンス診断コンソール - NyaRuRuが地球にいたころ
pfmon.exe - NyaRuRuが地球にいたころ
Perforator とは - NyaRuRuが地球にいたころ
Xperf : Event Tracing for Windows frontend - NyaRuRuが地球にいたころ
Download DTrace On Windows from Official Microsoft Download Center

PC Watch

【レビュー】Windows 10に実装予定の新ライセンス認証機能を試す ~パーツ交換を行なっても、オンラインで再認証が可能に - PC Watch
Windows 10X向けエミュレータがInsider Programなしで利用可能に - PC Watch
Windows 10でOSをリセットできない問題。Microsoftが回避策を公開 - PC Watch

窓の杜

Windows 10で[同期の設定]が機能しないケースについてMicrosoftが案内 - 窓の杜
「Windows 10」をアップグレードする際、システム・ユーザー証明書が失われる不具合 - 窓の杜
Thunderbolt NVMe SSDを接続するとブルースクリーン ~「Windows 10 バージョン 2004/20H2」との間に互換性問題 - 窓の杜
Microsoft、本日よりドライバーの提供方法を改善 ~「バージョン 2004」以降で - 窓の杜
「Windows 10 バージョン 2004/20H2」に新たな問題、セーフガードホールドが適用中 - 窓の杜
Microsoft、「PowerShell 7.1」を一般公開 ~Windows 10なら“Microsoft Store”から入手可能 - 窓の杜
Windows 10のセキュリティの質問って覚えてる?思い出せないなら「SecurityQuestionsView」【レビュー】 - 窓の杜
「.NET 5.0」「.NET Core 2.1/3.1」が“Microsoft Update”経由で更新可能に - 窓の杜
「Excel」にラムダ関数、ベータ版でテスト中 ~Excelの数式はチューリング完全な言語に - 窓の杜

GIGAZINE

Microsoftがディープフェイク対策ツール「Video Authenticator」を発表 - GIGAZINE
Windows 10ユーザーの9割近くが更新せずに古いビルドを使い続けていると判明 - GIGAZINE
Windowsのパスワードを「chntpw」で強制リセットしてログインできなくなったPCを使えるようにする方法 - GIGAZINE
「どのDNSサーバーが最速か」を一発でベンチマークできる「DNS Benchmark」レビュー - GIGAZINE
Windows 10向けの公式ファイル復元ツール「Windows File Recovery」 - GIGAZINE
Windows 10のカスタムテーマが「Windowsのアカウント情報を盗むため」に悪用される可能性 - GIGAZINE
Microsoftが「Windows 10のUI」の大規模な刷新を計画中か - GIGAZINE
Windows 7が依然としてデスクトップOSのシェアで20%以上を占めておりWindows XPも根強く生き残っている - GIGAZINE
ユーザーの生産性をスコア化する新機能により「Microsoft 365」は従業員監視ツールになってしまうという指摘 - GIGAZINE
Androidアプリのコードを書き換えずにほぼそのままWindows 10で利用できるようにする「Project Latte」が進行中 - GIGAZINE
Microsoftが「従業員の強力な監視ツールになる」と非難されていた機能を一部削除 - GIGAZINE
画像ファイルやデータベースの文字列を「grep」のように検索できる「ripgrep-all」 - GIGAZINE
Excelの数式言語で独自のカスタム関数を定義できる「LAMBDA」をMicrosoftが発表 - GIGAZINE

ASCII.jp

ASCII.jp:Windows 10の標準アプリが動かなったときの対処法 (1/2)
ASCII.jp:Windowsで自分のIPアドレスを調べる方法は? (1/2)
ASCII.jp:Windows 10でタッチ操作を使いやすくするはずの「Tablet experience for 2-in-1 devices」の謎 (1/2)
ASCII.jp:進化しているWindowsサーチ、そしてインデックス作成が重いときの対処法 (1/2)
ASCII.jp:ChromiumでないEdgeは消えるが、IEはまだまだ無くならない (1/2)
ASCII.jp:今秋以降のWindows 10のバージョンとプレビュー版はこうなる (1/2)
ASCII.jp:Windowsキー絡みのショートカットは徐々に増えて、減って、また増えている (1/2)
ASCII.jp:2021年のWindows 10の大型アップデート「21H1」はこうなる(予定) (1/2)
ASCII.jp:まもなく登場のWindows 10のアップデート「20H2」でこう変わる (1/2)
ASCII.jp:Windowsでファイルやフォルダーに「使わない方がいい」文字 (1/2)
Makoto Kato ︎︎さんはTwitterを使っています 「嘘書いてなぁ。 "USBキーボードは、デバイスに関する情報を返すことが可能で、メーカー名やキーボード名を取得することが可能で、これを使ってレイアウトを判別することは可能なのだが" https://t.co/OqzdTpJJDy」 / Twitter
ASCII.jp:Windows 10におけるキーボードの秘密 (1/2)
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 2000のリリース時はそういう意図でDesignされていたんだけど、実際世の中で発売されるキーボードはUSレイアウトと日本語レイアウトで同じIDを返すものがほとんどだった。だから不可能だったんだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「最終的にはHotfixを作って、自動に選択されないようにした (たしか*.infに入っている情報消すようなHotfixだった記憶) 。2000年くらいのお話ですね。」 / Twitter
ASCII.jp:Windows 10で秋の大型アップデートが始まったのに、春のアップデートも落ちてこないマシンがあるのはなぜ? (1/2)
ASCII.jp:WindowsサーチのIndexerで使われるIFilterを調べる
ASCII.jp:ソフトウェア開発者以外にも便利なツールが含まれるWindows SDK/WDKをインストールする

Publickey

Excelに新機能「Custom Data Types」登場。セルをキーにしてさまざまな情報を参照。ユーザー独自の定義も可能に - Publickey
マイクロソフトにおけるアジャイル開発はこんな風に進められている - Publickey

@IT

Windows 10のエクスプローラを便利に使うTIPS 10本:Tech TIPS - @IT
面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その1):企業ユーザーに贈るWindows 10への乗り換え案内(29) - @IT
面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その2):企業ユーザーに贈るWindows 10への乗り換え案内(30) - @IT

Java

イマドキのJava徹底入門(2) Java 9以降のOpenJDKディストリビューションまとめ | マイナビニュース
JavaFX
OpenJDK
JDK Builds from Oracle
AdoptOpenJDK - Open source, prebuilt OpenJDK binaries
Java Download | Java 8, Java 11, Java 13 - Linux, Windows & macOS
Amazon Corretto(本番環境に対応したOpenJDKディストリビューション)| AWS
OpenJDK Download | Red Hat Developer
Download Liberica JDK, OpenJDK, Java 8, Java 11, Linux, Windows, macOS | BellSoft - Java Platform & Applications Experts
Home - SDKMAN! the Software Development Kit Manager
yusuke/shogun: A GUI for SDKMAN

Chocolatey

Packages

主要なソフトウェア

Chocolatey Gallery | 7-Zip 16.4.0.20170506
Chocolatey Software | Atom 1.50.0
Chocolatey Gallery | Beyond Compare 4.2.3.22587
Chocolatey Gallery | Everything 1.4.1877.20170915
Chocolatey Gallery | Git 2.15.1.2
Chocolatey Software | GitHub Desktop 2.5.3
Chocolatey Gallery | MSYS2 20161025.0.0
Chocolatey Gallery | NetWide Assembler 2.13.02
Chocolatey Gallery | Node.js LTS (Install) 8.9.4
Chocolatey Software | Python 3.8.5.20200721
Chocolatey Gallery | Tera Term 4.97
Chocolatey Software | VirtualBox 6.1.12

メディア関連

Chocolatey Software | Adobe Acrobat Reader DC 2020.012.20043
Chocolatey Gallery | Avidemux 2.7.0
Chocolatey Gallery | MediaInfo 17.12
Chocolatey Gallery | PowerISO 7.0
Chocolatey Gallery | Screen To Gif 2.10
Chocolatey Gallery | VLC media player 2.2.8

Chocolatey Gallery | Packages

配布元

主要なソフトウェア

圧縮・解凍ソフト 7-Zip
Atom

Beyond Compare

Scooter Software: Home of Beyond Compare
Beyond Compare Technical Support
WindowsでgitのdiffとmergeのツールをBeyond Compareに設定するメモ (Git, GitHub for Windows, Beyond Compare 4, difftool, mergetool) - いろいろ備忘録日記
Beyond CompareでCSVのデータを比較する - プログラマーな日々

Everything

人気の高速ファイル検索ソフト「Everything」v1.4が正式版に ~“ReFS”をサポート - 窓の杜
Downloads - voidtools

Git - Downloads
GitHub Desktop | Simple collaboration from your desktop

MSYS2

MSYS2 homepage
Package: mingw-w64-x86_64-lld - MSYS2 Packages
MSYS2
MSYS2でclang(64bit版)
WindowsでClangを使うならmsys2が便利 - Qiita
Download LLVM releases
msys2とC++で特定のDLLに依存しないwindowsバイナリを作る - siunのメモ
zig/Findllvm.cmake at master · ziglang/zig

NASM

Node.js

RobotJS

RobotJS - Node.js Desktop Automation
octalmage/robotjs: Node.js Desktop Automation.

ダウンロード | Node.js
ドキュメント | Node.js
Node.js 日本ユーザーグループ
node.js npm - Google 検索
ドッグさんはTwitterを使っています 「LTS でないバージョンの node 使ってても npm install は気にせず LTS 向けの npm を入れてるっぽい.そういうもんか…」 / Twitter

Oracle VM VirtualBox

Downloads – Oracle VM VirtualBox
ストレージ設定 | VirtualBox Mania
共有フォルダ設定 | VirtualBox Mania
共有フォルダのマウント | VirtualBox Mania
Virtual Box 共有フォルダの権限 | Ubuntu初心者の集いブログ
Chapter 3. Configuring virtual machines
DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする ~ page cache編 ~
Ubuntu 16.04のVagrantでpublic Vagrant boxにアクセスできなくなった問題 - 覚書
2018年3月1日 Oracle,Linux 4.15をサポートした「VirtualBox 5.2.8」をリリース:Linux Daily Topics|gihyo.jp … 技術評論社
Chapter 12. Troubleshooting
VirtualBox VM debugger TIPS

Python

Download Python | Python.org
Python製のマルウェアが台頭してきているという指摘 - GIGAZINE
pipでパッケージの更新をしたらアンインストールエラーが出た話|ジャンク松本|note
ドッグさんはTwitterを使っています 「pip の,1つのパッケージは依存関係内に1つのバージョンしか存在できない制限がなかなかキツい」 / Twitter

Tera Term Open Source Project

メディア関連

PDFリーダー、PDFビューア | Adobe Acrobat Reader DC
Avidemux - Downloads
MediaInfo
PowerISO - Create, Burn, Mount, Edit, Compress, Encrypt, Split, Extract ISO file, ISO/BIN converter, Virtual Drive
Releases · NickeManarin/ScreenToGif
Official download of VLC media player, the best Open Source player - VideoLAN

Chocolatey
Installation
Pricing
ChocolateyFAQs
chocolatey/choco: Chocolatey CLI
Home · chocolatey/choco Wiki
久しぶりにWindowsの環境構築をした · 電子雪原ちほー
Chocolateyの自作パッケージ入門(1) · 電子雪原ちほー
Chocolatey にパッケージを公開する #1 全体手順 - Qiita
spp5: Chocolateyでカスタムパッケージを作成する
ChocolateyとSetting Syncで開発環境をサクっと整える | フロントエンドBlog | ミツエーリンクス

MS

廃止・非推奨

Windows 10 - Features that have been removed - Windows Deployment | Microsoft Docs
Windows 10 features we’re no longer developing - Windows Deployment | Microsoft Docs
Microsoft、OEM向けWindows 10は今後32bit版を提供せず - PC Watch
「Snipping Tool」は廃止へ ~「Windows 10 RS5」でスクショの取り方はこうなる! - やじうまの杜 - 窓の杜
次期Windows 10で非推奨となる「ペイント」アプリ、“ストア”で無償提供されることに - 窓の杜
「ディスク クリーンアップ」は非推奨に ~“ストレージ センサー”への移行を - 窓の杜
「Windows To Go」は終了へ ~「May 2019 Update」で削除・置き換え予定の機能が発表 - 窓の杜
「Windows 10 Fall Creators Update」で廃止・非推奨となる機能が明らかに - 窓の杜
Microsoft、「Windows 10 October 2018 Update」で削除・開発終了となる機能を案内 - 窓の杜
「Windows 10 November 2019 Update」で開発が終了する機能、削除される機能が発表 - 窓の杜
Silverlightは時間切れ
Microsoft、「October 2020 Update」で削除・開発終了となる機能を案内 - 窓の杜

Visual Studio

窓の杜

「Visual Studio 2019」はパフォーマンスが大きく向上 ~Microsoftが詳細を解説 - 窓の杜
Microsoft、「MSVC」のSTL実装をオープンソースとしてリリース - 窓の杜
「Visual Studio 2019」にタブを縦並びにする機能 ~プレビュー版でテスト中 - 窓の杜
Microsoft、「Visual Studio 2019」v16.4を正式公開 ~「.NET Core 3.1」を同梱 - 窓の杜
Microsoft、「Visual Studio 2019」v16.5を正式リリース - 窓の杜
「Git」連携を刷新、メインメニューにも追加 ~「Visual Studio 2019」v16.6.0が正式公開 - 窓の杜
「Visual Studio 2019」v16.7が正式公開 ~「Git」関連の機能を引き続き強化 - 窓の杜
Microsoft、「Visual Studio」の「Unity」解析ツールをオープンソースに - 窓の杜
「.NET 5.0」に対応した「Visual Studio 2019」v16.8.0が正式公開 ~新しいGit機能もプレビュー卒業 - 窓の杜

Microsoft Visual Studio - Wikipedia
dotnet/cli-lab: A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain.
Releases · Microsoft/VisualStudioUninstaller
ダウンロード | IDE、Code、Team Foundation Server | Visual Studio
Microsoft C++ Build Tools - Visual Studio
Download the Windows Driver Kit (WDK) | Microsoft Docs
Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs
Visual Studio 2017 15.9 リリース ノート | Microsoft Docs
Visual Studio 2019 リリース ノート | Microsoft Docs
VsVim - Visual Studio Marketplace
EditorConfig - Visual Studio Marketplace
EditorConfig Language Service - Visual Studio Marketplace
Visual Studio で UTF-8 でC++を書いたら心が折れそうになった件 - Hikware.Tech
Visual Studioでも最新のClangが使いたい! - Qiita
Visual Studioで64bitコンパイラツールセットを使う方法。C1060への対処。 - 賢朽脳瘏
[C++]コンソール出力にchar8_t文字列を出力したい! - 地面を見下ろす少年の足蹴にされる私
Microsoft、Bridge to Kubernetesをリリース
Use Bridge to Kubernetes with Visual Studio | Microsoft Docs

Visual Studio Code

VS_Code-Extensions

Publickey

Visual Studio Code 1.35安定版リリース。リモート開発を可能にする「Remote Development」拡張機能が利用可能に - Publickey
「Docker for Visual Studio Code」が正式版に、Visual Studio Codeの拡張機能。WSL 2環境のDockerコンテナに対応 - Publickey
VS Code内でブラウザ画面プレビューとDevTools表示、そのままコード編集もできるVS Code拡張「Microsoft Edge Tools for VS Code」正式版に - Publickey

窓の杜

「Visual Studio Code」で“Markdown”テーブルを扱う際は必携「Text Tables」【レビュー】 - 窓の杜
Visual Studio Code向け「PowerShell」拡張機能がメジャー更新、「ISE」互換モードを搭載 - 窓の杜
Microsoft、「Visual Studio Code」向け「Docker」拡張機能を正式リリース - 窓の杜
C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース - 窓の杜
型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表 - 窓の杜
Microsoft、「Visual Studio Code」の新しい拡張機能「Jupyter」を発表 - 窓の杜

Qiita

VSCodeの拡張機能「GIST」が便利すぎてHackMDを使うのをやめた - Qiita
VSCodeで俺々言語モードを作る - Qiita
usm-takl/vscode-oreore-mode: a tiny sample of a programming language mode of VSCode
VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。 - Qiita
Python 3.7とVisual Studio Codeで型チェックが捗る内作Pythonアプリケーション開発環境の構築 - Qiita
なぜ我々はいまだに文字列でコメントを書いているのか - Qiita

Extensions for Visual Studio family of products | Visual Studio Marketplace
Code Outline - Visual Studio Marketplace
EditorConfig for VS Code - Visual Studio Marketplace
PrintCode - Visual Studio Marketplace
Visual Studio Codeの設定をバックアップして同期する Settings Sync - -ろぐれこーど-
Settings Sync - Visual Studio Marketplace
Sort lines - Visual Studio Marketplace
Vim - Visual Studio Marketplace
vscode-clangd - Visual Studio Marketplace
Bracket Pair Colorizer - Visual Studio Marketplace
hexdump for VSCode - Visual Studio Marketplace
Windows Terminal Utility - Visual Studio Marketplace
「Visual Studio Code」上で直接“GitHub”のプルリクエストを作成可能に - 窓の杜
ymmtさんはTwitterを使っています: 「VSCode の GitHub Pull Requests 拡張というのがあるんですが、大きな pull request のレビューに大変便利です。ブラウザと異なり、ファイルをひとつずつ差分確認できます。ファイルも全体が表示されるので差分周辺のコードも手間なく確認できます。控えめに言って神。 https://t.co/SY83r2XBK3」 / Twitter
microsoft/vscode-pull-request-github: GitHub Pull Requests for Visual Studio Code
たったの3ステップでライブリロードが可能になるVisual Studio Codeの拡張機能「Live Server」がすごい! | フロントエンドBlog | ミツエーリンクス
Visual Studio Code拡張機能「Polacode」でソースコードを手軽にキャプチャ | フロントエンドBlog | ミツエーリンクス
Visual Studio Code 入門~オススメ設定と拡張機能編~ - 雀巽の日記帳
Announcing Support for Native Editing of Jupyter Notebooks in VS Code | Python
Kohei SuenagaさんはTwitterを使っています 「Grammarly を VSCode から使うための extension が market place から消えていたのだが,どうも公式からのリクエストがあって unpublished 状態になっていたらしい. https://t.co/EbR3SD4v3V https://t.co/xsXLSrERiW から VSIX ファイルを使って入れられるそうな.」 / Twitter
Release Version 0.12.2 · znck/grammarly
Rust IDE に化ける VSCode - OPTiM TECH BLOG
Microsoft、Bridge to Kubernetesをリリース
Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
microsoft/pyright: Static type checker for Python
七誌さんはTwitterを使っています 「ionide-fsharp(VS Codeの拡張機能)でパイプラインの途中の型が表示されるようになったのに気付いた。これは便利! (コメントの形で挿入されているが、自動表示されたもので入力したコードではない) https://t.co/VSK6YZe5c1」 / Twitter

窓の杜

ARM64 Windowsに対応 ~フリーのコードエディター「Visual Studio Code」2020年5月更新 - 窓の杜
ARM64ビルドが安定版に ~フリーのコードエディター「Visual Studio Code」2020年6月更新 - 窓の杜
「Visual Studio Code」Linux ARMv7/ARM64ビルドがプレビュー ~ラズパイでも利用可能に - 窓の杜
「Visual Studio Code」が設定の同期に対応、Insider版でテスト中 - 窓の杜
「Visual Studio Code」の2020年1月更新が公開 ~リファクタリングリネームにプレビュー機能 - 窓の杜
グローバル検索を追加、列モード選択でさらに使いやすく~「Visual Studio Code」の2020年2月更新 - 窓の杜
「Visual Studio Code」の2020年3月更新、ファイルの変更履歴を表示する“タイムライン”を追加 - 窓の杜
シンタックスハイライトを最大で3倍高速化 ~「Visual Studio Code」の2020年4月更新 - 窓の杜
待望の設定同期機能が安定版に ~「Visual Studio Code」2020年7月更新 - 窓の杜
「Visual Studio Code」2020年8月更新、「Git」でのトラブルを防止する新オプションを追加 - 窓の杜
「Edge」の開発ツールを統合し「Visual Studio Code」でWebアプリの開発を完結 - 窓の杜
「Visual Studio Code」2020年10月更新、Python開発に必要な一式をセットアップする「Coding Pack for Python」も提供 - 窓の杜

Anaconda Python/R Distribution - Anaconda
Visual Studio Code – コード エディター | Microsoft Azure
Microsoft/vscode: Visual Studio Code
Visual Studio Code - Code Editing. Redefined
Documentation for Visual Studio Code
Visual Studio Live Share
Integrating Debuggers into Visual Studio Code
Visual Studio Code チートシート - Qiita
VS Code の便利なショートカットキー - Qiita
【Visual Studio Code】 日本語のメニュー画面で使う方法 - Qiita
vscodeで重複行の削除 - 誰にも見えないブログ
パイプを使って標準出力をvscodeのウインドウに表示する - 誰にも見えないブログ
ほにゃさんはTwitterを使っています 「vscode, gnuplotが見れるのか https://t.co/jT52ja9c60」 / Twitter
ドッグさんはTwitterを使っています 「VS Code 内でデータを可視化してデバッグできる VSCode Debug Visualizer 便利そう | 'Visualize Data Structures in VSCode' https://t.co/ji7DCFPJyD」 / Twitter
AddyOsmani.com - Visualize Data Structures in VSCode
「Visual Studio Code」2020年3月版の新機能、時系列でファイルへの操作履歴「タイムラインビュー」、PC間で設定の同期、Undo/Redoがファイル再開後も有効など - Publickey

PowerToys

「PowerToys」にMarkdown/SVGプレビューと画像リサイズ、検索ベースのタスク切り替えが追加 - 窓の杜
MS、Windows 10向け「キー割り当て変更ソフト」開発中。軽量なUIを約束 - Engadget 日本版
Releases · microsoft/PowerToys
PowerToys/KeyboardManager.md at feature/keyboardmanager · microsoft/PowerToys
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「むー。たぶんこれ、対応しないと今のGeckoではリマッピングに対応できないだろうな。Windows標準のショートカットキーハンドリングはVKに従うっぽいけど、Geckoは入力文字の方を見てるんだよね……」 / Twitter
ASCII.jp:Windows 10用ユーティリティ「PowerToys」がv0.16.1に 新機能をチェック (1/2)
キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」 - PC Watch
無料で使用可能なクイックランチャー機能「PowerToys Run」がMicrosoft公式のWindows 10拡張ソフト「PowerToys」に登場 - GIGAZINE
ASCII.jp:キーやショートカットキーの変更にも対応したWindows 10用ユーティリティ「PowerToys」の新バージョン (1/2)
【山田祥平のRe:config.sys】あらゆるアプリを同じ操作で - PC Watch
ASCII.jp:正式版は年内と延びるも、完成度は高まっているWindows 10向けPowerToys (1/2)
「PowerToys」を使いこなして効率UP! プレビュー版を一足先に体験 2020年 記事一覧

Terminal

Windows Terminal を入手 - Microsoft Store ja-JP
microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!
PowerShell/PowerShell: PowerShell for every system!
「Visual Studio」に「Windows Terminal」を合体 ~Microsoft、「VS Terminal」を発表 - 窓の杜
ASCII.jp:正式版が登場したWindows Terminalをカスタマイズする (1/2)
ASCII.jp:Windows Terminalのカスタマイズを研究【キーボード編】 (1/2)
ASCII.jp:プレビュー版で開発が進められているWindows Terminal (1/2)
ASCII.jp:Windows 10で標準で用意されるようになったcurlを使ってみる (1/2)
ASCII.jp:Windows 10の新コンソール、Windows Terminalが完成直前のv0.11に (1/2)
ASCII.jp:機能的にはほぼ完成されたWindows 10の新コンソール、Windows Terminal v0.9 (1/2)
ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
ファイル共有とシンボリックリンクの利用について – Ask the Network & AD Support Team
Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
Windows Terminalの使い方
プロファイル、複数のペイン、Unicode文字をサポートするWindows Terminal 1.0がリリース
ジャンプリスト対応の「Windows Terminal 1.4」が正式版に ~次期版は改良されたハイパーリンク機能を搭載 - 窓の杜

winget

microsoft/winget-cli: Windows Package Manager CLI (aka winget)
まちカドおるみんさんはTwitterを使っています 「パッケージの依存解決したり追跡・アンインストールするための機能がないしこいつは何も管理してないじゃんかという批判。ごもっとも。 >> Not a package manager · Issue #223 · microsoft/winget-cli https://t.co/Z4fyQ0jG1n」 / Twitter
Not a package manager · Issue #223 · microsoft/winget-cli
ASCII.jp:Windows 10のパッケージマネージャーであるwingetのプレビュー版を試す (1/2)
ASCII.jp:Windows用アプリのインストールがコマンドラインで可能なパッケージマネージャー「winget」はどうなった? (1/2)

ライフサイクル

Search Product and Services Lifecycle Information - Microsoft Lifecycle | Microsoft Docs
Windows 10 Home and Pro | Microsoft Docs
Windows ライフサイクルのファクト シート - Windows ヘルプ
サービスとしての Windows のクイック ガイド (Windows 10) - Windows Deployment | Microsoft Docs
Windows 10 UWP アプリのライフサイクル - UWP app developer | Microsoft Docs
ライフサイクルに関する FAQ - Windows 製品 | Microsoft Docs
モダン ライフサイクル ポリシー | Microsoft Docs
ライフサイクルに関する FAQ - モダン ポリシー | Microsoft Docs
Office と Windows のサービスとサポートの変更 - Windows Blog for JapanWindows Blog for Japan
Tech TIPS:一目で分かる、Visual Studioの各バージョンのサポート期限 - @IT

マルチブート

Tech TIPS:Windowsのbcdeditでブートメニューの項目を追加する - @IT
[Windows10]マルチブート(デュアルブート)起動時のオペレーティングシステム(OS)名称を変更する:初心者のためのHTMLとWindows(ウィンドウズ)、エクセル講座。HTML・CSSを使ったホームページ作成やWindows(ウィンドウズ)、エクセル(EXCEL)・メール(outlook)・フォトショップ(Photoshop)入門
(UEFI環境 編)Microsoft Windows10 と Ubuntu 14.04 LTS とのデュアルブート環境の構築 | えび天サーバ ( abten server )
FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
デュアル ブート PC でブート メニューを修復する - Windows 10 hardware dev

Microsoft Learn | Microsoft Docs
Microsoft サービス規約
よく寄せられる質問
Microsoft アカウント | ホーム
アカウントの一時停止
Flight Hub | Microsoft Docs
Windows 10 IP
Windows Insider Program の結果 - マイクロソフト コミュニティ
tenpoku1000
Microsoft Insiders
そのサービスを止めないで!~タッチ キーボードを無効化する正しい方法~ - Windows Blog for Japan
サービスの状態
Skype Status | Skype Support
Microsoft 365 Service health status
Azure の状態
「Windows Virtual Desktop」正式サービスとして提供開始、マイクロソフト純正のVDI環境。Azureの東西日本リージョンからも利用可能に - Publickey
[速報]マイクロソフト、RPA機能でWindowsアプリ操作を自動化する「Power Automate Desktop」パブリックプレビュー開始、日本語版も。Ignite 2020 - Publickey
Windowsのドライバー検証が強化 ~2020年10月更新以降、導入時にエラーが発生することも - 窓の杜
“セーフガードホールド”ってなに? ~Microsoftがサポートページで詳細を案内 - やじうまの杜 - 窓の杜

LibreOffice

Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
Details for crash report: dad46271-da1e-4651-9069-8fa026a75616
Reports for signature: ScDocument::HasTable(short)
Crash reporting for the LibreOffice project
LibreOfficeのバグ報告方法 - The Document Foundation Wiki
How to get a backtrace with WinDbg - The Document Foundation Wiki
How to debug - The Document Foundation Wiki
Users - Calc でコピー・アンド・ペーストを繰り返すとハングアップする問題
Users - Windows 版 LibreOffice の更新インストール時に権限の問題で処理が完了しない事象
LibreOffice 日本語チームさんはTwitterを使っています: 「最近、不具合の話が目に付くので皆様にお願いです。 LibreOfficeの不具合はBugzilla(バグ管理システム)に登録されて問題として認識されます。逆に言うと登録されない限りは誰も気がつかないので、もし不具合を見つけたらBugzillaで検索もしくはバグ報告をお願いします https://t.co/dqFnj2kBsZ」 / Twitter
LibreOffice 日本語チームさんはTwitterを使っています: 「Twitterを見ていますが中の人も拾うには限界があって、先日のMacの不具合のような大きな問題でなければ動くことはできないので、Twitterでつぶやいた後は検索と報告もよろしくお願いします🙇‍♂️」 / Twitter
LibreOffice 日本語チームさんはTwitterを使っています: 「メーリングリストなので基本的にメールでやりとりですが、Webから掲示板のように書き込めるNabbleというシステムもあります。こちらもアカウントを作る必要はありますがメーラーを使わなくていいので楽に使えると思います https://t.co/w3RzbkOUxw」 / Twitter
Document Foundation Mail Archive - Users | Mailing List Archive
Bugzilla Main Page
メーリングリスト | LibreOffice - オフィススイートのルネサンス
Mail Index - The Document Foundation Mailing List Archives
Mail Index - The Document Foundation Mailing List Archives

GitHub Desktop

Qiita

GitHub Desktopの使い方 - Qiita
Github Desktopを使った開発の流れ(入門) - Qiita

desktop/desktop: Simple collaboration from your desktop
Sample reports | GitHub Desktop
Set Up Git - User Documentation
GitHub Desktop 1.5でマージコンフリクトの解決が容易に
よくあるうっかりミスを防止する機能が2つ導入された「GitHub Desktop 2.3」 - 窓の杜
プロキシを自動検出・設定、イシューの作成にも対応した「GitHub Desktop 2.4」がリリース - 窓の杜
待望の差分の分割表示をサポートした「GitHub Desktop 2.6」 - 窓の杜

GitHub CLI

GitHubのコマンドラインツール「GitHub CLI 1.0」、正式リリース。コマンドラインからIssueやプルリクなど実行可能 - Publickey
GitHub CLIが1.0に到達、CI/CDワークフローのスクリプト作成を可能にする
GitHub CLI | Take GitHub to the command line
GitHub CLI - Google 検索
七誌さんはTwitterを使っています 「GitHub CLIで戸惑った点を報告した。 ローカルのリポジトリの中でgh repo createを実行すると、それをpushするという意図を汲んでディレクトリ名を拾ってくれる。なのに This will create 'xxx' in your current directory. Continue? と確認されるが、実際には作られない。 https://t.co/xgXZVPS9BV」 / Twitter
`gh repo create`: Despite not creating a directory, it is confirmed · Issue #2180 · cli/cli
七誌さんはTwitterを使っています 「早速返事があって、repo createに関連した問題が整理されました。ちょうど良いタイミングで報告できたようです。 なるほど、こうやって問題を整理するのですね。運用方法も含めて参考になりました。 Known problems with `repo create` command https://t.co/oxiEEudbrY」 / Twitter
Known problems with `repo create` command · Issue #2184 · cli/cli

Atom

Atom-Packages

Atom
Packages
auto-encoding
clipboard-plus
document-outline
editorconfig
ex-mode
highlight-line
japanese-menu
japan-util

linter

linter
AtomLinter
linter-textlint
linter-ui-default
intentions
busy-signal

print-atom
project-manager
show-ideographic-space
simple-drag-drop-text
sort-lines
sublime-style-column-selection
vim-mode-clipboard-plus
vim-mode-plus

窓の杜

テキストエディター「Atom」v1.10.0、パッケージマネージャーやシェル統合を強化 - 窓の杜
ベンチマーク機能を搭載、オープンソースのテキストエディター「Atom」v1.13.0 - 窓の杜
64bit版インストーラーだけじゃない! 次期「Atom」にはWindows向けの改善が多数 - 窓の杜
“ドック”をサポートした「Atom」v1.17.0、次期バージョンでは「GitHub」を統合 - 窓の杜
「Git」と“GitHub”を統合した「Atom」v1.18が正式版に ~GitHub製の無償エディター - 窓の杜
GitHub、無償コードエディター「Atom」v1.19を正式公開 - 窓の杜
GitHub、「Atom」v1.21を正式リリース。“Language Server”プロトコルをサポート - 窓の杜
フリーのコードエディター「Atom 1.22」、パフォーマンスと使い勝手をさせる - 窓の杜
GitHub、「Atom 1.28」を正式公開 ~プロジェクト内検索の結果ビューを刷新 - 窓の杜
無償コードエディター「Atom 1.29」が正式公開 ~新しい構文解析の導入が最終段階に - 窓の杜
GitHub、フリーのコードエディター「Atom 1.44」をリリース - 窓の杜
GitHub、フリーのコードエディター「Atom 1.47」を公開 - 窓の杜

OSDN

GitHubがChromiumベースのテキストエディタ「ATOM」を発表 | OSDN Magazine
米GitHub、テキストエディタ「Atom」をオープンソース化 | OSDN Magazine
米Facebook、「Atom」エディタにリモート開発機能などを追加するパッケージ「Nuclide」を発表 | OSDN Magazine
米GitHub発のテキストエディタ「Atom 1.0」リリース | OSDN Magazine
操作性にフォーカスしたテキストエディタ「Atom 1.7」が公開 | OSDN Magazine
性能と安定性を強化した「Atom 1.11」がリリース | OSDN Magazine
「Atom 1.12」が公開 | OSDN Magazine
テキストエディタ「Atom 1.13」が公開、ベンチマーク機能を導入 | OSDN Magazine
「Atom 1.15」が公開、操作性を改善 | OSDN Magazine
オープンソースのテキストエディタ「Atom 1.16」リリース | OSDN Magazine
性能を強化した「Atom 1.19」リリース | OSDN Magazine

Qiita

ATOM Editor をそろそろ始めようか - Qiita
ATOM(windows版)と拡張子の関連付け - Qiita
Atomエディタで行末の空行を自動削除する設定を無効化する - Qiita
Atom Editorでインストールしているおすすめパッケージ一覧 - Qiita
【Atom Editor】マウス操作不要!キーボードだけで矩形選択をする方法 - Qiita
GitHub for Atom の機能とできること、できないこと - Qiita
Atomの設定・パッケージを複数端末で共有したいメモ - Qiita
ATOMエディタにインストールしているパッケージ 2017 - Qiita

Account
atom/atom: The hackable text editor
atom/atom-languageclient: Language Server Protocol support for Atom
Atom (テキストエディタ) - Wikipedia
Atom のススメ
Atom をちゃんと始める。 - Corredor
Atom(GitHub製エディタ)に乗り換えて最初にやっておきたいこと | maesblog
Atomの便利なパッケージ管理方法 – GitHubやスターを利用して他の開発環境でも使えるようにしておく | maesblog
職業別!ATOMエディタの作業が超捗る便利パッケージ24選 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
確実に参考になる!Atomひと通りの使い方(Windows・Mac編) | コムテブログ
Atom で Git を利用するのに便利なプラグイン | Lonely Mobiler
atomをつかってみる - ynishimura blog
ベターVimとしてAtomを使う - Kesin's diary
ATOM vim-mode-plusのESCで、autocomplete-plusのポップアップのみ閉じる方法 | mzgkworks.com
Atomでインデント設定に困ったらEditorConfigを使用する | webic
Atomのおすすめパッケージ61個 - はてな村定点観測所

ハードウェア関連

FirmwareTablesView
Core Temp
Coreinfo
CPU-Z | Softwares | CPUID
PCI-Z detect unknown PCI devices
GPU-Z Video card GPU Information Utility
HWiNFO - Hardware Information, Analysis and Monitoring Tools
iPerf - The TCP, UDP and SCTP network bandwidth measurement tool
CrystalDiskInfo – Crystal Dew World
MemTest86 - Offical Site of the x86 Memory Testing Tool
無料&インストール不要で32GB以上でもFAT32フォーマット可能な「FAT32 Format」 - GIGAZINE
ASCII.jp:Windowsマシンの電源関係を制御する「Powercfg」コマンドを極める (1/2)|Windows Info
ASCII.jp:Windows 10で電力プラン情報を取得する
USB Device Tree Viewer
Windows 10プレビュー版、NVMe SSDの異常を検知/通知する機能 - PC Watch

メディア関連

その他のサービス

asciinema - Google 検索
Jamboard - Google 検索
Hidetoshi MatsuiさんはTwitterを使っています 「「バーチャル空間上で互いに近い人ほど音声がよく聞こえて、遠くの人は聞こえないようなオンライン会議ツールがあったら便利なのになぁ」と思ってたら、既にありました https://t.co/QeZCObjKOX 今日参加したワークショップのポスターセッションでこれを使ってて、面白かったです。」 / Twitter
SpatialChat
Zoom、複数画面を共有可能に。スマホの仮想背景対応機も拡大 - PC Watch

Microsoft Store

iTunes を入手 - Microsoft Store ja-JP
iCloud を入手 - Microsoft Store ja-JP
HEIF 画像拡張機能 を入手 - Microsoft Store ja-JP
HEIC Image Converter を購入 - Microsoft Store ja-JP
HEVC ビデオ拡張機能 を購入 - Microsoft Store ja-JP
Raw Image Extension を入手 - Microsoft Store ja-JP
AV1 Video Extension を入手 - Microsoft Store ja-JP
高圧縮「AV1」のハードウェアデコード、Windows 10でサポート開始 - PC Watch
Microsoft、ARM環境で「OpenCL」「OpenGL」アプリを動作させる互換機能パックを公開 - 窓の杜

NDI・OBS

yohさんはTwitterを使っています 「イベント配信にはTeamsのNDI機能を使いOBSで配信すればもっと楽になる。 | 技術的な何か。 https://t.co/GyqwW2D0no ほえー NDI って NewTek NDI codec/protocol のアレか」 / Twitter
イベント配信にはTeamsのNDI機能を使いOBSで配信すればもっと楽になる。 | 技術的な何か。
yohさんはTwitterを使っています 「All-Intra構造 1080i60@<100Mbps/2160p30@<250Mbps/2160p60@<350Mbps なので公衆網通す代物でもない気がしてたんだけど ゴリ押しだな」 / Twitter
ロべルト@FFmpeg本出ましたさんはTwitterを使っています 「@yohhoy ffmpegにはライセンス違反で外されてlgplのNDIがリクエストされてます。https://t.co/7dZfzkfZVq https://t.co/u2duB83F3S」 / Twitter
#8811 (Add libndi (NDI codec)) – FFmpeg
Request: Add libNDI reverse-engineered library released under the LGPL by Jean-Baptiste Kempf · Issue #1792 · m-ab-s/media-autobuild_suite
OBS Studioに仮想カメラ出力やAIベースの音声ノイズ削減機能が追加 - PC Watch
Microsoft TeamsがNDIに対応。配信利用の柔軟性が向上 - PC Watch

SlideShareで公開されているスライドをpdfでダウンロードするコマンド - A painter and a black cat
Ubuntu18.04にImageMagickをインストールするには | Ninton
17 Free Audio Converter Software Pieces [2019] Check now >
TuneBrowser – TuneBrowser は Windows 用の音楽管理・再生ソフトです.
Miro Video Converter FREE - Convert any video to MP4, WebM (vp8), iPhone, Android, iPod, iPad, and more.
新しい RealPlayer(RealTimes)無料 Windows
Amazon.co.jp: Kindle for PC (Windows) [ダウンロード]: ソフトウェア
Releases · apprenticeharper/DeDRM_tools
ダウンロード | らくちんプリント2.0
Rufus - 起動可能なUSBドライブを簡単に作成できます
SQLite Home Page
FINAL FANTASY XV WINDOWS EDITION Benchmark | SQUARE ENIX
ファイナルファンタジーXIV: 紅蓮のリベレーター ベンチマーク
Fork - a fast and friendly git client for Mac and Windows
calibre - E-book management
Draw Freely | Inkscape
PureText
XMedia Recode - Download
無料キャプチャソフト「Webrecorder」はブラウザで閲覧した内容を「そっくりそのまま」キャプチャ可能 - GIGAZINE
無料で簡単なネットワーク図をドラッグ&ドロップで書ける「Network Notepad」レビュー - GIGAZINE
スマホでPDFを読みやすく自動で調整できる機能「Liquid Mode」をAdobeが発表 - GIGAZINE
【いま、ここにあるエッジAI】ギザギザ画像とはおさらば。AIが高解像度化するTopaz Labsの「Gigapixel AI」 - PC Watch
ものすごい種類の文書ファイルを他形式に変換できる「Pandoc」レビュー、MarkdownからLaTex、EPUBにまで対応 - GIGAZINE
Inkscapeで描いたパーツをブラウザ上で合成する | κeenのHappy Hacκing Blog
ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー - GIGAZINE
YouTubeから動画をダウンロード可能なオープンソースツール「youtube-dl」はどのように開発が始まったのか? - GIGAZINE
無料でビデオ会議・カレンダー・メッセージ・強力な権限管理機能を備えた「Apache OpenMeetings」レビュー - GIGAZINE
Twitter・Pixiv・ニコニコ静画などの画像を全部まとめて一気にダウンロードできる「gallery-dl」 - GIGAZINE

Git

Free Git GUI Client - Windows, Mac, Linux | GitKraken
SmartGit – Git Client for Windows, macOS, Linux
Fork - a fast and friendly git client for Mac and Windows
The most powerful Git client for Mac and Windows | Tower Git Client
Sourcetree - 無料の Git & Mercurial クライアント | Atlassian
TortoiseGit – Windows Shell Interface to Git
イシュートラッカーを統合した「GitKraken 7.0」が公開 ~「Jira」「GitKraken Boards」に対応 - 窓の杜
posh-git - Google 検索

Wget

wgetが超絶便利なwebクローラー、クローリングツールだとは知らなかった・・・! - ばうあーろぐ
Wget - GNU Project - Free Software Foundation

Wireshark

無料&オープンソースで大規模なネットワークを常時グラフィカルに監視できる「Moloch」 - GIGAZINE
Wireshark · Go Deep.
status:open | code.wireshark Code Review
wireshark/wireshark: Read-only mirror of Wireshark's Git repository. GitHub won't let us disable pull requests. ☞ THEY WILL BE IGNORED HERE ☜ Please upload them at https://code.wireshark.org/review/ .
CloudShark - The easiest way to analyze and share network capture files. | CloudShark
CaptureSetup/USB - The Wireshark Wiki
GolangでUDPサーバー&クライアントを作成してWiresharkで検証する - Yabu.log
Golangで書かれたWebサーバーでHTTP/1.1のkeep-aliveを検証する - Yabu.log
Golangで作成したWEBサーバーのTCP通信(HTTP GET)をWiresharkで検証 - Yabu.log
Wiresharkでlocalhost(127.0.0.1)宛のパケット送受信をキャプチャする方法 - Yabu.log
USBPcap
WiresharkのUSBPcapのログの見方 - Qiita
WiresharkでUSBメモリのパケットキャプチャしてみた! | LoT ラブオンテック
msaitohさんはTwitterを使っています 「てゆーか、新しいのゲットしたら MII ID1, ID2 を繋げてbitreverse したものを IEEE OUI.txt から検索するよね。最近は Wireshark OUI Lookup Tool もあるけど https://t.co/ZIMUOyt0YK」 / Twitter
Wireshark · OUI Lookup Tool

Linux

その他

ifconfigコマンドとipコマンドの違いと比較 – エラーの向こうへ
linux debugfs - Google 検索
won't fix: AWSのarm64インスタンスでarmhfなバイナリを動かす
Darling | macOS translation layer for Linux
1Password for Linux beta is now open 🎊 🐧 🎊 | 1Password
X.Org Serverは見捨てられたソフトウェアなのか | スラド オープンソース
Linuxで発表動画を撮る | κeenのHappy Hacκing Blog
無料なのにAndroidでパッケージマネージャーからSSH・Apache・X11などをインストールできる高機能ターミナル「Termux」レビュー - GIGAZINE
AppArmor - Ubuntu Wiki
Security - AppArmor | Server documentation | Ubuntu
Yubikey覚書 | teqblog
第644回 ノート表示にも対応したプレゼンテーションツールPympress:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
超入門USDT - ローファイ日記
Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ
「CentOS 8」が2021年末で終了、以後の開発はCentOS Streamに注力する方針が明らかに - GIGAZINE

MS

MicrosoftのLinux向け無料プロセス監視ツール「ProcMon」レビュー、システムコールごとの実行時間などを確認可能 - GIGAZINE
Windows 10の「電卓アプリ」がLinuxに移植されて登場 | マイナビニュース
マイクロソフト、Linux用のマルウェア対策ソフト「Microsoft Defender ATP for Linux」正式版リリース - Publickey
マイクロソフト、「Microsoft Edge for Linux」プレビュー版をついにリリース。なぜマイクロソフトがLinux版を開発しているのか? - Publickey
2020年10月23日 「Microsoft Edge for Linux」プレビュー版の提供が開始:Linux Daily Topics|gihyo.jp … 技術評論社

WSL

Ubuntu を入手 - Microsoft Store ja-JP
Ubuntu 20.04 LTS を入手 - Microsoft Store ja-JP
ASCII.jp:20H1の完成とともにWindows Subsystem for Linux 2が来る (1/2)
MicrosoftがBuild 2020でWSL2のGUIアプリ動作やパッケージマネージャー「winget」などを発表 - GIGAZINE
WSL2によるホストのメモリ枯渇を防ぐための暫定対処 - Qiita
すずかさんはTwitterを使っています 「\\wsl$ でWSLのfsに入れることを知っているだけで効率が100倍くらい変わる https://t.co/4Ar76maM3R」 / Twitter
ASCII.jp:Windows 10のWSL2からGPUが使えるようになった (1/2)
ASCII.jp:WSL2にCUDA on WSLをインストールする (1/2)
WSLでWindows側とLinux側のパイプの使い分けについて - Qiita
ASCII.jp:WSL2で外部ストレージをマウントできるようになった (1/2)
Windows 10のファイルエクスプローラがWSL機能を統合。Linuxを示すペンギンアイコンが登場 - Publickey
高梨陣平さんはTwitterを使っています 「あまり話題になっていないですが、WSL1と異なりWSL2はNW通信がWindows Firewallを経由しません。 WSL2はHyper-V上でWindowsと同格のゲストOSです。WSL2上でfirewallの設定が必要なので注意しましょう。」 / Twitter
FadisさんはTwitterを使っています 「WSL2でGUIなアプリケーションを動かす為に、Microsoftが独自のWaylandコンポジタを実装している、という話。このコンポジタはWestonをベースに、ルートレスでリモートのウィンドウを表示するRDP-RAILを喋れるように拡張したものらしい https://t.co/MWNdc2GCWF」 / Twitter
Microsoft Is Writing Its Own Wayland Compositor As Part Of WSL2 GUI Efforts - Phoronix
Canonical、「Ubuntu 20.10」の提供を開始 - 窓の杜
“wsl --install”で「WSL」を一発セットアップ ~Dev版「Windows 10」Build 20246 - 窓の杜
WindowsとLinuxの融合をさらに進めたマウントオプション - 阿久津良和のWindows Weekly Report | マイナビニュース

トラブルシューティング

徳永広夢さんはTwitterを使っています 「なんか、linuxのトラブルシューティングがまとまってるサイトとかないすか?ss ps iostat dstat ぐらいを一通り新卒が学べるようなのないかなぁ」 / Twitter
oranieさんはTwitterを使っています 「@tokuhirom linux perfというととりあえずここのイメージですがもっと具体的なトラブルがまとまってる感じですかね? https://t.co/GN1P7D64h4」 / Twitter
Linux Performance
徳永広夢さんはTwitterを使っています 「@oranie お、なるほど。ありがとうございます。もっと、アプリケーションエンジニアがなんとなく使う、ぐらいのレベル感を想定してました」 / Twitter
oranieさんはTwitterを使っています 「@tokuhirom あーそうなるとちょっとスコープ外れてますね。すみません。」 / Twitter
徳永広夢さんはTwitterを使っています 「@oranie いえ、これも参考になりました。ありがとうございます!!」 / Twitter
ニーモニックさんはTwitterを使っています 「@tokuhirom @hnakamur2 ちょっと情報が古いですがコマンドの概要把握だと https://t.co/HfNBb1AgIZ) とかはいいかなと、 そこから派生してる https://t.co/K2Hv8PoaLt こちらのスライドだとssコマンドなんかも載ってるのでありかなのかなと、ただこちらは英語で私きちんと読みきれてないので認識に齟齬があったらすいません」 / Twitter
6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
Netflix at Velocity 2015: Linux Performance Tools | by Netflix Technology Blog | Netflix TechBlog

シェル

2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」:Linux Daily Topics|gihyo.jp … 技術評論社
satさんはTwitterを使っています 「shell(bashなどの特定のshellだけかも)で"$_"が「直前に実行したコマンドの最終引数」と言うことを知っていたかどうか。たとえば以下のようにすると一行目で作ったディレクトリに移動できる ``` $ mkdir -p path/to/dir $ cd $_ ```」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi meta-.で直前の行の最後の引数が入力できるというのは。」 / Twitter
グロブ - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「bash でワイルドカード引数でコマンド実行すると、マッチしない場合は bash がエラーメッセージを出してコマンドは実行されないという挙動という認識だった。 最近気づいたのは、展開できないとワイルドカードをそのままコマンドに渡す、みたいな挙動になっているのね…危ない例とか無いのかしらん?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「すごいわかる。実行したコマンドの history は覚えてるんだし、結果も覚えておいてくれたらいいやん。どうせテキストだし、メモリ富豪な現代においては、常に覚えておいてほしい」 / Twitter
_ko1さんはTwitterを使っています 「shell よく知らないんですが、nantoka shell で、スクリーンに出てきた stderr/out の出力を、コマンド実行後に得る、みたいな方法ってありますかね。裏で勝手に stdout/err をいい感じにファイルとかメモリにのっけておく、でもいいんだけど。数千行、毎回 terminal からコピペしてるのがつらい。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「こういう用途には Emacs のシェルモードがおススメ! (CTRL-c CTRL-s で直前に実行したコマンドの出力だけをファイルへ書き出せます)」 / Twitter
ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@shinji_kono axiom は古代ギリシャ語 at-幹名詞 ἀξίωμα axioma が、フランス語の axiome を経由して語尾が取れてしまった形なので、ラテン語やギリシャ語の o-幹名詞(例 datum, criterion)とは違いますね。 もし axioma のまま入ってきていたら、 lemma のように axioma, axiomata みたいになっていたはずです」 / Twitter
わたなべごうさんはTwitterを使っています 「tee とかで自前で記録とるのではなく、shell 側の機能としてほしいやつですね。Jupyter Notebook で bash カーネルがたぶんやりたいことに近いと思われる。参考記事 https://t.co/RFBvh5JwZ9  今だとnushell カーネルとかをためしてもいいかも」 / Twitter
シェル芸人のためのJupyter環境 - A painter and a black cat
SODA NoriyukiさんはTwitterを使っています 「Emacsのシェルモードでコマンドの出力を切り出す場合だと TAB や 制御文字の多くがそのまま保存されてるってのも地味に嬉しい。 xtermからのコピペだとダメ(TABはスペースに展開、制御文字は消える)だし、tmux show-buffer でもダメっぽい。 ただシェルモードでもESCシーケンスはダメ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@BsdHacker 直前のコマンドの出力だけを手軽に切り出したいってことなので、scriptだと切り出すのが不便じゃないかと。 ・macOS iTerm2 + shell integration: https://t.co/QfGzCbR4eB ・zsh preexec: https://t.co/pKjj3GWbiu ・Jupiter Notebook: https://t.co/5upu4eTh2o ・emacsシェルモード あたりですかね」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「これ、知人と話してたら https://t.co/8h0hxJIYhw を作ってくれたけど自分でやりたくなって https://t.co/Ytm1P64Ixw を作って使ってる。 screen が動いてる前提の作りで、 less /tmp/tanlog/make/P とかで前に使った make の出力が残ってる https://t.co/5tEBimWAJI」 / Twitter
omakoto/zenlog
test/tanlog.rb at master · shinh/test
shinichiro hamajiさんはTwitterを使っています 「端末レベルで記録すると ssh とかも残るから便利なんだよなあ。このへんは UNIX 哲学とか忘れて、端末+shell+screen は単一のアプリにした方が便利だしやれること増えるんじゃないかな、と思ってる。 ref: https://t.co/uTVKnmy9xj」 / Twitter
はじめてのにき(2020-06-30)
Miura HidekiさんはTwitterを使っています 「teeでリダイレクトするとかそのままリダイレクトするとかあるけど、逆にこういうことしたい時はファイルが巨大になり過ぎるきらいがあるから、何らかのリミッタが欲しい所」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「bash乃バージョン間の差異で悩まされた経験があるのであまり同意できない…」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最近、bashが最強のプログラミング環境であると思い始めている。圧倒的なポータビリティとスケーリングを実現できる。」 / Twitter

apt

第327回 aptコマンドを使ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
aptコマンドチートシート - Qiita
Ubuntu 16.04 / Debian 8: aptコマンドの使い方 - Narrow Escape
「apt-get」はもう古い?新しい「apt」コマンドを使ったUbuntuのパッケージ管理 | Linux Fan
WSLのUbuntu環境で「apt」コマンドを使ってパッケージを更新/管理する:Tech TIPS - @IT
KeN's GNU/Linux Diary(2018-07-28)

systemd

FadisさんはTwitterを使っています 「systemdを使っているのなら、特定の時刻に実行する処理はcrontabに書くよりsystemdのtimerの方が便利かもしれない。無論cronを使い続ける事もできるが、systemdのtimerはserviceを起動するのでserviceの設定でcgroupsによるリソースの制限やselinuxのコンテキストを切り替えての実行が簡単に記述できる」 / Twitter
らりお・ザ・何らかの🈗然㊌㋞㋰㋷㋓ (Mastodon に引っ越しました)さんはTwitterを使っています 「あと systemd timer は user session でも実行できるのがいいです。 たとえば私は壁紙を5分ごとにランダムに切り替えるスクリプトを systemd の timer で走らせている (ログイン中のみ実行される)」 / Twitter
Yutaro HayakawaさんはTwitterを使っています: 「systemdってなんでこっちがchrootにいることが分かるんだろう?chrootの中からsystemdのコマンド叩こうとするとchrootの中からは実行できないよ的なことを言われる。」 / Twitter
Kento KAWAKAMIさんはTwitterを使っています: 「@YutaroHayakawa https://t.co/LIyxFnbYTx」 / Twitter
systemd/virt.c at 64ef83139cf84a700b95e8150a458b0bb9f720de · systemd/systemd
Yutaro HayakawaさんはTwitterを使っています: 「@Kawakami_Kento おおお、なるほど呼び出し側のプロセスから見たルートディレクトリのinode番号とsystemdから見たルートディレクトリのinode番号を見て、違ったらchrootの中ってことか!」 / Twitter
Yutaro HayakawaさんはTwitterを使っています: 「@Kawakami_Kento 他にもありとあらゆる仮想環境の中である事を検知できるコードが沢山入ってる。これは面白い。vmの中にいることとか分かるようになってる。」 / Twitter
Kento KAWAKAMIさんはTwitterを使っています: 「@YutaroHayakawa 言われてみるとchroot的に当たり前な気がするけど,さっとこういうコードが書けると括弧良さげ」 / Twitter
FadisさんはTwitterを使っています 「systemd、「このサービスはネットワークに接続できてから起動しないといけないけど、こっちのサービスは先に片付けていいよ」を書くのが簡単すぎてもう/etc/rc*.dの下に数字のついたシンボリックリンクを置いていた時代には戻れない」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「BSD 系には sysvinit のこういう問題が存在しないのが systemd みたいなものをあまり必要としていない理由の一つではある」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「20 年くらい前の NetBSD で rc 周りを見直した時に、既に sysvinit のイケてなさは周知されていたので、ああいう仕組みは導入しなかった。代わりに、rc スクリプトを半順序でソートする簡単なユーティリティコマンド 1 個追加するだけで解決した。実に UNIX 的だし省エネ。」 / Twitter

SELinux

SELinux を使おう.使ってくれ. - Qiita
Shinji KonoさんはTwitterを使っています 「なにが便利かさっぱりわからないが、sshのポート変更の手間がかからないなら、SELinux使ってやらないこともない。しかし、それが3分でできないならSELinuxは邪魔してるだけと言いふらす。 https://t.co/bGHykgZxzZ」 / Twitter
Shinji KonoさんはTwitterを使っています 「SELinuxは鍵二個かけると安全とか玄関ホールに鍵で安全とかと同程度の発想なんだよな。結局、普段のアクセスパスを使われれば無力。万一侵入された時というが、既に一つ壁が突破されてるのに同じ壁で対抗するのか?」 / Twitter
FadisさんはTwitterを使っています 「ちなみにxattrを保存できないファイルシステム上でSELinuxしたい場合、fuse_xattrsを使ってxattrを通常のファイルに保存する、という方法が知られている https://t.co/8aTa4b1DKG」 / Twitter
fbarriga/fuse_xattrs: add xattrs support using sidecar files.
FadisさんはTwitterを使っています 「従来Linuxディストリは困った時の為にSELinuxをdisabledにする手段を提供していたけど、これはいつまでもSELinuxをdisabledにすることを要求するサードパーティパッケージを生んだから、SELinuxをdisableできないようにしよう、という提案がFedoraでなされているらしい https://t.co/Zz0OBEDP87」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@fadis_ (twitterしかよまない人の為補足) SELinuxを有効にして起動したあと実行中にdisableできる機能をやめようという提案で、grubで optionにselinux=0をつければdisableできます。実行中のdisableはupstreamでもdeprecated扱いでFedoraではじまった話ではないです。」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@fadis_ 自分でFedoraの提案を確認したい方はこちら: https://t.co/5bC4DZnUaQ」 / Twitter
Changes/Remove Support For SELinux Runtime Disable - Fedora Project Wiki
FadisさんはTwitterを使っています 「SELinux入門者: SELinuxが何で蹴ってるのかわからなくてつらい SELinux中級者: SELinuxが蹴る理由はauditログを見ればわかる! SELinux上級者: SELinuxが蹴ってるのにauditログが出ない事があってつらい という段階があるらしい」 / Twitter
FadisさんはTwitterを使っています 「「必要なSELinuxのポリシーがインストールされない不具合がある」に書き換えるPR待ったなし」 / Twitter
石川@驚きの白々しささんはTwitterを使っています 「SELinux有効にすると不具合が出る。と設計書に書かれているのを見た石川氏激怒。」 / Twitter

GIGAZINE

UNIX/Linuxの「デーモン」はこうやって作る - GIGAZINE
無料でウェブデザインの背景と文字の色を微調整しながら確認できるアプリ「Kontrast」 - GIGAZINE
Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か? - GIGAZINE

技術評論社

第633回 字幕ファイルを作成し,動画に焼き込む:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第636回 LXD MosaicでLXDをウェブブラウザーから操作する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第638回 Ubuntuに「普通に」ログインするいろいろな方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第639回 Ubuntuに「トラブル時に」ログインするいろいろな方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2020年10月29日 Fedora 33がリリース ―GNOME 3.38,デフォルトBtrfs,IoTエディションなど:Linux Daily Topics|gihyo.jp … 技術評論社
第640回 gioコマンドを使ってコマンドラインからリモートのファイルを制御する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第645回 より大きな容量のSSDにデータ移行する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

Qiita

grub にWindows10起動メニューを追加する(Boot-Repairを利用する) - Qiita
Dockerのマルチステージビルドを使う - Qiita
ぽんこつさんはTwitterを使っています 「Dockerfileは羃等かとおもいきや内部で最新版のダウンロードが走っていて羃等じゃなかった回」 / Twitter
【Linux】インフラエンジニアの僕が「hostname」コマンドを使わない理由とは? - Qiita
Taku KudoさんはTwitterを使っています 「マジレスすると v0.1.94 から manylinux2014 になっていて、pip >= 19.3 が必須です。pipが古いとソースパッケージにフォールバックされローカルでビルドされます。 https://t.co/wgPoBTRvPC」 / Twitter
ubuntu にsentencepiece をインストールするときつまづいた - Qiita

Twitter

Shinji KonoさんはTwitterを使っています 「Linux、straceから、あほのautraceになったので、system call 特に open の引数が見れないので使い物にならない。作ったやつ馬鹿なんじゃないの? それともお得意の   security reason?」 / Twitter
Shinji KonoさんはTwitterを使っています 「straceはdnfで入るのか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ここ一ヶ月waylandを使ってるけど、まぁNVIDIAのプロプラドライバだと変なバグがまだあるね (マウスカーソルが変なところに描画されたり)。どっちのせいか分からないけど」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「そもそもDebianだとgdm3がudevルール追加するから、そのudevルール削除しないとNVIDIAのプロプラドライバ使えないが」 / Twitter
Mine02C4さんはTwitterを使っています 「Ubuntu 20.04 Serverを設定してたら、SSH公開鍵をGitHubから取り込めるオプションが存在して、あまりの便利さに感動してしまった。これでいちいちパスワードログインののちに鍵登録、パスワード認証停止の手順を踏まなくてよい https://t.co/Ys2x00HWJ1」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「今どきのLinuxはハードリンクの作成がオーナーであるかrw権限を持っている場合などに制限できるようになってるのね。知らなかった。 調べてみると、2012年の Linux 3.6 で導入されてたのね。 https://t.co/ll0vR01e5p」 / Twitter
Linux_3.6 - Linux Kernel Newbies
Atsushi EnoさんはTwitterを使っています 「Linuxデスクトップでもwineを使ってWindows用のVSTをシームレスに使うLinVstみたいな仕組みがあって、自分はほとんど試していないのでどれくらい実用的なのかわからんけど(Serumのinstallerにwine上で弾かれてやる気なくなった…)、「使える」ものは多いらしい。 https://t.co/tVf5jVp2Gx」 / Twitter
Sangeppato/wine-vst: A list of tested VST under Linux, Wine and LinVst
ドッグさんはTwitterを使っています 「iPhone や Android で動かす前提の Linux ディストロなんてあるのか.Alpine Linux ベースでタッチパネルに最適化してるらしい.まだ開発中だけど買い替えた要らない端末に入れてみるのは楽しそう | 'postmarketOS // real Linux distribution for phones' https://t.co/UcviwKtcAX」 / Twitter
postmarketOS // real Linux distribution for phones

Download Ubuntu Desktop | Download | Ubuntu
LinuxおよびUbuntu環境でDell BIOSをアップデートする | Dell 日本
デルPCにUbuntu Linuxをインストールする方法 | Dell US
Arch Linux 32
タグ一覧i386 |gihyo.jp … 技術評論社
SKS OpenPGP Public Key Server
GnuPG チートシート(簡易版) - Qiita
gpg (GNU Privacy Guard)の使い方 - Qiita

FreeDOS

FreeDOS | The FreeDOS Project
FreeDOS/Vページ
RawWrite for Windows: FDをイメージ化したりイメージをFDに戻すツール - ぼくんちのTV 別館
chrysocome.net - RawWrite for Windows
OpenGEM - Opendawn
shanecoughlan/OpenGEM: OpenGEM is a non-multitasking 16-bit graphical user interface (GUI) for DOS. It is an extended distribution of FreeGEM that includes features of the original Digital Research GEM. Learn more here: http://www.opendawn.com/opengem/
ibiblio FreeDOS Package -- OpenGEM desktop (Utilities)
FreeDOS 1.2 がリリースされたので FreeDOS/V 化してみた: Aiming Off のブログ
FreeDOS 1.2正式版がリリース - 新しいインストーラーやコマンドが追加
DosUSB - providing USB support for DOS
http://bretjohnson.us/forum • View topic - FreeDOS and USB Flash Drives
Karellen's Unix Blog: Basic networking with FreeDOS
Antique Software
FreeDOS 1.3 Release Candidate Available For Retaining MS-DOS Compatibility In 2019 - Phoronix
FreeDOSの仮想マシンを構築してTCP/IPスタック・8086開発環境を整備する - Qiita
日記 (2014 年 3 月下旬)
DOSBox, an x86 emulator with DOS
File Cabinet - JamesOnline - Electrical Controls
open-watcom-v2/usage.sp at master · open-watcom/open-watcom-v2
DJGPP
MS-DOS Player for Win32-x64 謎WIPページ
microsoft/MS-DOS: The original sources of MS-DOS 1.25 and 2.0, for reference purposes
Graphics Environment Manager - Wikipedia
GEM (desktop environment) - Wikipedia
MS-DOSに続いてGW-Basicがオープンソースに
microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983

iOS

バックアップ機能が有効になった Microsoft Authenticator
IdM実験室: Microsoft Authenticatorアプリが設定のバックアップ・リカバリをサポート、しかし・・・
無料でiPhoneやiPad上でコマンドやプログラムを実行できるターミナルアプリ「a-shell」 - GIGAZINE
iOS用のmosh/ssh環境作成 - 覚書
‎「Blink Shell: Mosh & SSH Client」をApp Storeで
SSH jump host - Gentoo Wiki
GitHub for mobile
Windows10でiPhone・iPadとiTunesが連携しない|Tascal PCサポート情報
iPhoneからSuicaが消滅した朝の横浜物語 - 非天マザー by B-CHAN
トワイライト - Le☆S☆Caさんのツイート: "iOSのSafariは更新マーク長押しでPCレイアウトに出来る、っていうの人に教わるまでずっと知らなかった https://t.co/LsEfkYZZav"
Windowsにおいて、iTunesをインストールせずiPhoneイーサネットドライバのみをインストールする方法(USBテザリング可能に) – Luna Blanca
iPhoneで有線LAN接続はできる?
iPhone/iPadを有線LAN(Ethernet)で接続しよう | 毛流麦花
Android端末からMacへのUSBテザリングを可能にするHoRNDIS | Lifehacking.jp
iOS実機のSSL通信をプロキシによって傍受したり改ざんする方法 - Qiita
【知ってた?】iPhoneが勝手に「弱Wi-Fi」を拾わないようにする方法(iOS 11新機能) | できるネット
自宅のMacやiPadが使われたら、ただちにiPhoneに通知させる方法 | マイナビニュース
論文、どうやって読んでますか?|umbell|note
「GitHub」モバイルアプリがベータ版を卒業、一般提供が開始 - 窓の杜
コードの行折り返しを解除可能 ~コードレビュー向けの改善を施したモバイル版「GitHub」アプリ - 窓の杜

Chrome

Chrome

chromium/src - Git at Google
For Developers - The Chromium Projects
Issue Tracking - The Chromium Projects
Chrome クリーンアップ ツール
Site Engagement
Chrome URLs
Chromeの閲覧履歴を取得する。 - mirandora.commirandora.com
Google Developers Japan: 複数バージョンの Chrome を共存させる
原健太朗のページ : Chromium
(99+)blink-dev - Google グループ
(99+)platform-architecture-dev - Google グループ
(99+)Chromium-dev - Google グループ
Chrome Releases
64.0.3282.100 - chromium/src - Git at Google
LUCI
Chromium のソースコードの歩き方
32ビット版Linux向けChrome、提供中止へ | マイナビニュース
Steam、2018年末にWindows XP/Vistaのサポートを終了―新チャットシステム対応予定はなし | GameBusiness.jp
グーグル、32ビット版「Chrome」を64ビット版に自動更新--一部ユーザー対象 - ZDNet Japan
Chromium Blog: Chrome Lite Pages - For a faster, leaner loading experience
「遊び心すき」「非常に助かってます」 オフライン時遊べるGoogle Chromeの隠しミニゲームって知ってる? - ねとらぼ

拡張

Create Link - Chrome ウェブストア
Google 翻訳 - Chrome ウェブストア
PDF Viewer - Chrome ウェブストア
Tracking Token Stripper - Chrome ウェブストア
Wayback Machine - Chrome ウェブストア
テキストエンコーディング - Chrome ウェブストア
ドキュネオさんはTwitterを使っています 「tenntennさんに収録のテクニック教えてもらいました 🙏 * 録画中に喋りをミスった場合、そのまま喋り直して、編集でカット * QuickTimeで録画して.movで保存 * Picture-in-Picture Extensionを使えばセルフィ埋め込みが可能 * カメラ横に人形を置いてそれに話かける * カメラ横にカンペを表示」 / Twitter
Picture-in-Picture Extension (by Google) - Chrome ウェブストア
Vimium - Chrome ウェブストア
ふりがな付与機能・サテライトオフィス - Chrome ウェブストア

Twitter

nhirokiさんのツイート: "Chromium の WebKit ディレクトリがついに blink ディレクトリにリネームされそう。ついでにファイルやその他の命名規約も Chromium に揃えられる https://t.co/9tQ9frjyH5"
PSA: Move source code in //third_party/WebKit to //third_party/blink on April 7 - Google グループ
なかのん&マジックさんのツイート: "WindowsのChromeって、スクリーンリーダーに対応してないの?"
yasuyuki@RustとJulia推しさんはTwitterを使っています 「あー、Google、Microsoftがギリギリですり抜けた独占禁止法から逃れた経験が全く活かされて無かったってことか。Googleの中にも元Microsoftの人が居ただろうに。」 / Twitter
高梨陣平さんはTwitterを使っています 「本日の目玉記事 :-) 米政府はGoogleの分割対象としてChromeブラウザ開発事業の売却を求める。同時に広告事業の一部も売却させる模様。最終決定ではないと匿名ソース。米司法省はGoogleへの訴訟を分割して用意。内、AndroidにおけるGoogle検索の強要も対象に。競合によるChromeへの不満はGoogleが」 / Twitter
Hacker NewsさんはTwitterを使っています 「Feds may target Google's Chrome browser for breakup: https://t.co/yUjF0ClHMO Comments: https://t.co/XoE6DHD7VV」 / Twitter
高梨陣平さんはTwitterを使っています 「1月に3rd パーティクッキーの廃止を宣言した時に増大した。Google自身の資産ではこれによりパブリッシャーの広告売上は最大で62%減少するという。今週公開された下院司法委員会の独占禁止法報告書ではChromeの巨大な市場シェアがGoogleによる業界の標準仕様確立を可能にしているという。競合はGoogleが」 / Twitter
高梨陣平さんはTwitterを使っています 「3rdのクッキーを廃止することで、Googleだけが同社のエコシステムで収集した情報を利用可能だと見ている。Googleはtracking cookie代替の開発には他社の意向を聞いていると主張。しかし他社はブラウザ内部でオークションが実行されるGの新方式はブラウザとGooogle自体に監査が無ければ信用できないと」 / Twitter
高梨陣平さんはTwitterを使っています 「主張している。Googleの広告技術の支配は2007年のDoubleClick買収にまで遡る。共和党のWilliam Kovacicは当時GoogleによるDoubleClick買収に賛成したが、現在の事情を知っていれば反対しただろうとしている。Google広告に対しては買収の巻き戻しか、またはバイ/セルサイドのいずれかの売却も考慮」 / Twitter

Chrome Release Channels - The Chromium Projects
サイト分離を有効にしてセキュリティを高める - Google Chrome ヘルプ
chrome://flags/#enable-site-per-process
chrome://flags/#PasswordExport
chrome://flags/#PasswordImport

Web

GDPR

CCPA

2020年から施行される個人情報保護法「CCPA」はGDPRよりも企業に厳しい内容である - GIGAZINE

日本企業も大きな影響を受ける「GDPR」--まずは「対象か」の確認を - ZDNet Japan
GDPRの施行によりUnroll.meとPinterestのInstapaperはヨーロッパで利用不可に
Do Not Track and the GDPR | W3C Blog
GDPR:その目的と企業の責任 – カスペルスキー公式ブログ
GDPRとは – カスペルスキー公式ブログ
結局何をすべき?GDPR対応3つの優先事項と解消すべき6つの疑問
知らないとマズい - 最大約 26 億円の制裁金や個人情報利用停止措置を伴う「GDPR」施行まであと一週間 | トレンドマイクロ セキュリティブログ
GDPR 施行直後の対応に伴うリスクや、便乗したサイバー犯罪の可能性とは? | トレンドマイクロ セキュリティブログ
一般データ保護規則(GDPR:General Data Protection Regulation) - フォーティネット
GDPR対策関連ホワイトペーパー集 | 日本オラクル | Oracle JP
Rockridgeさんのツイート: "EUのGDPRやePrivacy Regulationに合わせて、Do Not Track(DNT)の仕様や実装もアップデートされていくようだ。 / “Do Not Track and the GDPR | W3C Blog” https://t.co/ajgFvTzRvF"
GDPR変更でユーザトラッキングへの影響が際立つ
SaaSがGDPRに準拠するには、オンプレミスが望ましいのか?
ブラウザ新興企業Brave、グーグルなどによるGDPR違反を申し立て - CNET Japan
Kazuya Gokitaさんのツイート: "GDPR、いろんなサイトで「当サイトでは利便性向上のためにcookieを…」みたいなダイアログが開いて、こんなの事実上同意せざるを得ないので、ただただインターネットが不便になっただけだな"
Nerry さんのツイート: "なんちゃらなんちゃら法のせいで最近やたらとクッキーを受け入れますかって画面に表示されるサイト増えたけど、これって拒否選んでも選んだことがクッキーに保存されないから永遠に聞いてくるってこと?"

Microsoft Edge issue tracker - Microsoft Edge Development
Discussions - Microsoft Tech Community
Makoto Kato ︎︎さんのツイート: "UA sniffingも含めて、Firefox (Edgeでも!) で動かないというサイトがあれば、https://t.co/Kw9PJXX0TT にバグを登録すればいいだけなので。日本にも担当者いるし、サイトを調べてFirefox側にバグを登録するなり、サイト側を直すように交渉してくれるから"
Web Compatibility | webcompat.com
Makoto Kato ︎︎さんのツイート: "自分たちが動作しないと言ってることは、必ずしもおのおののブラウザのバグでない可能性があるし、報告してくれなきゃなんともならんのですよ。Spec issueという話もあるし、動くと思った動作が実際にはSpecとは異なることもある"
won't fix: WebCompat
Makoto Kato ︎︎さんのツイート: "WebCompat、Cyber Agentのサイトはほとんどノーレスで困ってたけど、これからは直パスで言えるので、レポートしてもノーレスってのはなくなるなるかな"
won't fix: Chat Channels of Web Engine
ライフサイクルに関する FAQ - Internet Explorer および Microsoft Edge | Microsoft Docs
Makoto Kato ︎︎さんはTwitterを使っています 「2012年ならブラウザが認識している文字コードを変更するメニューは必要だったと思うが (だから交渉した)、2020年のモバイルで必要という理由が見つからないというか、逆に必要な例がほしい (自動選択をミスるデータがほしい)」 / Twitter
白鷹(しろたか)🦊🐪🦏📷🇯🇵🇻🇳🇺🇸さんはTwitterを使っています 「@makoto_kato もしかして文字化したサイトがあったら bug 報告したほうがいい感じですか?」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「@hikaru__m Yes! 自動判別はRustで書かれたコードになってるので、Bugzilla (not github) へコンポーネントをCore:Internationalizationにてバグを登録してもらえると助かります」 / Twitter
Puppeteer - Google 検索
音声を文字起こししてくれる「Amazon Transcribe」、言語の種類を自動識別する新機能。人間によるタグ付けが不要に - Publickey
ロシアでは「安全なインターネット通信が違法」になる可能性、AWSやCloudflareも対象か - GIGAZINE
Web版のWordに文字起こしと口述筆記機能 - PC Watch
Microsoft Office | 無料 Web 版の Word、Excel、PowerPoint
ウェブサイトのさまざまなスマホやタブレットでの表示を一度にまとめて確認可能なサービス「Sizzy」を使ってみた - GIGAZINE
Microsoft Forms | アンケート、投票、クイズ
Denoはプロダクションで利用可能
MicrosoftがInternet Explorerで非互換のサイトをEdgeで強制的に開く仕様を追加、リダイレクトを無効化する設定方法はコレ - GIGAZINE
「Microsoft Edge」に待望の“垂直タブ”機能 ~Dev/Canaryチャネルでプレビュー中 - 窓の杜
FadisさんはTwitterを使っています 「SMSによる二要素認証は特定の電話番号の「所有」を確認しているわけで、そいつがSIMカードを100枚持っていても紛失しなければ二要素認証自体がダメになるわけじゃない。問題はSMSによる確認でアカウントと人間が1対1になると勝手に期待される事の方なんだ。それは何も保証していないし別の仕組みがいる」 / Twitter
FadisさんはTwitterを使っています 「それはそれとして、SMSによる二要素認証はショルダーハックに弱い(特にSMSの内容がスマートフォンのロック画面にそのまま出るような場合)ので、もっとマシな「所有」を確認できるデバイスがあるならそっち使ったほうが良い」 / Twitter
無料でターミナルからグラフィカルにウェブサイトを表示できるテキストベースブラウザ「Browsh」 - GIGAZINE
無料でブラウザからどんな情報が収集されているか確認できる「Cover Your Tracks」を使ってみた - GIGAZINE
無料の証明書発行を「Let’s Encryptだけに頼るのは問題」との指摘、どんな代替サービスがあるのか? - GIGAZINE
Free SSL Certificates and SSL Tools - ZeroSSL
Buypass AS - Simplifies online identification and payment

Qiita

Windowsメモ帳の「右端で折り返す」で入る謎の改行コード - Qiita
自称IT企業があまりにITを使わずに嫌になって野に下った俺が紹介するWindowsの自動化の方法 - Qiita
超簡単にSlackで匿名の意見を投稿できるようにする - Qiita

Twitter

Masaru Iritaniさんのツイート: "PrintScreen キーで切り取り & スケッチ アプリを呼び出すように設定できることを #BugBash のクエストで知りました。Alt キーを押すと消えてしまうもの(個人的な具体例としてはタッチ キーボード)のスクリーンショットを撮るのにとても便利です。 #WindowsInsiders https://t.co/4BrwRNDZec"
太田 卓也 \ TAKUYA OHTAさんはTwitterを使っています 「とうとう来ました、Microsoft Endpoint DLP! 端的に言うと、OS で以下のようなアクティビティを監視・ブロックできます。 ・クラウドへのアップロート ・クリップボードにコピー ・USB にコピー ・ネットワーク共有にコピー ・許可されてないアプリでアクセス ・印刷 https://t.co/mGzRlqSSvM」 / Twitter
Announcing public preview of Microsoft Endpoint Data Loss Prevention - Microsoft Tech Community - 1534085
k0kubunさんはTwitterを使っています 「https://t.co/HeD12qpow5 でダウンロードできるPDFの欄外に該当アーキテクチャにおけるformulaが書いてあるっぽいことを突き止めたが、まあしかし一度分かってしまうと、普通に自力で集計するのめんどくさいし、IntelのCPU使ってる間はvtune使えばいいか…という感じではある」 / Twitter
k0kubunさんはTwitterを使っています 「vtuneのMicroarchitecture Explorationに出てくる各メトリクスがどのイベントからどう計算されてるのかというのを知りたいのだが、とりあえず出力ディレクトリのperfcmdというのを見ると使われてるイベント名のセットは調べられそうなことがわかった」 / Twitter
Intel® VTune™ Profiler | Intel® Software
尾崎隆大さんはTwitterを使っています 「@Changwitoh2786 % Prolog 'インタプリタを起動できるかの意味だとPower Shell 上で c:\> "Program Files"\swipl\bin\swipl.exe で起動できます。この時引数として -f ファイル名 で初期起動ファイルが指定でき、この中に述語定義してから :- 使いたい述語, halt. のように書いて置けば、バッチ処理もできます。'.」 / Twitter
入谷 優さんはTwitterを使っています 「これらに加えて、Windows 10 October 2018 Update より前の WIN + V が何のショートカットだったか分かればかなりの上級者です。」 / Twitter
WindowsさんはTwitterを使っています 「Time to test your knowledge! Tell us what these Keyboard Shortcuts are in the comments below. 1. WIN + V 2. WIN + D 3. WIN + H 4. WIN + Tab」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PrintScreen or Alt + PrintScreen 迄しか知らなかった。 Win + PrintScreen だとファイル保存まで自動と。」 / Twitter
佐々木⋈和守さんはTwitterを使っています 「@shirouzu ctrl win shiftで領域指定までできます。たしか」 / Twitter
kkamegawaさんはTwitterを使っています 「@kazumori102 @shirouzu Shift + Windows + Sですね(1809くらいから。1903で任意のウィンドウが選択可能に)。これのいいところはクリップボードまでなので、Twitter/Facebook/Teamsとかにそのままぺたっといけるところです。OneDrive使ってるとそのまま保存されちゃうのが困るときは助かる。」 / Twitter
aikeさんはTwitterを使っています 「最近のMATLABやばいな。Webのヘルプページを見ると「この例を開く」ってボタンがあってクリックするとJupyter NotebookというかGoogle Colabみたいな編集可能なWeb IDEが開いてそのまま実行・改変・デバッグできちゃう。製品買ってない人も勉強だけならすごいできちゃう。 https://t.co/sgr2KYJl1K」 / Twitter

Keybase
Microsoft アカウントへのサインイン
プライバシー
Skype | 友達や家族への無料通話
ViVi web site
オンラインスキャン for Home Network - トレンドマイクロ
Google アナリティクス オプトアウト アドオンのダウンロード ページ
Windows10 設定変更ツール

Sony Japan | FeliCa | 個人のお客様 | ダウンロード
Sony Japan | FeliCa | 個人のお客様 | ダウンロード | SFCard Viewer 2
HL-L2360DN | 日本 | ブラザーサポート
日本 | ブラザーサポート | ブラザー製品調査・サポートプログラムのダウンロードとインストール
Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
Download the Windows Driver Kit (WDK) | Microsoft Docs
VsVim - Visual Studio Marketplace
Ubuntu 20.04 LTS を入手 - Microsoft Store ja-JP
Windows 10 のダウンロード
Windows 10 仮想マシンをダウンロードする - Windows アプリ開発
Download New Microsoft Edge Browser | Microsoft
Microsoft Edge Insider Channels をダウンロード
Chrome Release Channels - The Chromium Projects

GitHub

tenpoku1000 (市川 真一)
後藤弘茂のWeekly海外ニュース 2020年 記事一覧 - PC Watch
最新のJIS情報 (METI/経済産業省)
Ando's Microprocessor Information
【連載】コンピュータアーキテクチャの話 | マイナビニュース
Windows Weekly Reportのニュースまとめ 1ページ | マイナビニュース

その他

infoQ

GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より
GitHubコードスキャンはベータ版終了
GitHubは、CodespacesとDiscussions、およびその他のセキュリティ機能を導入
Visual Studio CodespacesはGithub Codespacesに

Publickey

「GitHub Container Registry」パブリックベータとしてサービス開始。無料でコンテナのパブリックイメージ公開可能 - Publickey
CNCF、Kubernetes用ソフトウェアパッケージなどの公開リポジトリ「CNCF Hub」を公開 - Publickey
CircleCIがAWSやGoogle Cloud、Kubernetesなどへ自動デプロイするための共有パッケージ「Orb」を公開。クラウドへの自動デプロイが容易に - Publickey
GitHub、コードの脆弱性などを発見してくれる「GitHub Code Scanning」正式版が提供開始。パブリックリポジトリには無料 - Publickey
GitHub、電子掲示板でコミュニティ機能を実現する「GitHub Discussions」パブリックベータを開始。GitHub Universe 2020 - Publickey
GitHub、自動でマージが実行される「Pull request auto-merge」機能を発表。GitHub Universe 2020 - Publickey

窓の杜

GitHub、中核機能をすべて無償化 ~チーム開発も無料で始められるように - 窓の杜
Microsoft、「Visual Studio Codespaces」を「GitHub Codespaces」に統合 - 窓の杜
GitHub、“Open Source Guides”の日本語訳を公開 ~OSSコミュニティのベストプラクティスを集約 - 窓の杜

GIGAZINE

GitHubのソースコードがGitHub上にリークされる、公開した人物は「GitHubのCEO」を偽装 - GIGAZINE
オープンソースプロジェクトのセキュリティを1発で自動評価してくれる「Security Scorecards」が登場 - GIGAZINE

Twitter

κeenさんはTwitterを使っています 「パッチベースの分散バージョン管理システムのPijulが1.0に向けた展望を示してる(まだ読んでない) Towards 1.0 https://t.co/SkAsUabx6Z」 / Twitter
Pijul
👻 道化師 🃏さんはTwitterを使っています 「GitHub Desktop のイヤなバグを見つけてしまったなぁ。 GitHub 上で作りたてのリポジトリを GitHub Desktop でクローンすると、他の環境でコミット&プッシュした内容をプルできなくなる。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「あ、ブランチを切り替えようとする操作で問題を回避できた!」 / Twitter

プログラミング言語処理系が好きな人の集まり
osdev-jp
Trending C repositories on GitHub today
GitHub.com Help Documentation
Arctic Code Vaultが実施段階へ突入 - GitHubブログ
Navigating code on GitHub - GitHub Docs
Introducing GitHub Container Registry - The GitHub Blog
C | namari - Popularity of programming Language
The State of the Octoverse | The State of the Octoverse celebrates a year of building across teams, time zones, and millions of merged pull requests.
Unified fj NetNews archive
ancientfj Japanese USENET archive : Free Download, Borrow, and Streaming : Internet Archive
Anu, the sound distributed version control system
セマンティック バージョニング 2.0.0 | Semantic Versioning
Semantic Versioningの闇 - knqyf263's blog
Standing up for developers: youtube-dl is back - The GitHub Blog
GitHub「Personal access tokens」の設定方法 - Qiita
GitHubのClone数をAPIで取得する - Qiita
Pijul - The Mathematically Sound Version Control System Written in Rust
井山梃子歴史館さんはTwitterを使っています 「cherry-pickがidentityを保つの,達成されてほしい性質なんだよな」 / Twitter

検索

tenpoku1000 github - Google 検索
自作OS 資料 - Google 検索
自作OS gui - Google 検索
自作OS コンパイラ - Google 検索
自作OS UTF-32 - Google 検索
OS開発予定 - Google 検索
自作OS ドキュメント - Google 検索
自作OS レガシー規格 - Google 検索
自作OS 仮定義 - Google 検索
自作OS NMI - Google 検索
x64 uefi os自作 - Google 検索
freetype uefi - Google 検索
ovmf qemu ビルド - Google 検索
コンパイラ WebAssembly JIT 自作 - Google 検索
コンパイラ WebAssembly 自作 - Google 検索

Gist

2017

2 年以上かけて自作 OS 開発のための資料を集めた話

資料

ワナビとは (ワナビとは) [単語記事] - ニコニコ大百科
日本規格協会 JSA Group Webdesk
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様 | 日本規格協会 JSA Group Webdesk
JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0607:1996 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造 | 日本規格協会 JSA Group Webdesk
JIS X 0607:1996/CORRIGENDUM 1:2001 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 0610:2006 DVD-再生専用ディスクのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0610:2006/AMENDMENT 1:2017 DVD-再生専用ディスクのボリューム構造及びファイル構造(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
JIS X 0613:2015 ユニバーサルディスクフォーマット(UDF)2.50 | 日本規格協会 JSA Group Webdesk
JIS X 0614:2015 ユニバーサルディスクフォーマット(UDF)2.60 | 日本規格協会 JSA Group Webdesk
JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
JIS X 4156:2005 ハイパテキストマーク付け言語(HTML) | 日本規格協会 JSA Group Webdesk
JIS X 4168:2004 段階スタイルシート 水準1(CSS1) | 日本規格協会 JSA Group Webdesk
JIS X 3005-1:2014 データベース言語SQL 第1部:枠組(SQL/Framework) | 日本規格協会 JSA Group Webdesk
JIS X 3005-2:2015 データベース言語SQL 第2部:基本機能(SQL/Foundation) | 日本規格協会 JSA Group Webdesk
JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類

自作 OS で USB デバイスに対応するための調査メモ

自作 OS で USB デバイスに対応するための調査メモ

BSUSRC06 USBシリアル変換ケーブル : USBケーブル | バッファロー
USB-LAN100R|PLANEX
USB-LAN1000R|PLANEX
USB-LAN2500R
ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
LAN-TXU2C - ロジテック株式会社
HL-L2360DN | レーザープリンター・複合機 | ブラザー
MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
BonjourPrinting
Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
Raspberry Piでイーサネットコンバータを作る
Raspberry Piで無線LAN
iPhone 6 Plus - 技術仕様
BluetoothテクノロジWebサイト
Launch Studio - Listing Search
PIC
HIDP ‐ 通信用語の基礎知識
A2DP ‐ 通信用語の基礎知識
PAN (Bluetooth) ‐ 通信用語の基礎知識
BNEP ‐ 通信用語の基礎知識
L2CAP ‐ 通信用語の基礎知識
HOGP ‐ 通信用語の基礎知識
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Diego Giagio :: Personal Website - iPhoneEthernetDriver
iPhone/iPadを有線LAN(Ethernet)で接続しよう
if_ipheth(4)
[MS-WINPROTLP]: Archive Documents | Microsoft Docs
LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。
URoad-Stick│超速モバイルネット WifiサービスはUQ WiMAX
stick_linux_info_v1.0.pdf
Huawei WiMAX 2+モデムをLinuxで使う

自作派の人のためのコンパイラ関連規格のメモ

自作派の人のためのコンパイラ関連規格のメモ

Unicode

[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk

C

www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
C++でCプリプロセッサを作ったり速くしたりしたお話
ISO/IEC 9899:201x - n1570.pdf
ISO/IEC 9899:2017 - c17_updated_proposed_fdis.pdf
Clarification Request Summary for C11

LSP

language server protocolについて (前編) - Qiita
Specification

アセンブリ/WebAssembly

Linux のアセンブラー: GAS と NASM を比較する
WebAssembly Specifications
WebAssembly High-Level Goals - WebAssembly

ABI

x64 software conventions | Microsoft Docs
System V Application Binary Interface - DRAFT
gabi41.pdf
mpx-linux64-abi.pdf

PE/ELF/UEFI

PE Format - Win32 apps | Microsoft Docs
The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
Linux Foundation Referenced Specifications
Microsoft UEFI CA の署名ポリシーが更新されました | Microsoft Docs
mjg59 | Secure Boot bootloader for distributions available now
SecureBootとLinux
openSUSE:UEFI - openSUSE Wiki
HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

テスト・log

第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社
TAP
LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
Labeled Tab-separated Values (LTSV)

Debug

デバッグ情報の歩き方 - Qiita
DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Download DWARF Standards
LLVM Project Blog: LLDB is Coming to Windows
本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
The PDB File Format — LLVM 9 documentation
microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
CodeView.pdf
x64 exception handling | Microsoft Docs

セキュリティ

MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
Software Design 2015年5月号|技術評論社
SEH_Overwrite.pdf
EMETReport.pdf
/GS (Buffer Security Check) | Microsoft Docs
スライド 1 - bh-japan-08-Ishiyama.pdf
MR201412_Control_Flow_Guard_JPN.pdf

ECMAScript

ECMA-262 Edition 5.1を読む - 秀和システム あなたの学びをサポート
ECMAScript® 2018 Language Specification
asm.js: 仕様と実装の今 - Qiita
asm.js
Rockridgeさんのツイート: "Firefox、Edge、Chromeの各開発ツールが利用するリモートデバッグ用のプロトコルを統合する動きがあるという。 / “Implementing a Chrome DevTools Protocol server in …” https://t.co/BuXEkgpQRS"
ソースマップを使用する - 開発ツール | MDN
Safx: JavaScriptのSource Mapの内部表現について
Wayback Machine
HAR ファイルの生成と Web リクエストの分析 - アトラシアン製品ドキュメント
HTTP Archive (HAR) format
HAR 1.2 Spec | Software is hard
JavaScript ASTを始める最初の一歩 | Web Scratch
estree/estree: The ESTree Spec
tc39/proposal-binary-ast: Binary AST proposal for ECMAScript
Il y a du thé renversé au bord de la table !
binast/binjs-ref: Reference implementation for the JavaScript Binary AST format
[2015-02] 最近のJavaScript AST標準化の動き | Web Scratch
getify/concrete-syntax-tree: Defining a standard JavaScript CST (concrete syntax tree) to complement ASTs

Web IDL

ESウェブブラウザ通信 - ESウェブブラウザでのWeb IDLの利用 | Shiki’s weblog
Web IDL (第 2 版 — 日本語訳)
Web IDL

自作 OS の GUI 開発のためのメモ

GUI

書籍

朝倉書店| グラフィクスの仕組み
朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
マイナビ ブックス - 目次
フルスクラッチによるグラフィックスプログラミング入門 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社

GUI ライブラリ

Immediate-Mode-UI/Nuklear: A single-header ANSI C immediate mode cross-platform GUI library
SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
lc-soft/LCUI: A small C library for building user interfaces with C, XML and CSS.
xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
lvgl/lvgl: Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).

Desktop Entry Specification

Desktop Entry Specification
本の虫: Desktop Entry Specification

EditorConfig

EditorConfig
EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com

文字コード

Downloading ICU - ICU - International Components for Unicode
International Components for Unicode - Wikipedia
google/compact_enc_det: compact_enc_det - Compact Encoding Detection

フォント

Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
googlefonts/noto-fonts: Noto fonts, except for CJK and emoji
The FreeType Project

レイアウトエンジン

fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
fribidi/fribidi: GNU FriBidi
GNU FriBidi - Wikipedia
HarfBuzz – Y.A.M.A.P
HarfBuzz - Wikipedia
HarfBuzz - Wikipedia
Page not found · GitHub Pages

文書・PDF

JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
PDF.js
mozilla/pdf.js: PDF Reader in JavaScript
PDF.jsを設置する - Qiita
Google Chrome PDFエンジンがオープンソース化
pdfium Git repositories - Git at Google
Issues - pdfium
Full PDF SDK Developer Guides | Desktop, Mobile & Web
にっき♪: PDFium

画像

Independent JPEG Group
libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
libjpeg-turbo-2.0.5
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
The libexif C EXIF library
libexif-0.6.22
libpng Home Page
libpng-1.6.37
GIFLIB download | SourceForge.net
giflib-5.2.1
memononen/nanosvg: Simple stupid SVG parser
SVG 1.1 仕様 (第2版) 日本語訳
JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
memononen/nanovg: Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
NanoVG を CPU で描画する - Qiita
NanoVG のソースコードを読んでみた - lriki’s blog
Favicon - Wikipedia
Favicon - Wikipedia
ICO (ファイルフォーマット) - Wikipedia
ICO (file format) - Wikipedia
https://twitter.com/rockridge07/status/868125619963314176
https://twitter.com/rockridge07/status/905787835357077504

音声

WAV - Wikipedia
WAV - Wikipedia
Resource Interchange File Format - Wikipedia
Resource Interchange File Format - Wikipedia
Wave File Specifications
WAVファイルフォーマットの読み込み – NecoTech
wav ファイルフォーマット
Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
Vorbis - Wikipedia
Vorbis - Wikipedia
Ogg - Wikipedia
Ogg - Wikipedia
Xiph.org: Downloads
git.xiph.org
libvorbis-1.3.7
git.xiph.org
libogg-1.3.4
The WebM Project | Developer Overview
Opus (音声圧縮) - Wikipedia
Opus (audio format) - Wikipedia
Development – Opus Codec
Opus-1.3.1
git.xiph.org
libogg-1.3.4
The WebM Project | Developer Overview
FLAC - Wikipedia
FLAC - Wikipedia
FLAC - download
xiph/flac: Free Lossless Audio Codec
FLAC-1.3.3
2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

動画

https://twitter.com/vyv03354/status/701022560759066624
https://twitter.com/vyv03354/status/702818242482405377
OpenH264
Theora - Wikipedia
Theora - Wikipedia
Theora.org :: downloads - Theora, video for everyone
git.xiph.org
libtheora-1.1.1
VP8 - Wikipedia
VP8 - Wikipedia
VP9 - Wikipedia
VP9 - Wikipedia
WebM - Wikipedia
WebM - Wikipedia
The WebM Project | Developer Overview
webmproject/libvpx: Mirror only. Please do not send pull requests.
libvpx-1.9.0
AV1 - Wikipedia
AV1 - Wikipedia
AV1 specification を読む 2018-03-26 .. 04-17 - Qiita
AOM-AV1-Video-Tech-meet-up.pdf
aomedia Git repositories - Git at Google
The WebM Project | Developer Overview

UTF-32 でも固定長で処理出来るわけではない

UTF-32

[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
符号点 - Wikipedia
Unicode Terminology: English - Japanese
結合文字 - Wikipedia
異体字セレクタ - Wikipedia

表に出て来ない凄い人は、実在性の確認が困難である

2018

x64 の 64 ビットモードのエンコーディング概略

x64

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals

インテル関連ドキュメント・リンク集

インテル

書籍

Amazon.co.jp: 新装改訂版 Linuxのブートプロセスをみる (アスキー書籍) eBook: 白崎 博生: Kindleストア
自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
30日でできる! OS自作入門 | マイナビブックス
コンピュータの構成と設計 第5版 上|日経BPブックナビ【公式サイト】
コンピュータの構成と設計 第5版 下|日経BPブックナビ【公式サイト】
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(John L. Hennessy David A. Patterson 吉瀬 謙二 佐藤 寿倫 中條 拓伯 中條 拓伯 天野 英晴 天野 英晴 鈴木 貢)|翔泳社の本
プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
USB 3.0 ホストドライバ自作入門 - Hello uchan world - BOOTH
USB 3.0設計のすべて
USB 3.2のすべて
USB Type-Cのすべて
販売終了
USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
O'Reilly Japan - Bluetooth Low Energyをはじめよう
Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
シリアルATAの基礎とFPGAへの実装
[絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
CUTT System:64ビットアセンブラ入門
CUTT System:AVX命令入門
低レベルプログラミング(Igor Zhirkov 吉川 邦夫 吉川 邦夫)|翔泳社の本
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ウォーレン, ジュニア, ヘンリー・S., Warren, Jr., Henry S., 徹, 滝沢, 貢, 鈴木, 英夫, 赤池, 毅, 葛, 順久, 藤波 |本 | 通販 | Amazon
Linkers & Loaders | コンピュータ・一般書,UNIX,UNIX | Ohmsha
リンカ・ローダ実践開発テクニック
【Code Reading Tシャツ付き】Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
【Code Reading Tシャツ付き】Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
O'Reilly Japan - リバースエンジニアリング
O'Reilly Japan - Hacking:美しき策謀 第2版
O'Reilly Japan - Binary Hacks
たのしいバイナリの歩き方:書籍案内|技術評論社
デバッガによるx86プログラム解析入門【x64対応版】 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました

SDM

https://twitter.com/InstLatX64
instlatx64
Intel® 64 and IA-32 Architectures Software Developer Manuals
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol3_i.pdf

データシート・エラッタ・拡張命令

Intel® Core™ Processors Technical Resources
Intel® Xeon® Processors Technical Resources
6th Generation Intel® Processor Family Specification Update - 332689-025_6th Generation Intel Processor Family Spec Update.pdf
Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf

チップセット

Intel Chipset Products
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
Intel® 100 Series and Intel® C230 Series Chipset Family Platform Controller Hub (PCH) Datasheet - Volume 2 of 2 - 100-series-chipset-datasheet-vol-2.pdf
Intel® 100 and C230 Series Chipset Family PCH Specification Update
Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-1.pdf
Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-2.pdf
Intel® 200 and Z370 Series Chipset Families Platform Controller Hub (PCH) Spec Update - 200-series-chipset-pch-spec-update.pdf
Intel® 300 Series and Intel® C240 Series Chipset Family Platform Controller Hub (PCH) - 300-series-chipset-pch-datasheet-vol-1.pdf
Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub

GPU

Hardware Specification - PRMs | 01.org
Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
Intel® Processor Graphics
インテル® プロセッサー・グラフィックス | iSUS

UEFI・ACPI・I/O 等

Specifications and Tools | Unified Extensible Firmware Interface Forum
Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
ACPICA Documentation | The ACPI Component Architecture Project
IA-PC HPET (High Precision Event Timers) Specification 1.0a - software-developers-hpet-spec-1-0a.pdf
eXtensible Host Controller Interface for Universal Serial Bus (xHCI) - extensible-host-controler-interface-usb-xhci.pdf
USB Type-C Connector System Software Interface Specification
Specifications – NVM Express
AHCI Specification
Specifications | Bluetooth® Technology Website

その他

技術資料 | iSUS
x64 アセンブリーの概要 | iSUS
x64 の 64 ビットモードのエンコーディング概略
投機的実行サイドチャネルハードウェア脆弱性

レガシー規格 SATA を振り返る

SATA

後半

忘却の彼方: SATA LPMって知ってますか?
忘却の彼方: SATA LPMの設定方法
忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
忘却の彼方: DEVSLP(Device Sleep)機能とは
【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
Samsung HM020GI 1. Specification Summary
Support policy for 4K sector hard drives - Windows Server | Microsoft Docs
アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行 | Seagate 日本
HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブ(4Kn)の違い - ぼくんちのTV 別館
HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
Toshiba MK6034GSX - hard drive - 60 GB - SATA-150 Series Specs & Prices - CNET
Toshiba MK3276GSX - hard drive - 320 GB - SATA-300 Series Specs & Prices - CNET
MQ04 シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
Toshiba MG04ACA500A - hard drive - 5 TB - SATA 6Gb/s Specs - CNET
MG04ACA シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
HDD が AV コマンド対応か調べたい: ひでのブログ
Seagate Mobile ST1000LM035 - hard drive - 1 TB - SATA 6Gb/s Specs & Prices - CNET
Seagate Laptop Thin SSHD ST500LM000 - hybrid hard drive - 500 GB - SATA 6Gb/s Specs - CNET
玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 | サンワサプライ株式会社
Amazon.co.jp: オウルテック 5.25インチベイ内蔵専用HDDケース 2.5インチ&3.5インチHDD各1台簡単増設 SATA接続 Windows8.1対応 ガチャポンパッダイレクト ブラック OWL-IE5CB: パソコン・周辺機器
ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中
4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)
CFastって何?
コンパクトフラッシュ協会がCFexpress* 1.0仕様を発表 | Business Wire
最大転送速度2GB/sを実現する次世代カード規格「CFexpress 1.0」発表 ~将来的に8GB/sを目論む - PC Watch

Storage Reviews - CNET
Purchase SATA Specification | SATA-IO
シリアルATAの基礎とFPGAへの実装
[絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
AHCI Specification
AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
Microsoft Word - dg_sataahciip_refdesign_jp.doc - dg_sataahciip_refdesign_jp.pdf
Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc - dg_sata_achi_ip_data_sheet_jp.pdf
Reconf 201506
CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
忘却の彼方: Linuxを使用したSecureEraseの手順
忘却の彼方: Crucial M500/M550/MX100とSecure Erase
一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
ALL about Linux: SecureErase を実施してみた
ALL about Linux: SecureErase のために frozen 状態を解除する方法
ALL about Linux: 中古 SSD の SecureErase
ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)
ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)
【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
AT Attachment 8 - ATA/ATAPI Command Set - D1699r4a-ATA8-ACS.pdf
AT Attachment 8 - ATA/ATAPI Command Set - d2015r2-ATAATAPI_Command_set_-_2_ACS-2.pdf
内蔵SSD | 2.5" SSD | SATA-III 6Gb/s SSD220S - トランセンド|メモリ製品のスペシャリスト
AT Attachment 8 - ATA/ATAPI Command Set - d2161r5-ATAATAPI_Command_Set_-_3.pdf
CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
di529r14-ATAATAPI_Command_Set_-_4.pdf
Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Specs & Prices - CNET
INCITS: INCITS 558-202x - Information technology - ATA Command Set - 5 (ACS-5)

C のグローバル変数の仮定義とは

C

JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
仮定義
C言語のグローバル変数とexternについて - Gobble up pudding

NMI に割り込まれたい

NMI

bochs.sourceforge.net/techspec/PORTS.LST
Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
Low Pin Count - Wikipedia
Wayback Machine
[絶版2016.10.4] 改訂新版 PCIバス&PCI-Xバスの徹底研究
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
カーネル ダンプまたは完全なクラッシュ ダンプを生成する - Windows Client Management | Microsoft Docs
ASRock Rack
Amazon | KONDOLEN ブレッドボード?ジャンパーワイヤ(メス-オス)(20cm)40本 1 個 | KONDOLEN | PCパーツ 通販
Amazon | アイネックス 実験用スイッチ・LEDセット KM-01 | AINEX | インターフェースカード 通販

32 ビット整数式の x64 JIT コンパイラを試作する

2019

x64 の電力管理についてのメモ

2020

Intel

ALL

Guidance for System Administrators to Mitigate Transient Execution Side Channel Issues
Loading Microcode from the OS
Security Best Practices for Side Channel Resistance
Guidelines for Mitigating Timing Side Channels Against Cryptographic Implementations
How to Assess the Risk of Your Application
CPUID Enumeration and Architectural MSRs
Indirect Branch Restricted Speculation
Single Thread Indirect Branch Predictors
Indirect Branch Predictor Barrier
Spectre mitigations in MSVC | C++ Team Blog
Analyzing Potential Bounds Check Bypass Vulnerabilities
Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
Retpoline: A Branch Target Injection Mitigation
KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
Kernel page-table isolation - Wikipedia
Meltdown (security vulnerability) - Wikipedia
Rogue System Register Read
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
Speculative Store Bypass
L1 Terminal Fault | 01.org API
Foreshadow - Wikipedia
Microarchitectural Data Sampling
Microarchitectural Data Sampling - Wikipedia
Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort
Speculative Behavior of SWAPGS and Segment Registers
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
More Information on Spoiler
Spoiler (security vulnerability) - Wikipedia
INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
Processors Affected: L1D Eviction Sampling
L1D Eviction Sampling
CacheOut
Processors Affected: Vector Register Sampling
Vector Register Sampling
LVI: Hijacking Transient Execution with Load Value Injection
An Optimized Mitigation Approach for Load Value Injection
Load Value Injection
Processors Affected: Load Value Injection
Snoop-assisted L1 Data Sampling
Snoop-assisted L1 Data Sampling
Processors Affected: Snoop-assisted L1 Data Sampling
Special Register Buffer Data Sampling
SRBDS Mitigation Impact on Intel® Secure Key
Processors Affected: Special Register Buffer Data Sampling
PLATYPUS: With Great Power comes Great Leakage
Running Average Power Limit Energy Reporting
INTEL-SA-00389

Guidance for System Administrators to Mitigate Transient Execution Side Channel Issues

Secure Coding

Loading Microcode from the OS
Security Best Practices for Side Channel Resistance
Guidelines for Mitigating Timing Side Channels Against Cryptographic Implementations
How to Assess the Risk of Your Application

CPUID/MSR

CPUID Enumeration and Architectural MSRs
Indirect Branch Restricted Speculation
Single Thread Indirect Branch Predictors
Indirect Branch Predictor Barrier

(1) CVE-2017-5753 Variant 1 Bounds Check Bypass

Analyzing Potential Bounds Check Bypass Vulnerabilities
Spectre mitigations in MSVC | C++ Team Blog

(2) CVE-2017-5715 Variant 2 Branch Target Injection

Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
Retpoline: A Branch Target Injection Mitigation

(3) CVE-2017-5754 Variant 3 Meltdown:Rogue Data Cache Load

Meltdown (security vulnerability) - Wikipedia
Kernel page-table isolation - Wikipedia
KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center

(3a) CVE-2018-3640 Variant 3a Rogue System Register Read

Rogue System Register Read

(4) CVE-2018-3639 Variant 4 Speculative Store Bypass

Speculative Store Bypass
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center

(5) CVE-2018-3615/CVE-2018-3620/CVE-2018-3646 L1 Terminal Fault

Foreshadow - Wikipedia
L1 Terminal Fault | 01.org API

(6) CVE-2018-12126/CVE-2018-12127/CVE-2018-12130/CVE-2019-11091 Microarchitectural Data Sampling

Microarchitectural Data Sampling - Wikipedia
Microarchitectural Data Sampling

(7) CVE-2019-11135 Transactional Asynchronous Abort

Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort

(8) CVE-2019-1125 Spectre SWAPGS gadget vulnerability

Speculative Behavior of SWAPGS and Segment Registers

(9) CVE-2019-0162 Spoiler

Spoiler (security vulnerability) - Wikipedia
More Information on Spoiler
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記

(10) CVE-2018-3665 Lazy FPU Save/Restore

INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter

(11) CVE-2020-0549 L1D Eviction Sampling

CacheOut
L1D Eviction Sampling
Processors Affected: L1D Eviction Sampling

(12) CVE-2020-0548 Vector Register Sampling

Vector Register Sampling
Processors Affected: Vector Register Sampling

(13) CVE-2020-0551 Load Value Injection

LVI: Hijacking Transient Execution with Load Value Injection
An Optimized Mitigation Approach for Load Value Injection
Load Value Injection
Processors Affected: Load Value Injection

(14) CVE-2020-0550 Snoop-assisted L1 Data Sampling

Snoop-assisted L1 Data Sampling
Snoop-assisted L1 Data Sampling
Processors Affected: Snoop-assisted L1 Data Sampling

(15) CVE-2020-0543 Special Register Buffer Data Sampling(SRBDS)

Special Register Buffer Data Sampling
SRBDS Mitigation Impact on Intel® Secure Key
Processors Affected: Special Register Buffer Data Sampling

(16) CVE-2020-8694/CVE-2020-8695 With Great Power comes Great Leakage(PLATYPUS)

PLATYPUS: With Great Power comes Great Leakage
Running Average Power Limit Energy Reporting
INTEL-SA-00389

投機的実行サイドチャネルハードウェア脆弱性
独自拡張 WebAssembly を生成し、UEFI アプリを出力するバックエンドを試作する

新線計画
コンパイラ・IDE・OS・VMM・IME の開発のためのメモ
OS 開発予定(基本機能)
やらないこと・低優先度のリスト
正規表現を学習した際の問題点を掲載
keybase.md
MIT PGP Key Server
C++ でグローバル定数を宣言する場合のイディオム。定数の唯一の定義をマクロ HEADER_H_ で指示することで実現する
EFI 内部変数の CustomMode に CUSTOM_SECURE_BOOT_MODE:1 を書き込み後に再起動し、値を取得すると常に STANDARD_SECURE_BOOT_MODE:0 が返る

リポジトリ

tenpoku-book

chapter-2

2.3

最近のruby-core (2017年3月) | Money Forward Engineers' Blog
引退するメインフレームプログラマたち - その対策は?

2.4・2.5・2.6

情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系 | 佐々 政孝 |本 | 通販 | Amazon
CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年11月) | Money Forward Engineers' Blog

2.7

プログラミング言語処理
プログラミング言語処理
WebAssembly Specifications
Binary Encoding - WebAssembly
WebAssembly/wabt: The WebAssembly Binary Toolkit
WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | 株式会社ヌーラボ(Nulab inc.)
WebAssembly(wat)を手書きする | Kabuku Developers Blog
Writing WebAssembly By Hand
WebAssembly逆アセンブルして調べるテスト
WebAssemblyをはじめよう | WEBASSEMBLY USUI BOOK
LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
LEB128 ‐ 通信用語の基礎知識
平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社

2.8

Intel

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software

書籍

情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
[絶版1999.4] 8086ファミリ・ハンドブック
80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ

x64 の 64 ビットモードのエンコーディング概略
x64 ソフトウェア規約 | Microsoft Docs
x64 呼び出し規則 | Microsoft Docs
x64 スタック使用量 | Microsoft Docs
x64 プロローグとエピローグ | Microsoft Docs
Gamasutra - In-depth: Windows x64 ABI: Stack frames
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Saving Space When Saving Space - emsea
データ構造アライメント - Wikipedia
linux - How do I disassemble raw x86 code? - Stack Overflow
Writing WebAssembly By Hand

2.9

引退するメインフレームプログラマたち - その対策は?

chapter-4

4.1.1・4.1.2

Windows7でもFastBootが効くってホント? - 週刊アスキー
Interface (インターフェース) 2011年 11月号 [雑誌] | |本 | 通販 | Amazon
Play with UEFI
UEFI時代のブートローダ
UEFI Spec 2_6.book

4.1.3

Windows 10で素早くUEFIの設定画面を起動する:Tech TIPS - @IT
GUIDとは何?Weblio辞書

4.1.4

FreeType使用記録

4.1.5

Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
SecureBootとLinux
mjg59 | Secure Boot bootloader for distributions available now
openSUSE:UEFI - openSUSE Wiki
Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
ACPI BGRT - 借り初めのひみつきち
Advanced Configuration and Power Interface Specification
Windows bitmap - Wikipedia
Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon

まえがき - x64 UEFI 対応 OS 自作入門 ~実機で動作する OS を作ってみよう~
Spaces - GitBook
tenpoku1000/tenpoku-book: 電子書籍: x64 UEFI 対応 OS 自作入門 https://www.gitbook.com/book/tenpoku1000/tenpoku-book/details
Zephyrがおもしろい~OSSのRTOS~ - Qiita
数式の再帰的下向き構文解析
FOLLOW()の計算を間違えにくくする工夫 – knsm.net
気まぐれな戯れ言の部屋 バックナンバー12
LL(1) Parser Generatorを作ろう(1) – 腐った牛乳
review-1.pdf

UEFI

tenpoku1000/UEFI_Start: DevicePath 文字列などの情報取得結果の表示・保存を行う UEFI アプリケーションです。
tenpoku1000/UEFI_SetupScreen: UEFI セットアップ画面への画面遷移を行う UEFI アプリケーションです。
tenpoku1000/UEFI_FreeType_MSVC: UEFI アプリケーションで、英日中韓台のアウトライン・フォント表示を行うサンプル・プログラムです。
tenpoku1000/UEFI_SecureBoot: UEFI セキュアブートのサンプル UEFI アプリケーションです。
tenpoku1000/UEFI_SecureBootMode: UEFI セキュアブートのモード表示を行う UEFI アプリケーションです。
tenpoku1000/UEFI_ACPI_Table_Disp: ACPI テーブルの取得結果の表示・ファイルへの保存を行う UEFI アプリケーションです。
tenpoku1000/UEFI_Ver_CPUID: UEFI version 等と CPUID 命令の取得結果の表示を行う UEFI アプリケーションです。
tenpoku1000/PE_COFF: 独自 WASM64 を生成し、PE/COFF や PE32+(UEFI アプリ)に変換するバックエンド試作版

外部プロジェクト

Unicode

Unicode License Agreement
Unicode Terms of Use
Unicode Character Database
UAX #44: Unicode Character Database
Unicode 12.1.0
Index of /Public/12.1.0

UEFI

TianoCore

UDK

UDK · tianocore/tianocore.github.io Wiki
UDK2014 · tianocore/tianocore.github.io Wiki
UDK2015 · tianocore/tianocore.github.io Wiki
UDK2017 · tianocore/tianocore.github.io Wiki
UDK2018 · tianocore/tianocore.github.io Wiki

What is TianoCore?
tianocore/edk2: EDK II
EDK II · tianocore/tianocore.github.io Wiki
BSD Plus Patent License · tianocore/tianocore.github.io Wiki
EDK II Specifications · tianocore/tianocore.github.io Wiki
Tasks · tianocore/tianocore.github.io Wiki
Windows systems · tianocore/tianocore.github.io Wiki
EDK II BaseTools User Guides · GitBook
Getting Started Writing Simple Application · tianocore/tianocore.github.io Wiki

OVMF_DEBUG

Hosts/Linux - QEMU
Re: [edk2] Filesystem issues since "OvmfPkg: enable SATA controller"
How to run OVMF · tianocore/tianocore.github.io Wiki
How to build OVMF · tianocore/tianocore.github.io Wiki
QEMU - ArchWiki
[edk2] source level debugging of OVMF with gdb
[edk2] using gdb on OVMF with symbols
SYS$OUTPUT: GDB scripting example: reloading symbols for UEFI target
SYS$OUTPUT: Using GDB to debug UEFI.
Windows を EFI ベースのコンピュータにインストールする

UEFI shim loader

mjg59 | Secure Boot bootloader for distributions available now
Index of /~mjg59/shim-signed
mjg59/shim: UEFI shim loader
rhboot/shim: UEFI shim loader

gnu-efi | SourceForge.net
Specifications and Tools | Unified Extensible Firmware Interface Forum

The FreeType Project
musl libc
adobe-fonts/source-han-sans
Doug Lea's Workstation
ReactOS Project
NASM
LibreSSL
MinGW - Minimalist GNU for Windows download | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net

参考資料

WinDbg

MSDN_Driver

テンプレートを使ったユニバーサル Windows ドライバー (KMDF) の作成 (Windows Drivers)
コンピューターの手動ドライバー展開の準備 (Windows Drivers)
Setting Up Kernel-Mode Debugging over a Serial Cable Manually - Windows 10 hardware dev
Kernel-Mode Debugging in Visual Studio - Windows 10 hardware dev
DevCon Install (Windows Drivers)
DevCon Remove (Windows Drivers)
アプリケーションからSCSIコマンドを発行する方法 - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF のディスパッチルーチンについて - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF Toaster で I/O Control を受け取る - Japan WDK Support Blog - Site Home - MSDN Blogs
フレームワークを使用したドライバーの開発 (Windows Driver Kit)
フレームワークベースのドライバーにおけるデバイスへのアクセスの制御 (Windows Driver Kit)
制御デバイス オブジェクトの使用 (Windows Driver Kit)
デバイス インターフェイスの使用 (Windows Driver Kit)
Defining I/O Control Codes (Windows Drivers)
SDDL for Device Objects (Windows Drivers)
デバイス オブジェクトのセキュリティ - Japan WDK Support Blog - Site Home - MSDN Blogs
デバイス オブジェクトのセキュリティ その2 - Japan WDK Support Blog - Site Home - MSDN Blogs
I/O コントロール発行に使うハンドルに必要なアクセス権限 - Japan WDK Support Blog - Site Home - MSDN Blogs
Device Object と Device Stack - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF デバイス ドライバーの更新 - Windows 10 hardware dev
KdPrint function - Windows 10 hardware dev

UserMode

Communications Resources (Windows)
Named Pipes (Windows)
ハンドラ関数
Amazon.co.jp: Windows95通信プログラミング (Microsoft programming series): Charles A.Mirho, Andre Terrisse, 梅原 系: 本

構造体

windbg で EPROCESS 構造体と遊ぶ:Book of Days
kernel-mode memusage - NyaRuRuが地球にいたころ
ダンプ解析 (Windows) - 08th SE's Wiki
WinDbg - マイクロソフト系技術情報 Wiki

Debugger Commands - Windows 10 hardware dev
Kernel and remote debuggers - tutorial - developer Fusion
KD Extension DLLs & KDCOM Protocol
j00ru//vx tech blog : Attacking the Host via Remote Kernel Debugger (Virtual Machines)
https://www.blackhat.com/presentations/bh-usa-07/Stewart/Presentation/bh-usa-07-stewart.pdf
ChangeLog-0.3.11 - ReactOS Wiki
アプリケーションからのデバイスドライバの呼び出し、制御方法について
管理者権限でしかアクセスできません | WDDDC
IoCreateDeviceSecure problem | Windows Vista Tips
0と1の欠片 : [Visual Studio]ドライバをビルドすると、"22.9.7: DriverVer set to a date in the future (postdated DriverVer not allowed) in \xxxx.inf."というエラーになる

TOML

toml/toml-v0.4.0.md at master · toml-lang/toml
TOML仕様和訳 - Qiita
TOMLは人に優しい設定ファイル言語 - Qiita
Cool Python Tips: TOMLを使ってみよう
TOMLの日時形式
Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
最強のC++実装TOMLパーサーが完成した - in neuro
toml11を60倍高速化した話 - in neuro
toml11をバージョンアップした - in neuro
toml11 v3ができてきた - in neuro
TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
toml11をマイナーアップデートした - in neuro
TOMLで型の異なる要素を持つ配列が許可された - in neuro

Play with UEFI
技術者見習いの独り言: SecureBootとLinux
openSUSE:UEFI - openSUSE
Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
UEFI - PhoenixWiki
www.uefi.org/sites/default/files/resources/UEFI 2_5.pdf
ぽこつん研究所 » メモリ管理について考える#09 dlmallocの設定項目
FreeType使用記録
www.uefi.org/sites/default/files/resources/EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
https://firmware.intel.com/sites/default/files/UDK_Debugger_Tool_User_Manual_V1.11.pdf
www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf

ライセンス

その他

GPLやMITやCCなど主要ライセンスの内容と意味のまとめ | ITキヲスク
Google v. Oracle API著作権裁判
ライセンスについての紹介 | VINTAGE Blog
いまアメリカのソフトウェア特許に起きていること - what`s the 446?
【Cases & Trends】 アメリカ特許訴訟が急減 - ここにも見える最高裁Alice判決の影|知財情報|日本技術貿易株式会社
Coop Lights - About
fixedpoint.jp - なぜGCCのドキュメントはDebianでnon-freeなのか
あなたのコード、違法かも? エンジニアも知りたい、弁護士が教える著作権と開発契約の法知識 - エンジニアHub|若手Webエンジニアのキャリアを考える!
よく見かけるあの©表示って何の意味なのかな? 【よくわかる音楽著作権ビジネス】 - INTERNET Watch
GoogleやYahoo! JAPANでさえ間違ってる、Copyright(コピーライト) の正しい書き方 - 2016年版 | hajipion.com
OSSライセンスとは~著作権法を権原とした解釈
mjg59 | The Commons Clause doesn't help the commons
Microsoft、OINに参加し、6万件以上の特許をオープンソース化 「Linuxを保護する」 - ITmedia NEWS
MongoDBもクラウド事業者に対抗してライセンスを変更、AGPLから独自作成のSSPLへ | OSDN Magazine
他人の著作物を使用したアイコンの法的リスクについて(栗原潔) - 個人 - Yahoo!ニュース
上山浩 「OSSライセンス遵守のための基礎知識」 知財管理 Vol.68 No.5(NO.809)に掲載 | 日比谷パーク法律事務所
c484e7e1251d2ed577a08fc47179d1e4.pdf
GoogleとOracleが「APIの著作権」を巡って最高裁判所の口頭弁論で対決、Googleが不利との見方 - GIGAZINE
09 f9: A Legal Primer | Electronic Frontier Foundation

ライセンス

さまざまなライセンスとそれらについての解説 - GNUプロジェクト - フリーソフトウェアファウンデーション
Welcome to The Open Source Initiative | Open Source Initiative
オープンソースライセンスの比較 | YOSBITS
オープンフォントライセンス | YOSBITS
SIL Open Font License - Wikipedia
License Library
SPDX License List | Software Package Data Exchange (SPDX)
著作権の保有と譲渡

日本

ガイドライン事例

サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
Kazuho Okuさんのツイート: "僕としては、OSSガイドラインの導入にあたっては社員が無意識の時間外労働をしないよう会社側に留意してほしい、そのことは会社のリスク管理と、社会全体の労働者保護につながることであるし、労務管理について理解することは社員本人にとっても有益であろう、というあたりかしら… "
Kazuho Okuさんのツイート: "あ、ちなみに株主です… "
Kazuho Okuさんのツイート: "ありがとうございます。労働にあたることを明示した上で社員に自由に休日労働する権利を認めるの、あまりにホワイト企業で素晴らしすぎる / “業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | …” https://t.co/Gk9woMzDrA"
業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ

授業目的公衆送信補償金にかかる著作権法の改正 | yasuokaの日記 | スラド
「TPP11関連法成立で、著作権の非親告罪化と保護期間延長が確定」「漫画家個人がCloudflareに漫画村運営者の情報開示請求提訴」など出版業界関連の気になるニュースまとめ(2018年6月25日~7月1日):見て歩く者 by 鷹野凌
著作権の保護と制限の規定がもうすぐ変わる ~ 保護期間延長、非親告罪化、柔軟な権利制限、教育の情報化対応など、まとめて解説 – HON.jp News Blog
Inada Naokiさんのツイート: "日本の著作権法にはフェアユース規定はないものの、基本的に親告罪だから、著作者の利益を損なわない、著作者が文句を言わない範囲での著作権違反の多くが明確な許諾なしに黙認されていて、それを前提に色んなことが成り立ってる。 その黙認されてるエリアに丸ごと網をかけちゃうような法律はNGと思う"
DL違法化「文化庁は与党に正確な情報を提供していない」知財法専門家が批判レポート - 弁護士ドットコム
「これでいいのか! 2018年著作権法改正」出版にあたり――日本版フェアユース再考のすすめ  - INTERNET Watch
マンガワンのチート事案についてまとめてみた - piyolog
「知人の弁理士に相談した」、Pythonを商標登録した企業が理由を説明 | 日経 xTECH(クロステック)
著作権法改正の概要と「写り込み」に係る権利制限規定の対象範囲の拡大 - BUSINESS LAWYERS
オープンソースのプロジェクトに商標登録の支援などを行い、不適切な利用から守る、「オープンソース商標イニシアチブ」が国内で発足 - Publickey

EU

ハイパーリンクを貼るだけで著作権料がかかる通称「リンク税」がEUで導入されようとしている - GIGAZINE
EUがインターネットをめちゃめちゃにする | ギズモード・ジャパン
「オープンソース開発に重大危機」--GitHubがEUの著作権法改正に反対する理由 - ZDNet Japan
欧州議会、著作権関連規則の改正案を否決 | スラド YRO
Rockridgeさんのツイート: "MozillaはEUの著作権指令の改正に反対の立場。包括的なアップロードフィルターの導入はインターネットの文化を貧しいものにしてしまうし、リンク税の導入は知識へのアクセスと共有を困難にするからだという。 / “Mozilla r…” https://t.co/8qOcIgeUze"
出た、Google最終兵器。EU著作権法改正後の白抜き画面がリーク | ギズモード・ジャパン
「リンク税」などを含むEUの改正著作権指令案への大規模な反対運動が勃発 - GIGAZINE
Tomoko Uchidaさんのツイート: "これ通っちゃったんか。。。meme と GIF は除外とされたらしい / EU passes divisive Article 13 copyright law https://t.co/mtlfHGMAKl"
EU passes divisive Article 13 copyright law

BSDL

@kazuho

Kazuho OkuさんはTwitterを使っています: "BSDL、昔は特許の使用権も付随してるに決まってるだろJKと思ってたけど、IIRC最近VP8とかFacebookとかBSDL+特許ライセンスの構成をとるものが増えてきてるので、そういう前提がいつか通用しなくなる可能性が出てきてるんじゃないかなと嫌な気分になってる"
Kazuho OkuさんはTwitterを使っています: "BSDL は特許ライセンスが付属するか怪しい、MITL は暗黙に付随していると考えられる、Apache License は明確に付随する、の差"
Kazuho Okuさんのツイート: "特許の使用許諾を別につけることが一番妥当なOSSライセンスがBSDLだし(文言内でライセンサーを意味する単語が「copyright holders」なため)、利用者としてもライセンサーとしてもBSDLは紛らわしいので避けるべき"
Kazuho Okuさんのツイート: "BSDLなソフト見つけたらまず特許条項の存在を疑う。2010年代の常識です"
Kazuho Okuさんのツイート: "AndroidにバンドルされてるOSSであるVP8がBSDL+特許ライセンスで、(電気機器メーカーが多い)MPEG4陣営がG社を特許侵害で訴えらづらくする毒饅頭として機能している話とか"
Kazuho Okuさんのツイート: "以前にも炎上して改訂されてたんだけど、今回は改訂されず https://t.co/GkOqd1NRXb / “Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note” https://t.co/3xK1JwnNuA"
Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note
Kazuho Okuさんのツイート: "BSD+特許ライセンス問題にASFが介入いしてくるの、なるほどその手があったのかって感じ"
https://www.apache.org/legal/resolved.html#category-x
Kazuho Okuさんのツイート: "fbの特許ライセンス問題に耳目が集まっているうちに言っておくと、BSDLは主要OSSライセンスのうちで唯一、ライセンス提供者が「作者」でなく「著作権所有者」になっているがゆえに、特許ライセンスを別途指定しやすいという問題があり、それがゆえにBSDLを使うのは避けるべき"
Kazuho Okuさんのツイート: "あと、パテントトロールに対してはOSSの特許条項は役に立たない(トロールは自社でOSSを使った業務をやらないので、OSSの使用権を失っても困らない)から、パテントトロール対策だって言い訳は説得力ない"
Kazuho Okuさんのツイート: "つまりOSSの特許条項は、競合他社との競争において意味をもつものです"
Kazuho Okuさんのツイート: "件の特許ライセンスについては、ああいうライセンスをBSDLにつけること自体は各個の自由だし、OSS配布は社会貢献活動ではないという立場からもアリだと思う。一方で、ああいうライセンスのソフトを使いたくないケースもあるから、もっとゆるい条項になるといいなとfbの中の人たちのために思う"
Kazuho Okuさんのツイート: "Fbに限らずGoogleのvp8やwebmもそうだし、BSDLみたらpatent grantを疑えって話ですよ。その認識が広まるなら今回の騒ぎはいいことだと思う #毎回言ってる"
ASFがReact.jsなどが使うFacebookのオープンソースライセンスを禁止、Facebookは「変更しない」と発表 | OSDN Magazine

@mhiramat

まさみさんは語りたいさんのツイート: "OSSライセンスのMITライセンスやBSDライセンスについて、著作者の表示をすれば自由に使えるのだけど、これ多人数で開発するプログラムに適用した場合、全ての人のCopyright表記をするのか、ライセンスファイルにあるものだけでいいのかでもめそう。"
KaiGai Koheiさんのツイート: "BSDライセンスのPostgreSQLの場合、Copyright表記は全て「PostgreSQL Global Development Group」になってるんだけど、『PGDGとはPostgreSQLの開発に貢献した全ての人です』という定義になってる。… "
まさみさんは語りたいさんのツイート: "なるほど、comittersとかdevelopersとか、個人を特定しない方法がありますね。その辺り、個人の表記をどうしたいのかは本当ははっきりさせたほうが良い・・・。… "
まさみさんは語りたいさんのツイート: "コントリビューターの一人が著作者名をどうしても表記して欲しいって言った場合は問題が起きちゃうんですよね。だから厳密には事前に方式を決め、コミット前に同意を取ったことを確認する手段(signed-offとか)も用意する必要があるんだけど、全部のOSSでやるのは難しいよなあと。… https://t.co/9KtW4HsTl6"
KaiGai Koheiさんのツイート: "なので、"How to contribute"でも良いので事前にルール化・文書化しておく必要はありますね。アップストリームに入れたいのであれば、その流儀に従ってくださいと。… "
まさみさんは語りたいさんのツイート: "この辺りのノウハウ、大手のOSSプロジェクトはみんな持ってると思うんで、そこからテンプレを起こして広めるのと、揉めた時の相談先としてLFなりが第三者機関として動けるようになると凄くありがたいですね。 Githubはライセンスファイルのテンプレしか用意しないし。… "
Satoru Uedaさんのツイート: "このスレッド、大切な問題提起を含んでいると感じます。著作権表記をどうするかもOSSの配布をするシーンで悩みとして浮かび上がる。配布のシーンに直面する事が圧倒的に多い組み込み系は特に気をつかいたいところ。… "
Satoru Uedaさんのツイート: "GPLだと、著作権表記もライセンス表記もソースコードと一緒に全部開示することになる。この点からも、Linuxのような大規模OSSに向いていると言えるのかも知れませんね。… "
まさみさんは語りたいさんのツイート: "はい。しかし一般に寛容型と言われているライセンスはこの辺りがあやふやなので、大規模になった時に、「ライセンスの外側」で貢献同意の裏付けを取るプロセスとしてOpenStackとかでContributor License Agreement を交わすという方法がありますね。 https://t.co/ax5gG9REfC… https://t.co/lAKOcwx7Xh"
まさみさんは語りたいさんのツイート: "このあたりは、OSSプロジェクトを進める上でのライセンス外だけどライセンスに絡む重要なノウハウなので、他の寛容型ライセンスを使う際の注意点と回避策として標準化していかないといけないんじゃなかろうかと思います。… "
Satoru Uedaさんのツイート: "そのとおりだと思います。短いメッセージでは書ききれないことがたくさん思い当たります。BoFネタですね。… "
まさみさんは語りたいさんのツイート: "昨日知ったというか理解したのは、寛容型ライセンスは法務的には全く寛容型とは言い切れない面倒くさいライセンスであるということだった。特に著作人格権が存在する日本では・・・。"
nishio hirokazuさんのツイート: "著作者人格権はベルヌ条約を批准している地球上ほとんどの国に存在しているわけだが、一体どこの国の話をしているのか…… "
henrichさんのツイート: "これはdebian/copyrightファイルでも悩む所であり、どうすればいいのかはまだベストプラクティスがない…。… "
まさみさんは語りたいさんのツイート: "これはいいまとめ。やはりプロジェクト毎にライセンスがどう扱われるかをきちんと決めておけという話になるのかな? (CLAで。)… "
Igaguriさんのツイート: "(まちがい) 日本には著作者人格権があるからめんどくさい (ただしい) なぜか米国は条約で保証しなければならない著作者人格権の制度がなく、米国法しか考えずに作られたOSSライセンスが多い… "
まさみさんは語りたいさんのツイート: "なるほど米国だけ例外的で、例外的な条件に基づいてライセンスを作ってしまったから、本来保護されるはずの著作人格権の行使のあたりの取り決めが別途必要なのか。"
nishio hirokazuさんのツイート: "僕の理解をまとめました https://t.co/KvOucRXa5p… "
すぎむら45さんのツイート: "> ライセンスも「著作者が、他の人に、どういう条件で利用を許諾するか」を書いたものに過ぎないので、著作者が誰であるかを定めるための手続きではない。 この観点はとても重要だと思いました。 使用許諾の話と、著作者人格権の行使の話は混じっているのはよくないですよね。… https://t.co/3JGcfxruVs"
多人数で開発するOSSの著作者表記 - 西尾泰和のScrapbox
mongrelP@もんぐれさんのツイート: "わかりやすいところだと旧GPLとかが該当するみたいね(記事による。今のGPL3とかはどうなってるかはわからぬ) https://t.co/X7HcTVFF8X… "
GPLは契約として成り立つか---日本法との整合性を検証する - CNET Japan
MAEKAWA Masahideさんのツイート: "著作「者」人格権ですね。… "
姉崎 章博さんのツイート: "あまり意識されていないが「多人数で開発する」は「全員、共同著作権者とは限らない」し「(元著作者以外が)二次的著作権者とは限らない」。 Contributer=(二次的)著作権者と思い込んでいる人が多い? 「二次的著作物として何を創作した」に答えられるプログラム記述が残っていれば権利者と言えるかな… https://t.co/th1z91D2vg"
姉崎 章博さんのツイート: "もちろん、プロジェクトリーダをやっている元著作者は、そんな厳しいことを言わずに、Contributeしてくれた人をリスペクトして、Copyrightを追加してくれている人が多いけど。 記述が類似性をもって取り込まれたわけでもないとか、著作物と言える規模でもないのに、著作権を主張するのはどうなんだろう… https://t.co/W2dxp1gV5y"
姉崎 章博さんのツイート: "「第三者から見て決める基準」が無いから、親告罪になっていると思っています。 釈迦に説法になりそうですが、 どのくらい他人のウチに踏み入れたら住居侵入罪になるか、何センチって決まっていないのと同じではないでしょうか。 どちらにしろ所有者(権利者)しだいかと。… "
ぉゅぅさんのツイート: "姉崎さんに教示いただいたと思いますが、LGPLの3項に参考になりそうなサイズはありますね。10行以下のインライン関数やマクロ程度ならLGPLとしてのライセンスを要求していません。 とはいえ、それをもって著作権有無を判断できないでしょうけれど(各国の判例があれば もっと参考になるのかな)。… https://t.co/xDMyYhIJW9"
ぉゅぅさんのツイート: "https://t.co/7BcoewUTMP 3. Object Code Incorporating Material from Library Header Files. >small macros, inline functions and templates (ten or fewer lines in length) このあたりがそういってるのかな、と。… https://t.co/Dt9PxcUpQj"
姉崎 章博さんのツイート: "親告罪になっている理由にももう一つあって、著作者本人が許している(お目こぼししている)のに、第三者の検察が問題視するものではないかららしい。 そういう意味でも、著作者次第。 著作者を無視したルール(基準)があるわけではない。… "

vyv03354さんのツイート: "歴史的にはむしろBSDLはGPLがパクれない条文だった(宣伝条項付きだった)ところを、FSFからの働きかけに応じてわざわざパクれるように修正した(宣伝条項を外した)という経緯があるわけだが、哲学とか本来の意図とか一体何の話をしているのだろう。 #エアリプ"

Artistic License

Artistic License - Wikipedia
Artistic License - Wikipedia

MPL

Mozilla Public License - Wikipedia
Mozilla Public License - Wikipedia
Mozilla Public License, version 2.0
MPL 2.0 FAQ — Mozilla
MPLの概要 | easy labo
MPL2.0ライセンスのライブラリを使った開発 -MPL2.0ライセンスをうたっ- オープンソース | 教えて!goo
Mozilla Public License(MPL)2.0が公開 | オープンソース・ライセンスの談話室
Mozilla、Mozilla Public License(MPL)を10年ぶりにアップデート | OSDN Magazine
MPL 2.0, copyleft, and license compatibility | Opensource.com
Kazuho Okuさんのツイート: "MPL 1.1にあった、著作者に対し(その著作物に無関係でも)特許侵害訴訟を起こしたら、その著作物に含まれる著作者所有特許のライセンスがrevokeされるってのは割と好きなんだけど、なんで2.0で廃止されたのかしら"

GPL

Linux

まさみさんは語りたいさんのツイート: "StackOverflowにGPLとカーネルモジュールについての詳細な引用回答を見つけた。結構具体的にソースを示して見解を示しているのが良い。しかも技術的な話だから、これは多分法務の人だけでは理解できない。 https://t.co/XPsEGkhyIm"
how to make my own linux kernel driver closed(not open source)? - Stack Overflow
まさみさんは語りたいさんのツイート: "GPLとしての要件は派生物であるかどうか。Linusの意見も派生物としてのカーネルモジュールはGPLにすべきであるという意見。ただし、他のOS向けに書かれたドライバを、単純に移植しただけである場合についてのみ、Linusの見解としては派生物でないからGPL出ないドライバも受け入れられると言う。"
まさみさんは語りたいさんのツイート: "おそらく厳密に言えば、そのハードウェアが他のGPLでないOSで動くことが証明されていて、そのOS向けに書かれたドライバであるということが証明できるのであれば、GPLを適用しなくてもLinuxカーネルについてだけ言えば受け入れても良い。ただし他のGPLソフトウェアはそれぞれの事情で判断すべき。"
まさみさんは語りたいさんのツイート: "ライセンスは書面の字面だけでは解釈が別れるものがあって、それをきちんと解釈しようとすれば、ライセンサに確認するしかないが、ここではライセンサ(Linus)の意志が明確に表現された発言がリンクされているのがポイント。"
まさみさんは語りたいさんのツイート: "ちょっとややこしいのは、元々以前の世代のハードウェアはLinux以外のOSを動かしていて、Linuxもサポートするために移植したが、今世代のハードウェアではLinuxしか動かしておらず、しかも新世代のために修正を加えている場合はどうなるのかということ。"
まさみさんは語りたいさんのツイート: "今ならいくらでもユーザ空間にドライバの機能を追い出す手段があるので、わざわざカーネルドライバにプロプラコードを突っ込むのは相当のマゾかN○IDIAだと思ってる。"
まさみさんは語りたいさんのツイート: "armのmaliドライバはカーネル部分はGPLだし、まあ妥当でしょうこれ。"
まさみさんは語りたいさんのツイート: "OSSライセンスに関わる話って見方が何種類かあって、Linuxのモジュールに関わるものはもう少し細かくて、あまり外野から口を挟むべきではないよなと思ったり。(なんでLGPLではなくてGPLv2だけどEXPORT_SYMBOL_GPLなど入れることになったのか、等の苦しさを汲み取れなければ止めたほうがいい)"
まさみさんは語りたいさんのツイート: "このあたりの苦しさが伝わってくるから、いろいろ言われても「OSSライセンスの教科書」は好き。"

licenses/GNU_General_Public_License_version_3.0 - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
GNU General Public License - Wikipedia
姉崎 章博さんのツイート: "#osc18tk 世界中の弁護士が「GPLは契約」と言う愚かな理由 https://t.co/nGALPIVDHJ 一時限目より、ちょっと、ディープな話ですが、聞いていただけると幸いです。 言葉だけを鵜呑みにせずに、人がどういう認識で何のためにそういう話をしているのか調べると、結構あまり考えていないことがわかる:-(… https://t.co/BrJ52LdBvf"
オープンソースカンファレンス2018 Tokyo/Fall - イベント案内 | 2018-10-27 (土): 世界中の弁護士が「GPLは契約」と言う愚かな理由
GNUライセンスに関してよく聞かれる質問 - GNUプロジェクト - フリーソフトウェアファウンデーション
Kazuho Okuさんのツイート: "@yukihiro_matz FSFは商用ソフトを「マルウェア」「ユーザを虐待するように設計された機能を有している」と非難している(https://t.co/0krqdpAztY)わけですし、松本さんの感情は別としてウイルスと呼ばれるくらいのことを問題視してもしょうがないかと"
トーバルズ氏がLinuxとGPLについて真に思うこと - ZDNet Japan
「GPLv3」公開から10周年 | OSDN Magazine
米Red HatやGoogleなど、GPLv2やLGPL違反時の「治癒期間」の権利を約束へ | OSDN Magazine
本の虫: 自由ソフトウェア財団が技術的な指導力を失いつつある
米Red Hat、GPLv2やLGPLv2.1を利用するソフトウェアに対してもライセンス違反時の「猶予期間」を提供へ | OSDN Magazine
「Qt 5.7」リリース、本リリースよりLGPLv3およびGPLv3での提供へ | OSDN Magazine
まさみさんは語りたいさんのツイート: "B2BのビジネスでGPLのソフトウェアを使った場合、ソースコードの提供義務はそのソフトウェアの頒布先になるんだけど、戦車とかにLinux使ったら自衛隊にだけに公開すればいいという話で、そこから先は組織の機密保持のため公開されることはない、という話になるな。"
まさみさんは語りたいさんのツイート: "GPLは頒布に際してソースコードの公開を要請するけど、更に踏み込んで、レポジトリの公開を要請するライセンスって言うのはどうだろうか。"
fjのYog教祖様さんのツイート: "GPLv4 としてRMSに提案する ( w )/… "
まさみさんは語りたいさんのツイート: "WindowsやRTOSドライバとコア部分を共有したい場合はBSDとかMITにするのが良いと思いますね。GPL互換だし問題がない。… "
だよもんフレンズは転職したいさんのツイート: "だからBSD(とMIT)ライセンスが無難。GPLは極端過ぎる。… "
まさみさんは語りたいさんのツイート: "だけどBSDだと「このドライバはBSDだからソースコードは配布しないで下さい」とかいうB2B契約をしようとする輩が出てきてやっぱり炎上するかもなので、よっぽど隠したい理由がない限りGPLにしておくのが良いと思うよ。要するに、Linuxを育てた人たちの成果にフリーライドして平気かどうかという話。"
まさみさんは語りたいさんのツイート: "過激と言われるかもだけどさ、そこの筋を通せるかどうかって、その会社が単なる寄生虫として生きるのか、社会のリーダー格として生きるのかの分岐点だと思うんだよね。 寄生虫は大きくなれないし日陰に生きるしかない、それで良いの?"
まさみさんは語りたいさんのツイート: "https://t.co/tCtMZVhFk8 ごめん、Linusもアカンって言ってる。"
Linusのカーネルモジュールのライセンスへのスタンス | スラド
GNU GPL登場前夜 | OSDN Magazine
2019年9月27日 リチャード・ストールマン「FSFは辞めてもGNUは辞めない」:Linux Daily Topics|gihyo.jp … 技術評論社
著名なフリーソフト活動家が一通のメールで役職辞任に追い込まれたことに「危険な動きだ」と批判が寄せられる - GIGAZINE
FadisさんはTwitterを使っています: 「FSFとGNUは今までRichard M. Stallman氏が双方のトップを兼任していた為その連携は必然だった。が、先の騒動でFSFを追い出された氏が依然としてGNUのトップを続けている状況で、今後FSFがGNUとどう付き合うべきかが悩ましい問題になっているらしい https://t.co/rgKBMGwEzg」 / Twitter
The FSF Is Re-Evaluating Its Relationship With The GNU - Phoronix
Stallman氏、GNU Projectトップを引き続き務めることを表明。プロジェクト内からは反発の声も | OSDN Magazine
SNKのあまりにもデタラメな対応のせいで GPL違反状態になっているNEOGEO Arcade Stick Proの解析情報 - honeylab's blog
SNKによるNEOGEO Arcade Stick ProのGPL逃れの手口と彼らのミス - honeylab's blog
FadisさんはTwitterを使っています: 「GNUの主要なプロジェクトのメンテナが名を連ねてRichard Stallman氏をGNUのトップから降ろすように求めている声明文。なんというか、GNUの方も時間の問題って感じだ https://t.co/Xk8QSmFHbq」 / Twitter
Joint statement on the GNU Project — 2019 — Blog — GNU Guix
KOSAKI MotohiroさんはTwitterを使っています 「GPLはバイナリを使える正当所有者はソースコードも入手可能でなければならないというライセンスですが、そのソースコードを自分でコンパイルしたものを利用可能かどうかはその国の法律によります。ほとんどの先進国では Red Hatみたいな他者の商標は勝手には使えません。CentOSみたいな商標削除作業要」 / Twitter

CDLA

Linux Foundation、機械学習やAI時代をにらみデータのための新ライセンスを発表 | OSDN Magazine
Home - CDLA

Bluetooth

Bluetooth ブランドを使用する - 登録
Bluetoothロゴを使用するためには?〜①Bluetooth SIGメンバー登録編〜 | 無線化.com
Bluetooth認証 | BLEDocs
a10.pdf

Creative Commons

クリエイティブ・コモンズ・ライセンスとは | クリエイティブ・コモンズ・ジャパン
Creative Commons — CC0 1.0 全世界
クリエイティブ・コモンズ・リーガル・コード
Creative Commons — CC0 1.0 Universal
Creative Commons Legal Code
Creative Commons — 表示 4.0 国際 — CC BY 4.0
クリエイティブ・コモンズ (Creative Commons) — 表示 4.0 国際 — CC BY 4.0
Creative Commons — Attribution 4.0 International — CC BY 4.0
Creative Commons — Attribution 4.0 International — CC BY 4.0
本の虫: このブログのライセンスをCreative CommonsからGFDLに変更
本の虫: 邪悪なクリエイティブ・コモンズで起こるべくしておきた事件
本の虫: ますますクリエイティブコモンズが変な方向へ
Choose a License
Creative Commonsライセンスの作品は無条件で使って良いわけではない - yanok.net
データ・資料 | クリエイティブ・コモンズ・ジャパン

DMCA

漫画村が使っているCloudflareというCDNが著作権侵害ほう助で苦境に陥っている件 - orangeitems’s diary
楠 正憲さんのツイート: "CloudflareがDMCAで海賊版サイトをテイクダウンしないのは札付きだったのか / “Cloudflare: We Can't Shut Down Pirate Sites - Slashdot” https://t.co/w0PVacszQh"
Cloudflare: We Can't Shut Down Pirate Sites - Slashdot
フェアユースに対する不当なDMCA削除要請をめぐる「Dancing Baby」裁判、和解に達する | スラド IT
まさみさんは語りたいさんのツイート: "DMCA申請する際に、予め誤った申請だった場合の保証金を積み立てる仕組みと、申請自身が正当な申請者により行われたことを保証する仕組みが必要なのでは。虚偽住所や詐称申請はできない仕組みを作ったら儲かる気がする。"
辻正浩 | Masahiro Tsujiさんのツイート: "私の投稿を検索結果から消そうと先月から色々やっている方へ。 私のブログを装った盗用ブログを作ってそれを元に私の投稿にDMCA申請するのは全部Googleに拒否されてるにしてもやりすぎですよ?全部気づいてますよ?既に警察からも指導されていますよね?まだ続けるならそろそろ動きますよ?"
光のインターネットの闇さんのツイート: "侍エンジニア塾、批判していたサイトをDMCAクレーム申請してGoogle検索に出さなくしている。。。 https://t.co/gn0UJ341JK"
DMCA (Copyright) Complaint to Google :: Notices :: Lumen
高梨陣平さんのツイート: "インターネットアーカイブ、Waback MachineがDMCA対応で削除を開始。 とうとう個々人での保存が重要になりつつある。腐ったDMCA申告に対抗するのはコストが高過ぎる。… "
「最後の砦」崩れる? Internet ArchiveでDMCAによる削除要請に対応した痕跡見つかる【やじうまWatch】 - INTERNET Watch

MS

Microsoft Public License (MS-PL) | Open Source Initiative
使用条件
Microsoft 開発者サービス契約
マイクロソフトの主要なシェアードソースライセンスに関して « 来栖川電算
米Microsoft、オープンソースライセンス準拠の管理のためのOpenChain Projectに参加 | OSDN Magazine
2019年12月19日 欧CERNが進める脱Microsoftプロジェクト「MALT」,代替ソリューションが一部公開:Linux Daily Topics|gihyo.jp … 技術評論社

本の虫

本の虫: 高度に発展した特許業界はヤクザと見分けがつかない
本の虫: Javaの権利にまつわるまとめがすごい
本の虫: fair use権利を侵害するYouTubeのContent IDと戦うために著作権侵害するゲーム批評家の話

GIGAZINE

Googleが「コードが著作権の対象になる」という裁判所判断はソフトウェア開発の未来を左右するとして対Oracle訴訟について嘆願書を提出 - GIGAZINE
GoogleとOracleが繰り広げる訴訟で「APIは著作権保護対象か否か」について最高裁判所が審理に乗り出すことに - GIGAZINE
Googleを著作権侵害で訴えているOracleもAmazonのコードをパクっているという指摘 - GIGAZINE

技術評論社

2018年10月11日 Linuxとオープンソースを守るために ― Microsoft,「Open Invention Network」に参加:Linux Daily Topics|gihyo.jp … 技術評論社
監訳者解説 山形浩生:ハードウェアハッカー ~新しいモノをつくる破壊と創造の冒険|技術評論社
2019年1月17日 SSPLはオープンソースライセンスにあらず!? Fedora,リポジトリからSSPLソフトを削除へ:Linux Daily Topics|gihyo.jp … 技術評論社

TechCrunch Japan

MongoDBがそのコードのオープンソースライセンスを改定、オープンソースの“食い逃げ”に むかつく | TechCrunch Japan
世界を手中に収めたオープンソースソフトウェア | TechCrunch Japan

Publickey

Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 - Publickey
クラウドベンダなどによるサービス利用を制限したMongoDBの新ライセンス「SSPL」を理由にDebian、Fedora、RHELがMongoDBのバンドル取りやめを表明 - Publickey

スラド

OpenSSL、ライセンス変更に向けて貢献者の合意を求める | スラド オープンソース
OSSを利用する多くのソフトウェアで脆弱性対応の不備やライセンス問題が存在する | スラド セキュリティ
著作権法における「引用」と「技術の開発又は実用化のための試験の用に供するための利用」と「情報解析のための複製等」 | yasuokaの日記 | スラド
なかのん&マジックさんのツイート: "これはGoogleを支持するわ。APIの模倣がダメなら、プラットフォーム間等の移植の際に、元のAPI叩いてたところに抽象化したレイヤーをはさむこと自体が違法ってことになるよな。 / Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める https://t.co/UIoIwVmEZ0"
Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める | スラド IT
なかのん&マジックさんのツイート: "API呼び出し部分を同じ形のメソッドなりでラップして、自動テストでプラットフォームの色んな動作をエミュレートしてもやっぱり違法になるのかな?"

infoQ

OSSライセンスの遵守を簡単にするGitHub Licensed
グーグル、オラクルへの支払いは数十億の可能性も
Bank of Ameriaのブロックチェーンデータストレージ特許が公開

OSDN

licenses/MIT_license - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
オープンソースライセンス管理団体OSI、ライセンス情報を提供するAPI「Open Source License API」を公開 | OSDN Magazine
スタッフ解雇を理由にFSFと対立していた「Libreboot」、GNU Projectから正式に離脱 | OSDN Magazine
Black Duckが企業アプリで使われるOSSに関する調査結果を公表、6割以上で脆弱性が放置されているという結果に | OSDN Magazine
米Facebook、批判を受けて「React」のライセンスから特許条項を削除へ | OSDN Magazine
米GitHub、依存性ライセンス情報のキャッシュと確認を行う「Licensed」を公開 | OSDN Magazine
オープンソース商標についての解説と不使用取消審判への対応のお願い | OSDN Magazine
Redisがモジュールのライセンスを変更、商用利用に制限 | OSDN Magazine
Kazuho Okuさんのツイート: "周辺モジュールをAGPLよりもリベラルなApache Licenseにしつつ、それ自体を商品として提供するのは禁止する、と。これは果たしてOSSなんだろうか... / “Redis’ License is BSD and wil…” https://t.co/K4IcvZRQrQ"
Kazuho Okuさんのツイート: "変更前のライセンスがAGPLなので、クラウド事業者も開発に協力していたわけだし、今後も協力すると期待されるからこそApache License+αに変更したんじゃないのかしら… "
Kazuho Okuさんのツイート: "AGPL+著作権譲渡でやりつつ、「別ライセンスは有償提供ね♡」といういつものモデルで始めてればよかったんじゃないの感は感じる"
米Redis LabsがRedisモジュールのライセンスを再変更、独自のRedis Source Available License(RSAL)へ | OSDN Magazine
分散SQLデータベース「CockroachDB」、「as a Service」としての提供を制限するライセンスに変更 | OSDN Magazine

POSTD

MITライセンスを1行1行読んでいく | プログラミング | POSTD

Qiita

公開ライセンスの話 - Qiita
そのライブラリは、本当にその著作権表記だけで良いのか? - Qiita
githubでライセンスを設定する - Qiita
ライセンスの選択を恐れる必要はありません - Qiita
ちょっとユニークなライセンスたち・まとめ - Qiita
Facebookと係争中の他社はReact.jsが使えない - Qiita
プレゼン資料やアイコンやLGTMに、漫画・アニメを無許可で使うと日本では著作権侵害です - Qiita

Twitter

特許

Shirouzu Hiroaki(白水啓章)さんのツイート: "2000年以降の出願で、特許として認められないもの。 「特許出願前に(略)外国において(略)電気通信回線を通じて公衆に利用可能となった発明」 https://t.co/YKhdZvBu4Y 例えばRFC等で既知の場合は、特許として認められない、となるはず。 (なのに特許成立している例が…無効審判にできそう)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "1999年以前の出願については、「外国において頒布された刊行物に記載された発明」が認めない条件となっていて、出版されているものに限っていた様子。"
Kazuho Okuさんのツイート: "自己防衛とかナイーブすぎる。基盤技術をばらまいて他社に依存させて、それら他社の特許を自由に踏めるようにするための戦略でしょ。Androidを販売したければVP8のサポートが必須だから動画関係の特許侵害でGoogleを訴えることができなくなる、的な… https://t.co/QT8nIgkS7j"
mattnさんのツイート: "PATENTS は特許侵害に対する自己防衛だと思います。Google は OPN にサインしています。 https://t.co/fBee4IHiw3 https://t.co/LyrpQBWQx0"
Kazuho Okuさんのツイート: "まあGolangの特許条項はApache Licenseと同様の温和なものだとは思うけど"

著作権

OS作れないマン 技術書典3 あ11企さんのツイート: "社内リポジトリにあるソースコードに著作権表示があって、編集するたびに年号の部分を書き換えるの面倒だから、米国も無方式主義となった現在では著作権表示を削除しても良いのではないかと提案した。"
ぬるぽへさんのツイート: "著作権のこと全然考えてなかったんだけど、特に譲渡とかの取り決めをしてない状態でプルリクエストをどんどん受け付けると、ライセンスを例えばMITから独自のものに変えようみたいな話が出たときに全著作権者にコンタクトを取って了承を得なければいけなくなるのか、なるほどなー"
Kazuho Okuさんのツイート: "著作権譲渡契約(CLA)がなくてcopyright書き換えられたのなら文句言うの分かるけど、CLAがあるのにsquash mergeのオーサー欄がとか言われるの辛い。そんなに自分の名前載せたいならCLAがあるプロジェクト避ければいいのに、と正直思います"
Kazuho Okuさんのツイート: "なお僕はCLA嫌いです"
Kazuho Okuさんのツイート: "実務的な話をすると、squash mergeをする場合というのは、複数人の変更を単一のコミットに変換するというケースが当然に想定されるわけで、その際、CLAで著作者の表示が不要であるにもかかわらず著作者の確認を行わなければならないとなると、作業上の負担が大きくなります"
Kazuho Okuさんのツイート: "僕は 1) @mattn_jp さんの気持ちはわかる 2) MSのやり方が間違っていたわけではないし、実務上のメリットもある(https://t.co/NAYpIxbEAH) 3) である以上、謝罪と修正を要求すべき問題ではない という認識です"
Kazuho Okuさんのツイート: "「僕はこうしてほしい」という希望を伝えるのはもちろんいいんだけど、どっちが正しいとか間違ってるとかそういう問題ではないということ… "

商標権

Kazuho Okuさんのツイート: "商標権は製品の識別を保護するものだから、ソフトウェアやサービスとして商標登録がされているものを紹介する「書籍」を出したとしても商標権侵害にはならないんじゃないの? 教えて偉い人 / “ライセンスからみたOSSの商業出版の話。 -…” https://t.co/Q3qvGRmgek"
ライセンスからみたOSSの商業出版の話。 - @rdlabo
成瀬さんのツイート: "その通りで、「商標的使用」じゃないので侵害にはなりません… "

OSSライセンスの教科書

もうすぐ夏休み終わりさんのツイート: "OSSライセンスの教科書買ってきた。 JSONライセンスを実務上当然認めるべき、という主張には断固としてNoと言いたい。理解しかねる"
まさみさんは語りたいさんのツイート: "JSONライセンスの言うEvilかどうかって主観的だし、ソフトウェアというツールを作った時点では保証しかねる。例えばカワンゴのOP53Bに利用されたらどうするか。これはインターネットの自由にとってはEvilだが、カワンゴにとってはGoodなのである。要するに確信犯に対しては全く意味がない。"
まさみさんは語りたいさんのツイート: "その上意図的に差別的に自由を侵害しているのでフリーソフトウェアライセンスとしてもダメっていうね。似たような話にNihon Linuxで起きたGGPL騒動がある。 https://t.co/9XATNlB83S"
nihonLinux - Wikipedia
まさみさんは語りたいさんのツイート: "JSONライセンスよりGGPLの方が日本ローカルで騒動に面白みが会って良いんだけど、如何せん2002年のことだからみんな忘れちゃってるんだよなあ。"
まさみさんは語りたいさんのツイート: "実務的に見てJSONライセンス使ったソフトウェアがあったとして、製品に使えるかどうかと言うと、製品がevilな使い方をされるはずはないから使っていいことになるのではないか?ただ、巡り巡って偵察兵器に使われる可能性は無いといえないが、ライセンス受けた時点で判断はできないよな。"
まさみさんは語りたいさんのツイート: "後になって著作権者から、「それは俺にとってevilだ」とか言われたら著作権違反で訴えられる可能性もあるから、やはり判定に主観が入り込む可能性があるのは実務的にも無理だな。"
まさみさんは語りたいさんのツイート: "これと全く同じ状況に陥るのは、ライセンスが付いてないソフトウェアね。誰かが書捨てたコードはすごく危うい。しかしそういうのを考えないで依存関係で勝手に使われるものもあるからなあ。"
もうすぐ夏休み終わりさんのツイート: "全くそうです。Evilな人はそもそもライセンスなんて無視するから意味ないんですよ… "
まさみさんは語りたいさんのツイート: "オープンソースの皮をかぶったハニーポットトラップ、というのも実は存在しうる。"
もうすぐ夏休み終わりさんのツイート: "JSONライセンス大喜利〜 アジアの某大国では顔識別ソフトで人民を監視している。さて、この顔識別ソフトにJSONライセンスが使われていた場合、これはライセンス違反であると言えるか?違反である・違反ではない、それぞれに根拠を述べよ… "

スタックオーバーフロー

κeenさんはTwitterを使っています 「スタックオーバーフローの問答はクリエイティブコモンズのなんかのライセンスで自由に使えたはず。あれを勝手に自動翻訳したサイトを作るのはライセンスの範囲内。問題なのはそれを上位に出すサーチエンジンの方では」 / Twitter
κeenさんはTwitterを使っています 「> 2018-05-02 (UTC) 以降に投稿されたコンテンツは、CC BY-SA 4.0 の条件に基づいて配布されます。 投稿した内容のライセンスは? https://t.co/Lz5qMSG7Qm」 / Twitter
投稿した内容のライセンスは? - ヘルプ センター - スタック・オーバーフロー

Makoto Kato ︎︎さんのツイート: "OSSってのはソースコードを公開するということがOSSじゃなくて、コードのコントリビュートや意見が開かれているということに使うべきだと思ってるんだよね。zlibとかその点ダメな部類だけど"
まさみさんは語りたいさんのツイート: "OSSによらず、ソフトウェアのライセンスの話は、プログラミングを小学生から教えるのならば、リテラシとして扱わねばならない話なんですよ。これだけ気軽にweb上に文書を公開できるなら、著作権の知識がリテラシであるように。"
まさみさんは語りたいさんのツイート: "何かを表現する権利とそれに付帯する注意点は、その表現方法の知識と、本来であれば表裏一体であるべき。これは道徳なんかより遥かに重要。"
まさみさんは語りたいさんのツイート: "未だに読み書き算盤から基本のリテラシが進歩していないことが、日本の教育の問題だと思う。識字率が高いけど、バランスのいい互恵権利意識(fairness)の普及率はどうだろうか? 社畜の問題も、男女格差の問題も、OSSフリーライドの問題も、同根なのではないか。"
まさみさんは語りたいさんのツイート: "道徳はそれを書いた人間や文化を背景にした「善悪」を教える教科なので、ここで言いたいfairnessとは真逆ですね。一方が善きことと思っても、他方はそう思わないかもしれない。これだけだと文化を同質に保つ事は出来ても、異文化との交流にとっては障害になります。… https://t.co/DFJPxQjwM9"
ところてんさんのツイート: "超かっこいいEULAだ。そりゃー同意するよ。… "
まさみさんは語りたいさんのツイート: "Copyright表記のオリジナル年と名前以外の部分については、つまり更新年のところについては不要な表記なので著作物の一部とみなせるので、つまりそこだけを毎年書き換えても、更新年記述の更新があったことを更新とみなせるから嘘は書いていないことになる。"
まさみさんは語りたいさんのツイート: "ExFATだ。間違えた。ちなみにExFATのページにはまだ「製品適用にはMSの特許ライセンスを必要とする」旨書かれている。 https://t.co/Gsv0lRDAiA"
まさみさんは語りたいさんのツイート: "MSがOINに提供したパテントにはexFAT関連の特許は含まれていないが、彼らの「善意の兆し」があるのだろうと期待してSoftware Freedom ConservancyがMSに話をし始めたようだ。 https://t.co/pj22b4ImKy"
Shinji Konoさんのツイート: "マイクロソフトって「特許で訴えない契約」を強要してた会社なんだよな。結局、特許はクロスライセンスで相殺される方向。薬でも特許が切れるのを待つ的なところがあって。"
傳智之さんのツイート: "“知的財産権は,もともとイノベーションを促進するための手段ではある(⁠「保護してあげるから,みんなに公開してくださいね」というのが知財だ)⁠。でも,欧米日の先進国ではそれがいまや,既得権益の保護に使われるだけになっている。” https://t.co/DyBFWEerTC"
henrichさんのツイート: "TechcrunchのMongoDB記事、タイトルから妙な匂いだなと思ったらやっぱりのhiwa案件(viewが増えてもアレなのでリンクなし)。MongoDBは風評被害で訴えてもいいと思うよ…あと本家Techcrunchのライターも。"
まさみさんは語りたいさんのツイート: "マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意 @wired_jp https://t.co/Z2fOfGDJE1 まだだ、exFatが含まれていない限り、見せかけだけに過ぎないよ。"
Thoughts on Microsoft Joining OIN's Patent Non-Aggression Pact - Conservancy Blog - Software Freedom Conservancy
マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意|WIRED.jp
Hideyuki Tanakaさんのツイート: "わかっててBSDとかMIT採用してたんじゃなかったのか。やっぱストールマンの言ってたことは正しかったんだなあ(´・_・`) / “redismongodbkafkaaws.html” https://t.co/VI6EnMNvCC"
Hideyuki Tanakaさんのツイート: "オープンソースなんか広まったらソフト産業死ぬぞ ↓ これからはサービスで儲ける時代。ライセンスも緩くていいぞ。まだこの時代に適応できてへん企業おる? ↓ 結局IaaS持ってるとこしか儲かんないじゃん… ↓ 謎ライセンスでクラウド業者の利用を縛るぞ!フリーライドは許さん! (´・_・`)"
henrichさんのツイート: "ふむ。『「今更聞けないシリーズ」にOSSの利用に関する法的リスクや係争事例の紹介およびOSSライセンス違反を生じさせないための基礎的な知識の解説が掲載されました。』 https://t.co/0QNkSNSCa1"
κeenさんはTwitterを使っています 「著作権にあまり詳しくないので他人のコードの一部を拝借してきたときにどういう著作権表示したらいいのかよく分かってない。 元がMITライセンスとかならLICENSEファイルもってきてauthorに自分加えればよい?」 / Twitter
よんたさんはTwitterを使っています 「@blackenedgold わからないのわかる。「一部のコードはこのかたのでライセンスはこれだよ」みたいな説明もあると良さそう。ライセンス表記をするヘルプ項目いれたり、他の人のコードとライセンスでディレクトリ切ったり、ソースコードコメントに書いたりかなあ。引用サイズによる。」 / Twitter

tenpoku1000/tenpoku
tenpoku1000/int_calc_compiler: WebAssembly を中間言語に採用した、32 ビット整数式の x64 JIT コンパイラ
Github新项目快报(2018-11-26) - 《统计学习方法》的代码实现
tenpoku1000/first_follow_set: C 言語で文法の First 集合と Follow 集合を出力するサンプルコード
tenpoku1000/OPML_bookmarks: コンパイラ・IDE・OS・VMM・IME の開発のための OPML・ブックマーク HTML ファイル
tenpoku1000/jp-books: コンパイラ・IDE・OS・VMM・IME の開発のための和書
tenpoku1000/Chocolatey.pkg.config: Chocolatey パッケージマネージャの pkg.config XML 設定ファイル
tenpoku1000/.atom: テキストエディタ Atom の設定ファイル
tenpoku1000/test: テスト用リポジトリ
tenpoku1000/windbg_logger: カーネルデバッグ中の Visual Studio 内蔵 WinDbg の通信内容を記録するアプリケーションとデバイスドライバです。

Qiita

Ubuntu Desktop で OVMF と QEMU をソースコードからビルドする - Qiita
Visual Studio で日中韓台文字表示 UEFI アプリ作成のメモ - Qiita

Git

その他

cherry-pick

4. cherry-pick【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
cherry-pickコマンド備忘録 - Qiita
git cherry-pickで特定のコミットのみを適用する| Gitテックラボ | [Smart]
SourceTreeでgit cherry-pickを使う | アライドアーキテクツ エンジニアブログ
[git]複数のcommitをまとめてcherry-pickする - dackdive's blog

reflog

いざという時のためのgit reflog - Qiita
`git reflog` についてまとめてみる
Git - git-reflog Documentation
[git]git reset を取り消す(git reflogの使い方) - dackdive's blog
【翻訳】Gitで様々なUndoを行う方法 - はらへり日記
Git/git reflog (git resetを取り消す) - yanor.net/wiki
Git Undo エイリアスを定義する | POSTD
git log - What's the difference between git reflog and log? - Stack Overflow

docx

渋川よしきさんのツイート: "gitの内部構造的に、バイナリファイルの過去のすべてのバージョンをgzipしてローカルに保存していくのと変わらないので、これやるとgit clone数時間みたいなリポジトリができあがる。zipされているxlsxはgzipしてもファイルサイズほとんど変わらないし。git LFSはわかっている人じゃないと/でもつらい… https://t.co/mYRLJW2HP3"
アーさん@疾風の雑魚プログラマさんのツイート: "WordやExcelが内部的にGit対応を行い、ファイルを保存すると自動的にGithub上のリポジトリにPushされるようになり、世界から日付管理されたExcelファイルを撲滅することができた日には、後世までMicrosoftを称える準備がある。"
Arseny Tolmachevさんのツイート: "今でもできますけど https://t.co/Cl9b1IPGqV… "
Gaelan/WordGit: Git diff and merge on Word docs, using Word's native support.
TortoiseGit/contrib/diff-scripts at master · TortoiseGit/TortoiseGit
渋川よしきさんのツイート: "git、正確にはバイナリdiffで保存する仕組みはあるんだけど、まあそれが発動するときはgit gc起こりまくりの極限状態なことが多いはずで、ストレスフルなのは変わりない。"

stgit

stgit Tutorial - エンジニアきまぐれTips
まさみさんは語りたいさんのツイート: "stgit使ってるからなあ・・・… "
Masaki Haraさんのツイート: "アンケート: gitでブランチを切り忘れてmasterにコミットしてしまったとき 1. masterをtopicにリネーム 2. topicにコピーしてmasterに戻ってreset 3. resetしてtopicを作って再コミット 4. その他"
まさみさんは語りたいさんのツイート: "stgitのあかん所、CC: stableに # が使えんのじゃー。"

内部構造

Amazon.co.jp: エンジニアのためのGitの教科書[上級編] Git内部の仕組みを理解する eBook: 河村聖悟: Kindleストア
Git の仕組み (1) - こせきの技術日記
やさしいGitの内部構造 - yapcasia2013
内部構造から見るGit - Qiita
Git の内部データ構造 - SSSSLIDE
Git の内部構造を知っていたら、リモートリポジトリへアクセスできないホストへ差分を適用できた話(実話) - Qiita
Gitのリポジトリの中身をなるべく正確に理解する | To Be Decided
Git のコマンドだけでなく、その仕組みを学ぶ
Gitの基礎知識をまとめたよ - tasuwo blog
Gitを支える内部構造についての話 - Timers Tech Blog
「GitHub トレーニングチームから学ぶ Git の内部構造」のノートです。 曖昧なところもあるので、間違いがあったら教えてください! http://connpass.com/event/3808/
Gitレポジトリはパッチの集積ではなくてスナップショットの集積である。 · DQNEO起業日記
[Git].git/indexのデータ構造を詳しく調べてみた · DQNEO起業日記
git graphを使ってターミナルで Git のツリー構造を表示する | ワードプレスのホームページ制作|新宿区のフリーランスWeb制作 ピクセルデザイン
» Gitの最低限必要な基礎知識
参加レポート【GitHub トレーニングチームから学ぶ Git の内部構造@名古屋】 - ton-tech-ton

ProjFS(GVFS)

WalkingCatさんのツイート: "it looks like GVFS (Git Virtual File System) has been renamed to ProjFS🧐"
GVFS: Git at Enterprise Scale
Microsoft/GVFS: Git Virtual File System: Git at Enterprise Scale
GVFS/Protocol.md at master · Microsoft/GVFS
Releases · Microsoft/GVFS
RavenFile | Windows Weekly 558: 150 Bottles of Ranch Dressing on the Wall
米Microsoft、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System」を公開 | OSDN Magazine
Makoto Kato ︎︎さんのツイート: "SDのレポジトリにはSLM時代 (Windows 2000 RTMまで)のデータ入ってないから、言ってること間違ってるよ。 https://t.co/Yms96KiRhz"
大規模リポジトリの問題を解決するGit Virtual File System
Gitのスケーリング(と、その背景) | プログラミング | POSTD
SATO Naoki / さとうなおきさんのツイート: "WindowsのソースがGitに移行。350万ファイル、300GB、開発者4,000人、1,760デイリービルド。GVFSのおかげ。 The largest Git repo on the planet https://t.co/22nMZ9j6OH"
The largest Git repo on the planet | Brian Harry's blog
MicrosoftがWindowsのコードリポジトリをGitに移動
「Windows」開発にもオープンソース浸透--変わりゆくマイクロソフトの現場 - ZDNet Japan
Microsoft、Windowsの開発におけるGitの活用状況を説明 | マイナビニュース
Where is GvFlt filter driver source code? · Issue #5 · Microsoft/GVFS

LFS

大容量ファイルもGitで管理。 Git LFSの使い方
git-lfs/docs at master · git-lfs/git-lfs
過去のコミットでgit LFSを使うように歴史改変をする - 簡潔なQ
すらりん日記 » Blog Archive » Git LFS を使ってみる|No:4390|すらりん日記
渋川よしきさんのツイート: "git lfsのファイルロックの仕様がわからん。.git/lfs/lockcache.db というファイルができる。ロック・アンロック時にHTTPのリクエストをサーバーに飛ばしている。リモートとローカルというモードがありそう。わからん。"
渋川よしきさんのツイート: "で、これロックしたところでだれがこの状態を見て「このファイルを編集しちゃダメだよ」って言ってくれるのか。そしてどうやってリモートとこのステータスを共有するのか。"
渋川よしきさんのツイート: "なるほど。lock対象にすると全部がreadonlyになるのか。"
渋川よしきさんのツイート: "あーわかった。積極的にはロック情報を取りに行かないのかもしれない。"
428Hさんのツイート: "git-lfs が 2.x だと認証を拾ってくれない気がする。 1.5.6 だとすんなり通る。 たぶんこれと同じ症状。 https://t.co/F946bdlsNZ"
Git LFS on Windows requires credentials to be cached · Issue #1763 · git-lfs/git-lfs
fu-jinさんのツイート: "git lfsは失敗する。というかもう失敗に終わった感がある。… "
squirrelsさんのツイート: "この間ついにsouce treeが見限っていたような。 本家がバグありのまま更新止まってたしね。… "
beepcap@エビからくり民(成年済)さんのツイート: "git lfsはそのアイデアが出回り始めた頃は期待してた。 まさか、lfsを追加してないgitからpushするとリポジトリ全体が崩壊するとは思わなんだ"

gitattributes

.gitattributesをいじって特定のファイルをgithubのPRのdiffの対象から外す方法のメモ - podhmo's diary
Customizing how changed files appear on GitHub - GitHub Help

gitignore

Git - gitignore Documentation
github/gitignore: A collection of useful .gitignore templates

rebase

あのコミットをなかった事に。git rebase -i の使い方 – karakaram-blog
git svn rebase で conflict したときの解消手順 - 日曜プログラマがダラダラ書く
Esewvi LoveさんはTwitterを使っています 「git squashとrebaseでいつもハマって、めんどくさいからgit push -f でごまかす」 / Twitter
yoh2さんはTwitterを使っています 「せめて --force-with-lease にして😖」 / Twitter

filter-repo

git filter-repoってなんぞ - Qiita
Gitの履歴のメールアドレスを一括変更 (git-filter-repo) - Qiita
git-filter-repo/INSTALL.md at master · newren/git-filter-repo
newren/git-filter-repo: Quickly rewrite git repository history (filter-branch replacement)
git-filter-repo(1)

switch/restore

git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog
Git 2.23.0のswitchとrestoreについて - DEV
git switchとrestoreの役割と機能について - Qiita

blog

cron から自動で git push する [Tipsというかメモ]
git pushで本番環境に“自動デプロイ”できる環境を作ってみよう! | vdeep
gitのコミットの記法 - Fixstars Tech Blog /proc/cpuinfo
git grep を使う - Fixstars Tech Blog /proc/cpuinfo
Github を Windows で利用する(Git GUI編): 小粋空間
git入門 (全22回) - プログラミングならドットインストール
Gitで特定のcommit idを指定してcheckoutする方法
Git で現在チェックアウトしているコミットのID | そんなこと覚えてない
Gitのインラインdiff (word-diffの進化型) - quattro_4's diary
TortoiseGit で git add -p 相当できた
Gitのdiffで差分の場所をメソッド/関数名で表示させる - 理系学生日記
GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
Windows 10の開発環境を整えた - YAMAGUCHI::weblog
本の虫: gitの10周年を記念したLinus Torvalsへのインタビューの翻訳
Git 2.x シリーズの 6 つの素晴らしいフィーチャー | Atlassian Blogs
Gitのリモート操作を5倍から50倍高速化するには | Yakst
ブランチ、タグを指定してgit cloneする|DIGITAL SQUADブログ
「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
apt-get upgrade gcc considered harmful - NyaRuRuが地球にいたころ
本の虫: git submoduleを含むレポジトリをGitHub Pagesで公開するときのsubmoduleのURLはhttpsでなければならない
Kazuho's Weblog: Git で全ブランチから検索
本の虫: GCCのgit移行が難航中
gitのrebaseでsquashをワンライナーで | κeenのHappy Hacκing Blog
globalのgitignoreの設定をdotfilesでやるようにした - 脱力系日記
gitでアレを元に戻す108の方法 - TIM Labs
git logでソースのdiffを見る - 誰にも見えないブログ
bare repositoryの初期化時に入り込んだ余計なファイルの削除 - 誰にも見えないブログ
commitとpushしかできない人のためのgithubの使い方まとめ - Just $ A sandbox
過去の Git コミットのコミッタを変更するには - Corredor
Kazuho's Weblog: git blameでプルリクエストの番号を表示する
gitで2つのリポジトリを混ぜる戦略を考える - golden-luckyの日記

News

“master”は不適切? デフォルトブランチ名の変更に対応した「Git for Windows」v2.28.0 - 窓の杜
「Git for Windows 2.29.0」が公開 ~セットアップ時にデフォルトブランチ名を設定可能 - 窓の杜
プログラムの実行時間を99%短縮した「たった1行のコード」とは? - GIGAZINE

infoQ

Facebookの大規模で高速なリリース方法
Git2.17は移動したコードに対する差分表示やオブジェクト検索機能が向上した
Git 2.18がGitプロトコルバージョン2のサポートを追加
diff, branch、grepなどが改善されたgit 2.19
ワークフローとパフォーマンスを改善したGit 2.20
トポロジの保存とインタラクティブなりベースが可能になったGit 2.22
MicrosoftがWindowsのコードリポジトリをGitに移動
Git 2.26でプロトコルバージョン2がデフォルトに
Git 2.29でSHA-256の実験的サポートを導入

OSDN

分散バージョン管理システムGitの使い方入門 | OSDN Magazine
Gitを使いこなすための20のコマンド | OSDN Magazine
Git 2.10リリース、表示の改善や細かい設定強化などが行われる | OSDN Magazine
「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
「Git 2.6」リリース | OSDN Magazine
「Git 2.5.2」リリース、軽微な修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.5」がリリース | OSDN Magazine
「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.3」がリリース、リモートリポジトリ側でチェックアウトしされているブランチへのプッシュが可能に | OSDN Magazine
「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
認証ヘルパ機能や細かい機能強化が加えられた「Git 1.8」がリリース | OSDN Magazine
「Git 2.14」リリース、細かな変更が多数加えられる | OSDN Magazine
「Git 2.16」リリース | OSDN Magazine
「Git 2.17」が公開 | OSDN Magazine
「Git 2.19」リリース | OSDN Magazine
「Git 2.20」リリース | OSDN Magazine
「Git 2.21」リリース | OSDN Magazine
「Git 2.22」が公開 | OSDN Magazine
「Git 2.23」リリース、「git switch」や「git restore」コマンドを実験的に導入 | OSDN Magazine
「Git 2.24」公開、複数の新機能が導入される | OSDN Magazine

POSTD

コードの半減期とテセウスの船 | 開発手法・プロジェクト管理 | POSTD
モノリシックなバージョン管理の利点 | プログラミング | POSTD
GitトラブルをGetしてしまったら:バージョン管理のお話 | POSTD

Qiita

gitでシンプルなデプロイ環境を作る - Qiita
AdventCalendar - git bisect で問題箇所を特定する - Qiita
Git blameを使って効率の良い犯人探し(w - Qiita
インデントコミットで真犯人がわからなくなった場合の git blame - Qiita
気をつけて!Git for Windowsにおける改行コード - Qiita
Git コマンドまとめ - Qiita
Gitでやらかした時に使える19個の奥義 - Qiita
detached HEAD から脱出する方法を git の内部構造から探る - Qiita
gitで文字列検索、git grepとgit log -Sがとっても便利 - Qiita
git grepでディレクトリを限定して検索 - Qiita
git diff -bとgit diff -wの違いを調べた - Qiita
git-lfsでコンフリクトしたらどうなるか - Qiita
Git リポジトリの内容を zip ファイルにする - Qiita
【Git】ブランチの切り替えとかプルとか出来ないときの対処法 - Qiita
基本的なGitコマンドまとめ - Qiita
ブランチ切って更新してマージするまでの流れ - Qiita
git configをプロジェクトによって使い分ける - Qiita
GitでVisual Source Safeの使い勝手を再現する!ロック機能 - Qiita
gitのremote urlを変更する(レポジトリ移行時) - Qiita
git tagの使い方まとめ - Qiita
Git リポジトリに上がっているファイルを履歴ごと消すには? - Qiita
Githubのリポジトリからファイルを削除 - tanaka's Programming Memo
git最強のオプション filter-branch - Qiita
Git ファイルの履歴を完全に削除する
あのコミットをなかった事に。git rebase -i の使い方 | karakaram-blog
git reset --hard の復元 - Qiita
まだ git push origin するときに current branch 名を入力して消耗しているの? - Qiita
Git で変更を patch ファイルにする / patch コマンドで適用する - Qiita
[git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
[git]マージ時のコンフリクトで片側の変更だけ適用する方法 - Qiita
git tagの使い方まとめ - Qiita
GitコミットメッセージにMarkdownを使えるようにする - Qiita
Gitで日本語長文のdiffをとる方法 - Qiita
Git Subtree 事始め - Qiita
git-subtree移行メモ - Qiita
git format-patchなどで複数のコミットを別のリポジトリーに変換して移植する - Qiita
GitHub Desktopで新規リポジトリ作成後、Push/Pull/同期エラーが出たときの対処 - Qiita
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
git gcの限度設定 - ゲームエンジニアな日々
git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば

GitHub

Setting your username in Git - User Documentation
Setting your email in Git - User Documentation
Taeung/git-training: Don't think about git, just do git
rgburke/grv: GRV is a terminal interface for viewing git repositories
瑣末u 🗹さんのツイート: "javascript実装のgit。ほう。ブラウザでも動作 / “isomorphic-git · A pure JavaScript implementation of git for node and browsers!” https://t.co/RSQhQv23Rq"
isomorphic-git · A pure JavaScript implementation of git for node and browsers!
isomorphic-git/isomorphic-git: A pure JavaScript implementation of git for node and browsers!

Twitter

その他

Ryou Ezoeさんのツイート: "非プログラマーのためのgit入門書、割と切実に啓蒙のために出版されてほしいし、実際私が書いてもいいんだけれど、gitを効果的に使うためには、プレインテキストで書く、CLIツールを使うといった作業も出てくるので、果たしてこれをどうすればいいのか。"
にゃおきゃっとさんのツイート: "git diff で --color-words オプション付けると単語単位でdiffしてくれるのか!!!!めっちゃ便利!!!!!行単位じゃないから本当に変更点だけが分かりやすく出る!!!!もっと早く知りたかった!!!!"
くまぎさんのツイート: "ふははは、貴様には git submodule init --update git submodule update --init のどっちが正しいか定期的にわからなくなる呪いをかけた。"
なかのん&マジックさんのツイート: "バージョン管理システムってGUI化すると面倒すぎて使えたものではない印象がある。基本的には各アプリがそういう機能を内蔵するなり、連携するなりして自動化しないとあかんのだろうなと(そして意味が分からずに使ってもらえないオチ)。"
水島宏太さんのツイート: "実名は挙げませんが、プログラミング能力が高くて、コンピュータ・サイエンスの分野でとても高名な偉い人でもgitほとんど使えないか使いこなせない人ときどきいるんですよ。そういう人の肩の上に乗っている自覚があるので、たかがツール一つでそういった方々を馬鹿にするとか恐れ多くてできないです。"
水島宏太さんのツイート: "もちろん、情報系学生がgit触れないのが主題というのは理解してますが、git触れないこと程度のことを馬鹿にするってのはそういうのとたいして変わらないと思ってます。"
qwerty2501さんのツイート: "git使ってるとここからここまでのcommitを一つにまとめたものを一つのcommitとして見れる単位が欲しくなる"
vyv03354さんのツイート: "changesetのidは内容や更新日時などをもとに生成される(改竄防止の為) その情報の一部として「親changesetのid」も含む(途中だけ差し替える攻撃を防ぐため) なので途中を変えるとそれ以後も必然的に再計算が必要 gitも同様の仕様だったはず。分散バージョン管理では避けようがないのでは… https://t.co/t7AbIGY9ON"
ドッグさんのツイート: "Git で 4b825dc642cb6eb9a060e54bf8d69288fbee4904 は特別なコミットハッシュで,最初のコミットの前の空のツリーを指すというのを初めて知った"
ドッグさんのツイート: "特別なコミットハッシュというか,空のツリーだから常に同じハッシュになると言ったほうが正しいのかな(よく分かってない)"
クニワッさんのツイート: "そうだと思います。オブジェクトの型ごとに prefix がつくので、先頭に tree でバイト数でみたいな感じになりますが、後続の内容が空なので一意になるはずです。https://t.co/SnjiyWYkYF にわかりやすい作成方法が載ってました。… "
Is git's semi-secret empty tree object reliable, and why is there not a symbolic name for it? - Stack Overflow
ドッグさんのツイート: "分かりやすいリンクありがとうございます.なるほど,first commit のツリーの sha は空だから固定値になるけれど first commit オブジェクトの sha は他の諸々が考慮されて別の値になるという感じですね… "
あずりえるさんはTwitterを使っています: 「検索すると色々なことができることがわかるが、如何せん難しすぎる。 (コミットメッセージを上書きする方法、リモートにあるブランチ名を強制的に書き換える方法、プッシュを取り消す方法など)」 / Twitter
nhoriguchiさんはTwitterを使っています: 「リリース用のタグは git-tag -a オプションで annotate tag (タグオブジェクト) 付きにして、ちょっと仮のタグを打ちたいときは -a なしにするのがよくある運用じゃないかな。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「git の GUI frontend はボタンとかメニューには、(git xxx)の様に対応するコマンドを書いてほしい。何を言ってるのかわからんのじゃ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Gitで、特定のコミットにおける特定のファイルの中身を表示する / 1件のコメント https://t.co/eIlTIibqL4 “git commands - How can I view an old version of a file with Git? - Stack Overflow” https://t.co/XvuO10xxR1」 / Twitter
git commands - How can I view an old version of a file with Git? - Stack Overflow
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「git format-patch... まさに今欲しいコマンドじゃないか!」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「コミットをきれいにするために歴史を改変する文化はよくわからない。」 / Twitter
tomoyaさんはTwitterを使っています 「違うちがう。本当に綺麗な人は、綺麗にしようとしてるんじゃなくて、息を吐くように普通にコミットしたら自然と綺麗になっているんですよ。生産性とか関係なく、単純にスキルレベルの話ですね。」 / Twitter
yoh2さんはTwitterを使っています 「履歴をありのままに、それこそコミット直後の push 前に気付いた typo 修正のような fixup 的なものまで記録して、履歴の追いにくさははツールでカバーというのが理想なんだろうけどあいにくツールもそれを扱う人間もそこまで賢くないからまあまあ見れた形に直してる。」 / Twitter
yoh2さんはTwitterを使っています 「あと、PR/MR 直前の rebase はそれとは違う理由でやってる。 コンフリクト起こしてるから直してと連絡受けて作業するのはロスがでかい。」 / Twitter
ドッグさんはTwitterを使っています 「過去の履歴も含めて全てのテキストを git grep するには git rev-list --all と組み合わせれば良いのを知った https://t.co/N07vFEsV67」 / Twitter
How to grep (search) committed code in the Git history - Stack Overflow

blame

SODA Noriyukiさんのツイート: "cvs には blame はなくて「cvs annotate」なんだけど、少なくとも1999年の10月には、NetBSD 関係の chat で「cvs annotate」のことを「cvs blame」と呼んでたし、解説されなくても意味が通りました。1999年10月はsvnやgit… https://t.co/ZqtuAGmtrV"
_さんのツイート: "SVN も svn blame だけど、どこらへんに由来するだろう"
SODA Noriyukiさんのツイート: "この辺の話は、オッサン達にはジェラルド・M・ワインバーグの「プログラミングの心理学」のエゴレスプログラミング関係の記述で広まってる。名著なので若者にも読んで欲しい(最近の版の翻訳の質について悪い評判があるのが気になるけど。昔の版だと訳者は別の方) https://t.co/Db45ZlpKc6"
_さんのツイート: "ちなみに一連の blame についての話は SRE 本に `Best Practice: Avoid Blame and Keep It Constructive` という項目があったことで呟きました。人を blame するのはやめよう。… https://t.co/z0we6tGJCq"

@mhiramat

まさみさんは語りたいさんのツイート: "この問題、実は切実。確かにある程度のgotoはレビューしやすい差分ができるのでwelcomeなんだけども、後で最適化のためのパッチも作って欲しい。… "
Urabe, Shyouheiさんのツイート: "個人的には「diffが小さくなるから」という理由によりgit以降でgotoは復権しつつあると肌感覚で感じるんだけど、どうなんだろうな。ちゃんと調査してみると面白いかも"
まさみさんは語りたいさんのツイート: "個人的には原則として、機能追加とコードの最適化は別パッチにして欲しい。但し機能追加が完全な関数実装の変更を伴う場合は一緒にして欲しい。この当たり微妙な書き方だけど・・・。"
まさみさんは語りたいさんのツイート: "あー、splitdiffはhunkレベルに分割してくれないのか・・・。"
まさみさんは語りたいさんのツイート: "git add -pで手動でhunkに分けながらcommit"
まさみさんは語りたいさんのツイート: "どうもkconfigに怪しい所があるのでうまく行くパターンと行かないパターンをgitに放り込み、hunk毎に別コミットにした上でgit bisectしつつカーネルビルドとテストを繰り返している。"
まさみさんは語りたいさんのツイート: "gitのデータベースだけシンボリックリンクにして、複数の異なるバージョンをチェックアウトできないだろうか・・・。"
Hiroaki Nakamuraさんのツイート: "git worktreeというサブコマンドで出来るらしいですよ。 https://t.co/IBtaqaj1gv… "
Multiple working directories with Git? - Stack Overflow
Hiroaki Nakamuraさんのツイート: ""Git - git-worktree Documentation" https://t.co/PuTHA6F6Dj さっきまでこれ知らなくて、gitの複数ブランチを並べて見たいときにgitのワークスペースディレクトリをまるごとコピーして片方ブランチ切り替えとかやってたんですが、これを使えばさくっと出来たんですね。"
Git - git-worktree Documentation
まさみさんは語りたいさんのツイート: "カーネルのgitが4つぐらい入っていて無駄すぎたので助かる。"

@fadis_

Fadisさんのツイート: "gitに唯一guiが欲しくなる瞬間がある。大和西大寺駅みたいになったgit log --graphを目の当たりにした時だ"
Fadisさんのツイート: "gitプロトコルv2: gitの通信は「通信路を確保する方法(http?ssh?)」と「通信内容の表現方法」の2層で構成されているが、後者についてGoogleが提案している新しいプロトコル。v2ではクライアントが関心の無いブランチをサーバでフィルタしてfetchできる。git-2.18から使える https://t.co/I1es9C2UOQ"
Git Has A New Wire Protocol Yielding Much Greater Performance - Phoronix
Fadisさんのツイート: "ローカルに転がっているgitリポジトリを今すぐgitwebで見たくなった時は、git instawebでgitwebを動かすためのhttpdが上がってきてブラウザが開いてそのリポジトリをgitwebで見れるようになる。git instaweb --stopしないとhttpdが上がりっぱなしになる https://t.co/3zqarBV1cR"
Git - git-instaweb Documentation
Fadisさんのツイート: "で、従来git instaweb時にgitが呼び出そうとするhttpdはapacheかlighttpdかmongooseかplackup(Perlモジュール)かwebrick(Rubyモジュール)だったけど、新たにPythonのモジュールhttp.serverにも対応したらしい https://t.co/lvKyQey3Z4"
FadisさんはTwitterを使っています: 「gccのsvnからgitへの移行が今週末にも完了するらしい。gccのリポジトリをgitに移す試みは2018年からなされているが、20世紀から続く巨大な歴史相手に既存のツールではRAM 64GBでも足りずgcc移行ツールが新規に作られる、gitでの解釈が悩ましい歴史が発掘される等難航していた https://t.co/W7pmpA2kro」 / Twitter
It Looks Like GCC's Long-Awaited Git Conversion Could Happen This Weekend - Phoronix

@shibu_jp

会社員さんのツイート: "@shibu_jp `git checkout -` で前のブランチに戻れますよ"
渋川よしきさんのツイート: "github、まちがって自分でマージボタンを押してしまって、revertコミットPRを作る機能を使ってもどしたんだけど、それだと最初に出そうとしたPRがマージ済みだと判定してしまうので再度PR出すのができなかった(ので歴史改変して完全になかったことにした)"
渋川よしきさんのツイート: "githubのsquash and mergeするとハッシュが変わっちゃう?git pullしてgit branch -dで消すときにハッシュが違うと、違うブランチ扱いになって強制削除じゃないとダメになるのかな・・・"
INADA Naokiさんのツイート: "squash はまとめた別コミットを作るのでハッシュ変わりますね。1コミットだけのプルリクをハッシュ変えずにマージしたいなら rebase and merge 使うのかな。 master が1つでも進んでたら rebase もハッシュ変わるので、 -D になれるしか無いかと。… https://t.co/4OHb6teyDZ"
INADA Naokiさんのツイート: "Github上でマージ後にプルリクのブランチを消して、git fetch methane --prune して、 deleted branch があったら git branch -v して git branch -D するという習慣を付けてます。もう少しうまくやりたい気持ちはある。… https://t.co/4YrVReKx3p"
渋川よしきさんのツイート: "git rebaseでコンフリクト →修正しているうちに乗ってきて、rebase中なのを忘れて作業してコミット(detachヘッダー発生) →git checkout →コミットが虚空に消える"

@msdmairitan

Masaru Iritaniさんのツイート: "Windows ソースコードが Git に移行しました。計画を最初に聞いた時には夢物語のように思えましたが、日本の開発チームでもあっという間に Git が当たり前になったように感じます。 https://t.co/9ZYv3gvwRZ"
Masaru Iritaniさんのツイート: "因みに Git の前は Team Foundation Server ですらなく、Source Depot と呼ばれる内製の集中型バージョン管理システムを使っていました。社外の豊富な情報が活かせるのも Git の大きな魅力です。"
Masaru Iritaniさんのツイート: "GVFS で Windows のリポジトリを複製中です。Git が導入されてから開発ツールの更新も早くなったので、嬉しい反面追い付くのが大変です。"

@blackenedgold

κeenさんのツイート: "コミット、ほぼ -mでやってる。むしろ複数行に跨らないといけないのはコミットが大きすぎるから分割しろって習った。"
κeenさんのツイート: "そういえば世の中にはコマンドラインからgitを使わない人がいるらしいですねって言おうとしたけどgitって-m付けなかったらデフォルトでエディタが立ち上がるんだっけ。"
κeenさんのツイート: "commit前にgit diff --cachedしてた"

@kazuho

Kazuho OkuさんはTwitterを使っています 「規模というより、正確にはブランチの構成の複雑度によるんじゃないかなぁ。squashは特に、コミット粒度が大きくなって元の変更の意図が曖昧になるので、必然性がない限りやらないほうがいいと思う」 / Twitter
はむこさんはTwitterを使っています 「色々言われて「大規模 OSS で cherry pick と revert がしにくくなるので、メンテナが泣いちゃう」は非常に理解できた。 僕も割と泣く係なんですが、隕石級確率の泣き案件のために、毎日の commit コストを上げるとのは、チーム全体の機動性が下がって生産性への影響があるかなというイメージでした。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、なぜpr単位でcherry-pickしたいかっていうと、master以外にもリリース用のブランチが(場合により)複数あって、バックポートが大量にあるからなんだと」 / Twitter
Kazuho OkuさんはTwitterを使っています 「github flowで開発してる分にはrebaseもsquashもなくて大丈夫だと思う。first-parentだけ辿ることは大抵のgitコマンドで可能だし。フローが違うと、、、(ツイートはここで途切れている)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「PRレビューがしやすいように、PR作る段階でコミット群が汚いなら整理してもいいと思う。やっちゃダメなのは、PRレビューが始まった後にforce pushとかrebase。文脈が消える」 / Twitter
Kazuho Okuさんのツイート: "まさか-mで一行コミットログとかしたことのない真面目クンなの???"
Syohei YOSHIDAさんのツイート: "git commit -mでエディタを立ち上げないというより, みなさん git commit -vで差分を見ながらコミットメッセージを書かないのかしら ?"
Kazuho Okuさんのツイート: "git checkoutで別のブランチにうつるときに、submoduleのバージョンも切り替えてくれるハックってないのかな"
hkobaさんのツイート: ".oO(… --recurse-submodules …?)… "
Kazuho Okuさんのツイート: "ありがとうございます!!!!! gitをアップデートしながら… "

画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
2014-onward.pdf

Git - リベース
Gogs
Git - タグ
Git - Git as a Client
リリースプロセス | Yarn
Git チュートリアルとトレーニング | Atlassian Git Tutorial

GitBook

プラグイン

GitBookで外部ファイルの読み込み | 技術文書をソフトウェア開発する話
azu/gitbook-plugin-include-codeblock: GitBook plugin for including file
練習問題の解答を折りたたんで表示できないか?(in HTML版) · Issue #63 · dwango/scala_text
ymcatar/gitbook-plugin-sectionx: A GitBook plugin created for you to separate the page into sections, and add buttons to allow readers to control the visibility of each section
gitbook-plugin-regexplaceを利用して、ブロックレベル要素でMarkdownを囲む - kmizuの日記
markomanninen/gitbook-plugin-regexplace: Replace (RegEx) page section texts with given substitutes
書いた文章をレビューしてGitHubにIssueを切るためのGitBookプラグイン | Web Scratch
GitbookIO/plugin-mathjax - JavaScript
gitbook-plugin-japanese-support
gitbook-plugin-mermaid-2の導入 - Qiita
mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita
ローカルにGitBookの環境を構築してmermaid.jsをプラグインで導入する | つくるログ
gitbookのmathjaxプラグインが突如動かなくなる - in neuro

Qiita

GitbookとGithubを連携して電子書籍を自動Publishする方法 - Qiita
GitBookローカル開発環境セットアップ - Qiita
GitBook MarkdownからPandoc+LaTeXで美しいPDFを生成する - Qiita
[GitBook] GitBookから生成されるPDF・HTMLのデザインを変更する方法 - Qiita
Gitbookインストール - Qiita
GitBookでAnkerを使ったLinkのURLを使えるようにする - Qiita
GitBookで体制図を書きたい - Qiita
gitbookを使ってみてわかったこと - Qiita
AsciiDoc入門 - Qiita
GitBookのPDF出力で日本語フォントをIPAGothicにする - Qiita

GitBook
What is GitBook - GitBook
GitHub - GitBook
GitbookIO/gitbook: 📝 Modern documentation format and toolchain using Git and Markdown
mizunashi_mana/TIL/tools/doc-aboutgitbook - 電気通信大学MMA
Markdown · GitBook Toolchain Documentation
Configuration · GitBook Toolchain Documentation
Plugins for GitBook
autocover | GitBook Plugins
Introduction · GitBook Starter Kit
Introduction | 技術文書をソフトウェア開発する話
技術文書をソフトウェア開発する話 - GitBook
GitBook Starter Kit - GitBook
Can I host my content on GitHub? · GitBook Help Center
Kindle形式の電子書籍(.mobi)を手動でデバイスへ転送してプレビューする方法 | Thinking Salad
gitbookで楽々ドキュメント作成
VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話
Gitbookで生成したファイルがGitHub pagesに無視される - in neuro
How to fix HTTP 404 on Github Pages? - Stack Overflow
ドキュメントは何で書けば良いのか - in neuro

Markdown

Mermaid

Takashi KawasakiさんはTwitterを使っています 「おや、今までMarkdown Preview Enhanced使ってたけど、GitHub形式の```mermaid しか対応してなくて、面倒なことをしていたんだけど、こっちだとAzure形式の::mermaidもサポートしているのか。」 / Twitter
稀Jr.さんはTwitterを使っています 「VSCode に "Markdown Preview Mermaid Support" がありあますね。編集はこれで十分かも。 https://t.co/axch2xz0cw」 / Twitter
Yoshiyuki NakamuraさんはTwitterを使っています 「@moonmile VS Codeで編集されたMermaidダイアグラムですけど、Wikiの方ではちゃんとグラフィカルに表示される手段があるんでしょうか? …と思って自分で調べてみたところ、一応ちゃんとあるんですね。これは良いなあ…😇 https://t.co/1iMlJIrQXn」 / Twitter
SimonKenyonShepard/mermaidjs-github-svg-generator: This project allows you to generate and render mermaidJS diagrams and automatically include them in github README files
稀Jr.さんはTwitterを使っています 「@nakayoshix chrome だと GitHub + Mermaid 拡張があって SVG 表示してくれたりします。 https://t.co/Hn09aLHs5g ↓の図は見えるはず。 https://t.co/gi6SuQILFw」 / Twitter
GitHub + Mermaid - Chrome ウェブストア
COCOAシーケンス図

slideship.com

slideship.com - Create a slide, ship immediately
Markdownで手軽にスライドが作成・公開できるサービス「slideship.com」が始動:ニュースリリース|gihyo.jp … 技術評論社

Marp

Marp - Markdown Presentation Writer
yhatt/marp: Markdown presentation writer, powered by Electron.
Markdown スライド作成ツール『Marp』の開発経緯裏話 - Speee DEVELOPER BLOG
Electron で Markdownプレゼン作成ツールを作って公開するまで - Qiita
無料でプレゼンのスライドをマークダウン記法で作成できる「Marp」 - GIGAZINE
marp - Google 検索

remark

Remark
gnab/remark: A simple, in-browser, markdown-driven slideshow tool.
Home · gnab/remark Wiki
Remark使い方メモ(Markdown でスライドを作るやつ) - Qiita
markdown + remark.js + gh-pages でプレゼン資料を公開する - Qiita
markdownからスライドを作るツールを調べてみた - UNIX的なアレ
Remark.jsにMathJaxの数式を入れる方法 – はむかず!

reveal.js

reveal.js – The HTML Presentation Framework
hakimel/reveal.js: The HTML Presentation Framework
Reveal.js、Markdown、Githubでスライドを作成する。 - Qiita
hakimel/reveal.js: The HTML Presentation Framework

Marked

chjj/marked: A markdown parser and compiler. Built for speed.
Marked.js で Markdown をクライアント側でパースして表示する - Qiita
markdownをリアルタイムプレビューするWEBエディタを作ってみました(シンタックスハイライト、サニタイズあり) - Qiita
『marked.js』 を使ってブラウザ上で markdown を html に変換する方法 | phiary
JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会
Marked.jsを使って社内ドキュメントを書きやすくしよう! – cybozu developer network
node.jsでmarkdownからHTMLを生成する [2014-2-28 17:18]

highlight.js

highlight.js
marked.js で変換したコードを highlight.js でハイライト表示する方法 | phiary
コードのハイライト表示用 JS ライブラリ highlight.js の使い方 - Qiita
ソースコードをハイライトする軽量ライブラリ、Highlight.jsの使い方
highlight.jsを言語毎にカスタマイズして使う
highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適 | エス技研
highlight.jsを全ての言語に対応させる - ncaq
ソースコードをシンプルきれいにハイライト!highlight.jsを使ってみた | ぶちねこどっとうぇぶ
WordPress に Markdown と highlight.js を導入 – アカベコマイリ

markdown-headings

Markdownの見出しを抽出するツールを作った - EagleLand
markdown-headings
1000ch/markdown-headings: Get headings in markdown.

markdown-it

markdown-it demo
markdown-it/markdown-it: Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
Markdown it!
markdown-it
markdown-it - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
Node.jsでmarkdown-itを使ったMarkdown→HTML変換を行う - 情報アイランド
Markdownをクライアント側でパースする(markdown-it利用) - LionHeart SD BLOG
Markdown-Itで独自レンダリングする方法 – 踊る犬.netブログ (旧)

blog

Markdown in 2016 - Hack like a rolling stone
Markdownに目次(TOC)を表示させる - tsunokawaのはてなダイアリー
Markdownテキストを整形するAngular Markedとコードをハイライト整形するAngular Highlightjs (1/3):CodeZine(コードジン)
【レビュー】「Excel」の選択セルをMarkdownのテーブル記法でコピーできる「CopyToMarkdownAddIn」 - 窓の杜
Big Sky :: GitHub 等で Markdown に画像を貼る時は代替テキストを意識しようと思った。
k16's note: Markdown原稿をGitHubで管理して本にする仕組みが出版社で導入されないわけ
k16's note: TeXと10年戦ってわかったこと
AlminのサイトをOSSドキュメントツールのdocusaurusで作り直した | Web Scratch
機能紹介 - HackMD
Markdown+CSS組版での技術系同人誌制作時の環境 | 吉川ウェブ
MKDocsを使ってFPGA開発日記の記事まとめページを作り直した - FPGA開発日記
MarkdownエディタならTyporaが最強であるという話 - FPGA開発日記
Markdown ブロックの WikiWikiWeb 方式での書式変換 - Tociyuki::Diary
Markdown ブロックの WikiWikiWeb 方式での書式変換 (その2) - Tociyuki::Diary
Markdown ブロックの WikiWikiWeb 方式での書式変換 (その3) - Tociyuki::Diary
大量のテキストを食っても速い Markdown Editor 作った - mizchi's blog
MarkdownBuffer の実行時間の計測とパフォーマンスチューニングの余地 - mizchi's blog
mdbuf v1.0.0: 最高の Mardkown Preview を目指して - mizchi's blog
Markdown コードブロックの JavaScript を bundle して実行するエディタを作ってみた - mizchi's blog
MDX eXtended = MDXX | AMP対応 Markdown Compiler と静的サイトジェネレーター - mizdev

Qiita

Qiita - Markdown記法 チートシート - Qiita
GitHub Markdown + TeX記法で数式を任意の位置で合わせたい - Qiita
GitHub Markdown + Tex記法で任意の数式番号を書きたい - Qiita
GitHub Markdown + TeX記法で数式に空白を入れたい - Qiita
Markdownテキストでシーケンス図とフローチャートを描く - Qiita
マークダウン中にコメント行を入れる - Qiita
Markdown文法まとめ - Qiita
GitHub Flavored Markdown は何であって何でないか - Qiita
CommonMark
CommonMark Spec
A formal spec for GitHub Flavored Markdown - The GitHub Blog
GitHub Flavored Markdown Spec
QiitaやGitHubのコメントで折りたたみ要素を作る方法 - Qiita

GitHub

README.mdファイル。マークダウン記法まとめ | codechord
markdown-cheatsheet-online
higuma/markdown_cheat_sheet: Markdown cheat sheet
markdown-memo/markdown.md at master · owlat7/markdown-memo
OS作れないマンさんのツイート: "Atomのmakrdown-previewが使っているライブラリを使う手もあるか?https://t.co/vEBD63YBKL"
gjtorikian/roaster: Turns a raw and crunchy Markdown file into nice and smooth output
syntax-tree/mdast: Markdown Abstract Syntax Tree format
github/markup: The code we use to render README.your_favorite_markup
remark - markdown processor powered by plug-ins
wooorm/remark: Markdown processor powered by plugins
EFMarkdown on CocoaPods.org
EyreFree/EFMarkdown: A lightweight Markdown library for iOS.
commonmark/cmark: CommonMark parsing and rendering library and program in C
thlorenz/doctoc: 📜 Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.
joeyespo/grip: Preview GitHub Markdown files like Readme locally before committing them.

Twitter

おそろしく速い手刀さんのツイート: "MarkdownコンパイラがGithubと違う動きをする!このMarkdownはクソ!って言うまえに、Github Flavored Markdown という規格がいかに Commonmark から逸脱しているかをな…"
( ꒪⌓꒪)さんのツイート: "markdown でコマンドラインのコードハイライト指定する時に ```sh より ```console の方が良いという知見を得た。 https://t.co/PgYsVYYRXy"
ドッグさんはTwitterを使っています 「Issue や PR に何か stats をコメントするタイプの bot でコメントを適宜更新する必要がある場合,生成する markdown テキスト内に <!-- ... --> で bot 向けの情報を JSON あたりで埋めておくの良さそう」 / Twitter
広江 克彦さんはTwitterを使っています 「文中の改行は無視してくれればいいのに、ブラウザが半角スペースとして表示してくれてしまうのはCSSで制御できるのだろうか?」 / Twitter
yoh2さんはTwitterを使っています 「Markdown もこれなので、そのままでも読みやすいようにと適宜改行を入れてるとレンダリング結果にポツポツ空白が挟まって残念な気持ちになる。」 / Twitter
yoh2さんはTwitterを使っています 「改行前後の文字種 (行頭の空白は無視) によって空白を入れるかどうか判断するようになるといいのかな。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「脚注をサポートしているmdの実装そのものは、Markdown Extra、Pandoc’s Markdown、Kramdownなどなど、たぶん有名どころがかなりある(ところでCommonMarkの脚注の現状はどうなってるんでしょうか…?)」 / Twitter
ドッグさんはTwitterを使っています 「ついでに GitHub の markdown の描画のバグも見つけた. a <!-- -- --> この行でなぜかコメントがそのまま描画されてしまう.コメント内の -- を削除すると正しく動くので,コメントのパースのミスかな」 / Twitter
ドッグさんはTwitterを使っています 「仕様見る限りでは -- は含んで良さそうに見える https://t.co/9rYbYED8fA コメントの中のテキストが <!- で終われないのと -> で始まれないの知らなかった」 / Twitter
HTML 5.2: 8. The HTML syntax
ドッグさんはTwitterを使っています 「結論から言うとこれは仕様だった.HTML 5.2 までに仕様変わったのかな? CommonMark の仕様には -- は含んではいけないと明示的に書いてあった > An HTML comment consists of <!-- + text + -->, ...(省略)... and does not contain --. https://t.co/tbbSWAgEvT」 / Twitter
ドッグさんはTwitterを使っています 「"does not contain --" の後に HTML5 spec へのリンクが載ってるけど,そのリンク先にも -- を含んではいけないとは書いてないので,多分どこかで変わったんだろうなぁ」 / Twitter
ドッグさんはTwitterを使っています 「HTML 5.1 → 5.2 の間で変わったのか.5.1 では -- は含められない仕様になってた https://t.co/xJzQODmbbv > nor contain two consecutive U+002D HYPHEN-MINUS characters (--)」 / Twitter
HTML 5.1 2nd Edition: 8. The HTML syntax
HTML Standard
ドッグさんはTwitterを使っています 「例えば今回の <!-- -- --> みたいに markdown として不正な文字列に対してレンダラがどう動くべきなのか謎い.今回のだと,テキストの後だと一連のテキストノードとして扱われて,行頭とかだとコメント扱いになってる(コメントの終端が無い扱い?)っぽいのでパーサの気分次第にみえる」 / Twitter

CommonMark Spec
Markdown Variants
RFC 7763 - The text/markdown Media Type
Daring Fireball: Markdown Syntax Documentation
Markdown - Wikipedia
StackEdit – In-browser Markdown editor
Simplenote
なぜScrapboxはMarkdownを採用していないのか - 増井俊之
Kibela キベラ| 人と情報に自由を|個人の力を組織の力にする情報共有ツール

GitHub Actions

@Linda_pp

ドッグさんはTwitterを使っています 「GitHub Actions で CI 用の ci.yml とリリース用の release.yml があるとして,ci.yml の全てのジョブが pass した時だけ release.yml のジョブを走らせるってできなかったっけ…」 / Twitter
AximovさんはTwitterを使っています 「@Linda_pp workflow_run を用いたつなぎ方ができます。ただし、このやり方だと ci が pass しなくても completed の時点で release が走り始め、 release の中で ci の conclusion をチェックすることでほぼ同じことを実現している点にご注意ください。 https://t.co/ucsfIZeTHn」 / Twitter
【GitHub Actions】workflow_runで呼び出し元のworkflowの結果を取得する - Qiita
ドッグさんはTwitterを使っています 「GitHub Actions,::set-env コマンドは廃止予定か.代わりに GITHUB_ENV 環境変数で指定されるファイルに値を書き込まないといけない https://t.co/VrMy4t2ic5」 / Twitter
Workflow commands for GitHub Actions - GitHub Docs
ドッグさんはTwitterを使っています 「Rust のバイナリを GitHub でリリースするワークフローできた(Windows 32bit/64bit, Linux 32bit/64bit, macOS 64bit) https://t.co/4oCGy294VA https://t.co/1nAvDg4ble Windows でも Bash 使えるの知らなかった… workflow_run はまた今度」 / Twitter
git-brws/release.yaml at master · rhysd/git-brws
fix archive file names on release · rhysd/git-brws@8af5637
ドッグさんはTwitterを使っています 「GitHub Actions の on.push.tags の記法良くないなぁ.多分これ最初は普通の glob 記法だったけど,後からもっと詳細に指定したくなって正規表現ぽい記法を追加した感じ…」 / Twitter
ドッグさんはTwitterを使っています 「ワークフローファイル分割しなければ,タグ打った時かつテストが成功した時だけリリースジョブ走らせるのできるな if: ${{ startsWith(github.ref, 'refs/tags/') }} && ${{ steps.test.conclusion }} == 'success'」 / Twitter
ドッグさんはTwitterを使っています 「GitHub が GitHub Actions から標準出力経由のコマンド (set-env とか add-path とか) を急いで削除してるのこの件かな.Project Zero で指摘されてたのか | '2070 - Github: Widespread injection vulnerabilities in Actions - project-zero' https://t.co/3d2O3E2xjx」 / Twitter
2070 - Github: Widespread injection vulnerabilities in Actions - project-zero
ドッグさんはTwitterを使っています 「別にこのコマンドの仕組みが脆弱性を抱えてるわけじゃなくて,標準出力に信頼してないコンテンツを出力するワークフローをうっかりつくってしまうと,第三者がコマンド実行できてしまって脆弱性の温床になるという話」 / Twitter
ドッグさんはTwitterを使っています 「例えば actions/stale という GitHub 公式の action はこれに由来する問題がある.この action は issue のタイトルを標準出力に出すので,タイトルに悪意あるコマンドを仕込むことができる」 / Twitter
ドッグさんはTwitterを使っています 「ちなみに action 作者は actions/core のバージョンを対策済みの v1.2.6 に上げると良いはず.例えば core.setEnv() はワークフロー実行時にしか分からない場所に置かれたファイルを経由して環境変数をセットする仕組みになってる」 / Twitter

Actions | GitHub
actions/virtual-environments: GitHub Actions virtual environments
GitHub Actionsのワークフロー構文 - GitHub ヘルプ
ワークフローをトリガーするイベント - GitHub ヘルプ
GitHub Actions + github-pr-release でリリースノート生成を自動化する - Qiita
uiur/github-pr-release: Create a release pull request using GitHub API
GitHub Actions のリリース手順を自動化する GitHub Actions | Technote
GitHub Actions上での自作Actionsリリース自動化をシンプルにしてみた - Qiita
Github Actionsを使ってリリース作業をちょっと楽にした話 - コネヒト開発者ブログ
GitHub Actions でデイリービルドしてリリースする - めるぽん - Medium
Github ActionsでクロスコンパイルしてGithub Releaseにアップロードする - c-bata web
今更github actionsでcmake + boost unit_test_framework - in neuro
Kazuho OkuさんはTwitterを使っています 「github PRのsuggestion、ドキュメントだと便利だけど、コードだとうっかりcommitして動かないーってなりがち」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なにがいいたいかというと suggestion でも CI まわすように設定したい」 / Twitter
virtual-environments/images/win at main · actions/virtual-environments
Koichi ITOさんはTwitterを使っています 「"RuboCopに限らず、フォーマッターによるコードの自動修正は「git-blameが汚れる」という難点があります。しかしGit 2.23から--ignore-revs-file オプションで指定したファイルに列挙されたコミットを無視できるようになりました。" https://t.co/drfoKJ7bfZ」 / Twitter
たまってしまった .rubocop_todo.yml をGitHub Actionsで継続的かつ自動的に倒す方法 - STORES Tech Blog
Kazuho OkuさんはTwitterを使っています 「へー GitHub Actions の CI で、問題が発生した箇所を PR review comment に投稿するよう設定できるか。便利や」 / Twitter
FUJI GoroさんはTwitterを使っています 「しかもunchaged fiesにまでつけられる。すばらしい。 https://t.co/RoFWl1XBfQ」 / Twitter

Releases

GitHubのリリース機能を使う - Qiita
GitHubのリリース(Releases)を削除する - Qiita
GitHubのAPIを使ってReleaseの最新バージョンを取得する - Qiita

Draft

そな太@GraphQLはいいぞさんはTwitterを使っています 「Githubで作業中のPRのタイトルにWIPを入れる文化は根強いけど、今はDraft機能を使った方が良いです DraftはMergeがブロックされます https://t.co/wMhOmchZwj」 / Twitter
そな太@GraphQLはいいぞさんはTwitterを使っています 「Slack連携しているとReady for reviewの通知も届きます」 / Twitter
qwerty2501さんはTwitterを使っています 「Draft使えないプラン契約してる会社もあるんですよ」 / Twitter

不適切な名称

Easily rename your Git default branch from master to main - Scott Hanselman
VMwareがコネクターの「オス/メス」表記を非推奨にするとの報道 | スラド ハードウェア
ゆうくさんはTwitterを使っています 「git 2.28 がリリースされて init.defaultBranch が追加されたらしい。git init で最初に作られるブランチ名を master から変えられるやつ。 https://t.co/fcG82vjppd」 / Twitter
Highlights from Git 2.28 - The GitHub Blog
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もう英語を避けようぜ。 git push origin master のかわりに クソ野郎 突き倒す お前 俺 にしよう。」 / Twitter
ギズモード・ジャパンさんはTwitterを使っています 「Github、人種差別を連想させるコーディング用語の見直しへ https://t.co/1EaS8H8esF」 / Twitter
Github、人種差別を連想させるコーディング用語の見直しへ | ギズモード・ジャパン
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「クソ野郎 侮辱 クソ野郎 状態 頭 もがれたぞ」 / Twitter
Twitter、コードやドキュメント内の用語「Whitelist/Blacklist」「Master/Slave」「Dummy value」などを好ましい用語へ置き換え、具体例も発表 - Publickey
Linuxカーネルでの「master/slave」と「blacklist」禁止、トーバルズ氏が承認 - ITmedia NEWS
Ichinose ShogoさんはTwitterを使っています 「すごい提案がやってきた 「"pull" はいじめに関連しており、気分を害する人がいるので、"pull request" を "get request" に変更しましょう」 https://t.co/VmLWY6PuM6」 / Twitter
Renaming "Pull requests" into "Get requests" by fengertao · Pull Request #15 · github/renaming
sksatさんはTwitterを使っています 「GitHubポリコレ部についていつも思うのは、「いやGitはいいんかい」ということですね」 / Twitter
sksatさんはTwitterを使っています 「ポリコレ部のみなさん、Linux Kernelの不適切なコメント除去活動などに参加されるとよいのでは。知らんけど。」 / Twitter
GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更 - Publickey
新しいGitHubリポジトリではmainブランチがデフォルトに

Compiler

Compiler Explorer
WebAssembly Studio
x86 and amd64 instruction reference
opv86
電子情報通信学会知識ベース |トップページ
QBE - Compiler Backend
https://cfallin.org/blog/
Parsing Algorithms | Hacker News
プログラミング言語を作る!?自作言語にハマる理由と"Shiika"のこだわり | Offers Magazine
2の補数表現をちょっと違った見方をしてみる - Fixstars Tech Blog /proc/cpuinfo
実行した命令数をカウントする - Fixstars Tech Blog /proc/cpuinfo

重点項目

その他

その他

プレースホルダとは - IT用語辞典
lifeLOG + REPOsitory: 2^64 (2 の 64 乗) って、どれぐらい?
スタック使用量の算出 | CS+ V4.01.00
ボックス化とボックス化解除 - C# プログラミング ガイド | Microsoft Docs
linux - ARG_MAX は何故必要?(あるいは、ARG_MAX はどう決まる?) - スタック・オーバーフロー
「Python 3.9」がリリース、Python 2からの脱却が加速:CodeZine(コードジン)
spaghetti stack - Google 検索
宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
等価変換型プログラムをかじる | Think IT(シンクイット)
時代は手続き型から宣言型に:アジアのソフトウェア開発現場にて:エンジニアライフ
手続き型から宣言型・集合指向に頭を切り替えるための7箇条
手続き型から宣言型へ・・・プログラムの書き方の違い - ウィリアムのいたずらの開発日記
宣言的プログラミングの「宣言的」って? - sh-2の日記

F#

F#メモ | teqblog
F# を知ってほしい - Qiita
[速報]マイクロソフト「.NET 5」正式リリース。1つのフレームワークでWindows/Mac/Linuxのデスクトップ、サーバアプリ、Webアプリなどが開発可能に - Publickey
ぶんちょうさんはTwitterを使っています 「win固有の.NET Frameworkがおり、どこでも動く.NET Coreがおり、それらの仕様として.NET Standardがいたけれど仕様なのでどうしても進歩が遅くなってしまうから、.NET 5として.NET CoreメインかつTFM(net5.0-win)などで.NET Frameworkの実装と仕様をマージみたいな カオスすぎるんだよな」 / Twitter

infoQ

Rustが1.39でゼロコストAsync/Awaitをサポート
Kotlinのコルーチンを実装面から検証する
クラウドネイティブコンピューティングのための新プログラム言語 Ecstasy
.NET FrameworkでC# 8とNull許容参照型を使う

POSTD

開発者が知っておくべきSOLIDの原則 | POSTD
13年分の未熟なゲームのコード | POSTD

"Reverse Engineering for Beginners" free book
TCD CS David Gregg
型 · The Julia Language
The Go low-level calling convention on x86-64 · dr knz @ work
burtonsamograd/sxc: sxc is an 'S-Expression C' transpiler for generating C code using macros written in Common Lisp
CompilerOverview
What killed Haskell, could kill Rust, too
esbasic02a - essen-wiki
プログラミング言語 Mud | プログラミング言語Mud
QueL
関数を作る
再帰 型理論 - Google Scholar
微分方程式と差分方程式(漸化式)
情報処理学会 線形論理 - Google Scholar
階層グラフ書換えモデルに基づく統合プログラミング言語LMNtal
関数型言語の操作的意味論 in Isabelle
「Amazon対抗馬」ともいわれるShopifyの効率的なシステム移行方法とは? - GIGAZINE
統語的曖昧性・普遍性判定問題の決定可能性
置換公理 - Google 検索
Phantom Type - Google 検索
Dominators に関する定理の証明
アラン・ケイの考えたオブジェクト指向を現存するオブジェクト指向言語で実現することは出来ないのでしょうか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
Callbackを撲滅した後に / Callback to Promise and beyond - Speaker Deck
Programming language wake
2010-07-09
RxJSの状態 - NgconfでのBen Lesh氏の講演
Mobx リアクティブ状態管理ライブラリバージョン 6がリリースされた

形式手法

TLA+

AWSにおける形式手法 - masateruk’s blog
2015-04-18 - つれづれ日記
TLA+ 入門 – Mile Zero
TLA+ - Wikipedia
PlusCALを試してみよう - みょらみょらPython日記
PlusCal - Wikipedia
PlusCal - Wikipedia
The TLA Home Page
Introduction :: Learn TLA+
TLA@FM2018: TLA+ Community Meeting
tlaplus/Examples: A collection of TLA+ specifications of varying complexities
TLA+ in Practice and Theory<br/>Part 1: The Principles of TLA+
Amazon | Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers | Leslie Lamport | Software Development
The PlusCal Algorithm Language
c-manual.pdf
The PlusCal Translator
PlusCal :: Learn TLA+
The PlusCal Algorithm Language - Microsoft Research
muratdem/PlusCal-examples: Pluscal/TLA+ modeling of distributed systems/protocols
TLA+の社内勉強会スライド公開します - takaha.siの技術メモ
TLA+についての話
分散合意アルゴリズム Raft を TLA+ で検証する - 俺の Colimit を越えてゆけ

スライド

君の並行処理は実行するまでもなく間違っている #golangtokyo / golang.tokyo 20th - Speaker Deck
形式手法を使って、 発見しにくいバグを一網打尽にしよう - Speaker Deck
テスト駆動開発から証明駆動開発へ #JTF2019 / July Tech Festa 2019 - Speaker Deck
数理的システム設計 -ビジネスと技術制約をつなぐ手法- #ooc_2020 #ooc_a - Speaker Deck
「厳密な共通言語」としての形式手法 #devsumi / Developers Summit 2020 - Speaker Deck
Pony concurrency built into the type system
talk1p.pdf
形式手法ってなんだろう? - Speaker Deck
「形式手法ってなんだろう」について - べにちどりの勉強記録
π計算
安全性-活性分解定理とその関連研究 #wsa研 / Web System Architecture Society 7th - Speaker Deck
安全性-活性分解定理とその関連研究 - チェシャ猫の消滅定理

Twitter

並行システム設計検証-1

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「並行システムの設計検証入門セミナー 3月28日(土) コンピュータを応用したシステムの多くは計算だけでなく他者との通信が仕事です。通信するシステムの仕様をどう表現するか、設計が正しい基準は何か、どう検証するか、これらの考え方とツールによる技法を紹介します。 https://t.co/KfGn6KraTD」 / Twitter
並行システムの設計検証入門セミナー - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「つるかめ算や流水算のような難しい考え方をしなくても連立方程式を使えば解けるように、マルチスレッドプログラミングも理論とツールを使えばかなり見通しよくなる。だから理論を見てみませんか? 武器を持たずにマルチスレッドプログラムと戦うのは微分方程式を使わずに物理をやるみたいに思えます。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「あ、自分が高校生のころは微分方程式を使わずに物理をやったんですけど、いまはもしかして違うかも? 物理は2年生でやって、微分方程式は3年生の数学の最後の方だった。関係ないけど数学で出てくる運動の問題は単位が書いてなくて気持ち悪かった。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「おかしな"算数"の話をよく見かけるけど、改めて思い出してみると高校の物理もかなりひどいんじゃないかと素人ながらに思う。微分方程式を避けて、第1積分やバランス、運動の記述を天下りで与えて、あとはそれらを使ってできることだけやる。後半はいいとしてもそもそも問題を解くスキームが理解文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「話を戻すと、マルチスレッドプログラミングは難しいから教科書に出ているとおりのことだけやれとかライブラリを使え自分で書くなとかいわれたりするけど、実際の応用では改変が必要なこともあるし、マルチスレッドの問題はスレッドの"間"で起こるのでパターンやライブラリを使えば解決するわけでもない」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「だから、そういう消極的なアプローチじゃなくて、考えたことや書いたコードが正しいと確信を持てるような考え方(理論)と武器(ツール)を持とうという話です。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「まあ、自分としては積極的に力説する必要は特にないんですけど、興味を持ってくれた人が参加してくれて、面白いと思ってくれたり、それについて話をしたりするのは楽しいということだけです。ざっと検索したところ、大学のカリキュラムでもやっているところはあまりなさそうだし貴重な機会とは思います」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「使うツールはこれです。 https://t.co/KlQ2WCspUe」 / Twitter
hatsugai/SyncStitch: A Refinement Checker based on CSP
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「macOS 版のビルドはありえないくらい古い環境(MacBook Pro 2010 + High Sierra)でやったので、いまどきの機種/OSで動くかどうかわかりません。自分でビルドするのがいいと思います。配色とか変えられえるし。手順で困ったら質問してください。」 / Twitter

並行システム設計検証-2

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「設計モデル上で検証する。テストでは無理… https://t.co/DP2G0cA9AY」 / Twitter
yoh2さんはTwitterを使っています 「非同期というか、並列処理でレース条件による不具合がないことを確認するテストってどうやればいいかいまだにわからない。 手作業にしろテストコード書くにしろどうにもタイミング制御しきれないからひたすらぶん回してコケなきゃOKなんて雑テストになりがち。」 / Twitter
鯉江さんはTwitterを使っています 「@hatsugai @yoh2_sdj テスト対象の外側(環境)のモデルもつくらないといけないのがつらいです。 メモリアロケートしようとしたら逼迫しててブロックされてぐるっとまわってメモリフリーしろってイベントがあがってきたけど処理できなかったりとか..」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「マルチスレッドで苦労している人はちらほら見かけるのだけど、届かなくてもどかしい… ギャップもあるのかも。どう見えるのか正直わからない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「もちろん手法もツールも万能ではなけど、それで救えるケースがあることも確か。敵を知り、武器を知って適所で使う。そゆこと。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「何がどう問題なのかきちんと理解して、その上で対処方法を身に付けたいなら並行システムの話を聞いて欲しいし、なんでもそうだけど聞くだけでは消化できないので実際にツールを使って欲しい。でもギャップがあるのかと思って入りやすいように工夫したのがデッドロック発見器を作るシリーズなんだけど…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器から進化させたトレース比較器を、さらに非決定的な振る舞いまで比較できるように分解能を上げる方法について説明するのは、トレース比較器まで実装した人がある程度増えてからにしようかと思って。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ある参加者から、トレース比較とモデル検査を統合というか融合することはできますかというするどい質問をもらったことがあったのだけど、fluent というのを使うとできる。そもそも仕様の段階で認識すべき状態というのは何かということを考えさせられるという点でも面白いんだ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「そいえばインタフェイスの話をするときに「状態が…」というと「インターフェースの話なんだから状態は出て来ないでしょ」といわれた苦い経験があるのだけど、いまはそうでもないんかな?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「モデル検査もそうだし、特に定理証明支援ツールによる形式検証がそうだけど、できることに限界があるのは当然なのでできないことはあるわけだけど、それを学ぶ過程で自分自身が鍛えられるという点が実はとても大きい。手法やツールを使わなくても身についた考え方が開発で役に立つ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「えらそうなことばかりいっていつもすみませんって感じなんですが、流れでもう1つご容赦。ちょっと面白いかもと思った時にやる人とやらない人がいる。あたりまえ。やる人は確実に力をつけていった。たくさんみた。でも多くの人はやらない。ずっと見て来てそうでした。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「もちろんそれ自体が社会的なしくみなんだろうと思ってます。」 / Twitter

証明

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「証明の長さが話題になってるようですが、形式証明は自然言語で書いた証明よりは長くなるでしょう。自分がやった例だと、CSP の表示的意味論と操作的意味論の等価性証明は Isabelle で 8,500行あります。自然言語ではスケッチしか書いてないけど、書いたらたぶん数ページかな https://t.co/sppc98Cz82」 / Twitter
hatsugai/CSP-semantics
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Emacs のキーバインドで C-c C-k a で "apply(auto)"、C-c C-k r で "apply(rule " 等20個くらい定義してて、体で覚えていて考えることに集中できるので、それで Isabelle 2014 + Emacs + ProofGeneral から離れられない。C-c C-d でカーソル位置にある定理名の thm、これが特に有用。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Coq は仮定に名前つけられていいよなあ。Isabelle でもできるようにして欲しい。Coq の専門家さんがよくいってたけど名前重要。Isabelle の証明がバージョンアップで通らなくなるのもそれが多い。rotate_tac を使う自分が悪いけど。」 / Twitter
みょんさんはTwitterを使っています 「@hatsugai Pure logicのimplicationの仮定限定ですが、Isarで書けば仮定に好きな名前付けられますよ! assumes hoge: A and piyo: B shows C みたいな感じでかけて、[| A; B |] ==&gt; Cと等価です」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「@myuon_myon ありがとうございます。Isar はそこがいいですよね。」 / Twitter
みょんさんはTwitterを使っています 「@hatsugai 証明がリーダブルになるのはとても良いですね(手は疲れますが)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「@myuon_myon そうなんですよね。自分は力押しで証明できればいいや的なとこがあって、あとで自分でも読めなくなります…人の証明見るときれいだなあといつも思います。プログラムもなんですけどね^^;」 / Twitter

等式論理

いけべさんはTwitterを使っています 「等式論理証明補助ツールをつくっている。 REPL が組み込みで使える言語はうれしい。 https://t.co/1PcqKr81px」 / Twitter
等式論理
いけべさんはTwitterを使っています 「このまま進めてもいいんだけれど、その前に parser が欲しい。でも不慣れなので……」 / Twitter

histric-1

hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器は形式手法の中でも入りやすいと思います: 1.モデルがプログラムに近い 2.仕様も状態遷移で書ける:モデル検査器は時相論理が難しい 3.検査は自動:モデル検査と同じ.証明は難しい 4.仕様と実装の差が反例として示されるのでわかりやすい:モデル検査の反例は難しい.証明はもっと難しい」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「「形式手法」という言葉を使っているうちはまだまだということでしょう…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「「…が使われているうちは…」と書くべきだった…すみません.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様はプログラムの動作を規定するもので,テストではプログラムの動作が仕様と整合しているか個別のケースごとに確認しているわけだから,仕様もコンピュータで処理できる形にして網羅的に比較するプログラムを書いてしまおうというセミナーです.正当性とは何かを改めて考える機会になるでしょう.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器というのは仕様と実装の設計モデルを比較するツールです。仕様に反するところがあればレポートが出ます。それを見て設計を修正できるわけです。トレース検査器はその一種です。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 デッドロック発見器からはじまった作るセミナーシリーズの最終回。設計モデルが仕様を満たしているかどうかをトレースで網羅的に比較検査するツールを作ります。 https://t.co/ZHttN6rbOF」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様と実装を網羅的に比較して一致が確認できる、または違いを突きつけられるというのは結構強烈な体験だと思います。さらにそれが自分で作れるとなれば楽しくないわけがありません。アルゴリズムの骨子はグラフの探索です。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器のことをトレース検査器って書いてしまった、あーあ。まいっか。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「ものを数えたり番号をつけたりするときに,常に 0 based を使うように気をつかっていたのに,ふと油断したときに「1,2,...」といってしまい友人に( ̄ー ̄)ニヤリと笑われたことを思い出してしまった.TeX の enumerate ですら 0 にしてたのにー! ところで仕様記述言語はどうして 1 based なんだろ…」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月23日(土) 自分の好きなプログラミング言語でプログラム検証器を作るハンズオンセミナーです。プログラムの正しさを証明する理論である Hoare 論理を解説します。SMT solver Z3 を使って証明を自動で行います。 https://t.co/BCzAL1dZtu」 / Twitter
プログラム検証器を作って学ぶ Hoare 論理 - connpass
tabasconianさんはTwitterを使っています 「oO(以前社内で使った形式仕様記述についての資料の焼き直しを晒しておこう・・・ https://t.co/7whT8Y21iU)」 / Twitter
yksym.github.io/memo.md at master · yksym/yksym.github.io

histric-2

hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「自分で作らなくても既存のツールを使えばいいと言っている人を見かけた。適したツールを使うのはもちろんだ。でも理解のために作るというのもある。自分で作ってみると理解の深さが違う。わかってなければ作れない。いろいろ考えさせられて力がつく。記憶に残る。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「モデルもガンガン書いてみればいいわけで。間違いだろうが的外れだろうかかまわない。視覚的にフィードバックがかかるからあちこち変えてみたくなる。するとさらにいろいろ見えてくる。手を動かした分だけ知見が得られる。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「目的のためにフレームワークやライブラリで言語を選ぶ時代(?)。じゃあ遊びなら好きな言語でなんでも書いてみたらいいんじゃないか。ついでに言語も作って処理系も作ってしまえ。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「考え方を習得するのはいつも難しかった.距離・時間・速さの計算,分数の計算,方程式,幾何の証明,濃度の計算,微積,物理などなど.型を身につけるって感じだった.それがわかるのはわかったあとだけど.プログラミングにも型があるだろう.端的にいえるか?.プログラミングの型を持っているか?」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「BASIC を卒業したあとはわからないことだらけだったなー。再帰、レコード、ヒープ、マクロ、クロージャ、継続、仮想関数…。8080 の機械語から入ったからポインタでは苦労しなかった。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「何かを作ったり問題を解決したりするとき、まず考えることはゴールを明確にすることだけど、プログラミングのゴールを明確にするってなんだという話。過程もそうだし、表現も。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「形式手法を始めるなら、定理証明支援ツールを使いながら述語論理を勉強するところから始めるのがおすすめ。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールのライブラリを読んでいると数学の定義そのままに記述されていて、あたりまえなのだけど「ほんとにいいの?」という気持ちになる。少しの不安と圧倒的な力に対する感動が入り混じった感じ。そう感じるのプログラミング的な考え方が思考を制限しているのではとの不安もある。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「あまりにも長い時間プログラミングばかりしていたので、実現可能なことばかりを考える手続き脳になってしまっているのではないかと思う。実際、数学の問題を手続き的に考えていたことに気付かされたことが何度かあってショックを受けた。プログラミングでも対象の宣言的な性質に着目する必要があ文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間的に変化するプログラムの状態を状態間の関係として記述するという形式仕様記述の考え方は、時間的に変化するものをどうやって静的に表現するかという問題への解の1つ。同様に時間的に変化する物体の運動を無限小時間の前後の関係として表現する運動方程式と同じ。運動が静的な関数で表せる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「じゃあプログラムって何?命令的なプログラムと関数的なものと Prolog みたいなものは何が違う?それらと仕様は何が違う?プログラムの"意味"って何?検証とかテストっていったい何?」と問いが進んで一周回ってくるとちょっと高いとこにいる感じ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムが状態の時間的変化を記述しているんだったら、どうしてその表現形式なのか?それのどこがいいのか?もっといいものはないのか?という疑問がわく。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「大まかな話、対象としている問題領域によって何を状態とするのが適切かが異なり、その状態の形によって変化の形も違う。だから状態と変化の形に合わせた記述要素と組み合わせ方法のセットを選ぶ。これだけではまだ選択の余地があって、さらに他の要求から選択を進める。その要求とは設計論的なあ文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「形式手法は汎用の技術で、各応用分野での技術とはほぼ直交するから組み合わせれば開発をブーストできる。独学もできるけど話を聞いた方が効率がいい。それ以上に話をするとブーストのヒントが得られたりアイデアが発火したりする。だから興味ある人にはセミナーに来て欲しいけど今は難しい状況な文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「システムの振る舞いは外部から観測可能なものに基づいて表現される。つまりシステムは"外見で判断"される。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器をトレース比較器に進化させた人で、さらに非決定性の識別ができるところまで作ってみたいという人はどれくらいいるだろうか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様には様々な面があるけど、その中で振る舞いに関する仕様については十分に記述されることがほとんどない。記述した場合はプログラムと2度手間になっている感が強い。じゃあ不要かというとそんなことはない。仕様側の抽象度を上げることと、プログラムの被分析性を上げることがポイントだと思う。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「分散システムにおけるコンセンサスアルゴリズムの正当性証明 with Isabelle/HOL by Martin Kleppmann https://t.co/1jcO7O6FOM」 / Twitter
Consensus_Demo.thy
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Actor に近いモデルだけど、configuration の構成要素であるメッセージプールにはメッセージ溜めっぱなし。受信の際に削除しない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ギルドの扉を叩いた初心者冒険者は偶然 "Hoare Logic" という名の強力な魔力を宿した剣 "Isabelle" を手にしてしまう.ガイドの元,最大値・絶対値スライム討伐から訓練を始め,2分法のスキルを習得し,ラスボス2分探索に挑むって感じで,セミナーは参加型エンターテインメントなわけですよ.イタイ…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「本を読めばわかる人はそれでいいんじゃないですかね.あ,感じ悪いな…まあとにかく,自分自身を訓練する,自分に投資するという人,導入はガイドを雇って効率よく進めた方がいいという人に参加して欲しいと思います.ハイ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「(心が荒れててよくない…)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(並行合成器)を共有変数とメッセージ通信で両方作って見た人は違いがよくわかったんじゃないかな(といいな)。相互作用を決めると合成できるというのが面白い。メッセージ通信で共有変数を作れるのも面白い。物理的なメモリは実際そうだし。では逆は?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「アクターモデルが好きな人はそれを基本相互作用として並行合成器を作ることもできる。でもメッセージプールが無限に膨れ上がるのでシミュレーションはできるけどモデル検査はできない。振る舞い全体の可視化は一般には無理。定理証明支援ツール上でモデル化すれば無限でも扱えるので性質を調べられる。」 / Twitter

histric-3

Kohei SuenagaさんはTwitterを使っています 「数学的ゾンビ:定義とステートメントが与えられると証明支援系を動かして証明はできるが,これらのお気持ちは分からない者のこと.」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Alloy を使うときの考え方とプログラミングのときの考え方の何がどう違うのか、なぜ違うのか、どうやって橋渡しするのか、といったところを自分なりに整理しておきたい気持ちはある。あとの方は多分に認識・解釈の問題ではあるけれど。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メモリ上でポインタでつないで作った構造をまとまりとして1つの値として考えるってことと対応づけると面白いかな。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様記述のメジャーな2つのスタイル(というと他の手法の人に怒られるけど)のうち、状態を中心に考える手法で、状態遷移を状態間の関係として記述する技術を必要としている人(自覚の有無にかかわらず)はいると思うので、紹介する機会を作りたいと思っている。問題はいつものように前提知識に文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「もう1つの相互作用に着目する方は通信の時代で応用がたくさんあるのにマイナーな印象で残念。大きく2つの柱からなるので分けることもできるけどやはり一緒の方がいいと思う。そうすると並行システムっていう名前になるのでこれがスルーされる原因なのかも。改題するか。そういう問題か?目的のため文字」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「対象に合う表現形式を選ぶというごくあたりまえの話。よいものがなければ工夫するとか新しく作るとか。バランスをとるのは思ったより難しいのかも。自分はいまのとこ OCaml + 通信機構(CSP) でかなり快適だけど、うまく書けないものもある。たぶん自分が知らないだけ。O を使えばいいんだけど。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信編はプロセス代数を食べやすく調理したものなんですよ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle は計算機科学の教科書、例えば型システム入門にある証明を形式化できるくらいを目標にすると、inductive_set あたりまでガイドできればいいんじゃないかと思うので、まっすぐそこを目指すことにする。独立性の高い記述要素やメソッド、定理、証明技術などはそのあと肉付けすればいっかな。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「昨日質問が出た事前条件と事後条件をつなぐ話。例えばインクリメントの場合 {x = C} x := x + 1 {x = C + 1} と表す。事前状態での変数 x の値を表すために導入する、プログラムには登場しない変数 C のことを仕様変数という。つまり仕様変数を使って事前条件と事後条件をつなぐ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「事後条件に着目すると x = C + 1 は x' = x + 1 という書き方に対応する。事前を x 事後を x' にする代わりに、事前を C 事後を x にしたってこと。つまり修飾なしの変数が事前を表すか事後を表すかという選択。事後を修飾なしで、事前を修飾するという流儀もある(e.g. VDM)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「いずれの流儀にせよ、事後条件は(名前に反して)事前状態・事後状態間の関係を表す。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば変数 x, y の値の交換 swap の仕様は、仕様変数 A, B を使って {x=A &amp; y=B} swap {x=B &amp; y=A} と書ける。例題でやったやつ。プログラム書いて証明してみると楽しい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数編とは独立したセミナーです。共有変数編からの続きではありません。共有変数編の続編はモデル検査器へのバージョンアップです。メッセージ通信編の続編ではマルチスレッドプログラム全体の振る舞いを仕様と比較するトレース比較器にバージョンアップします。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの正しさを証明するってことは数学を通してプログラムの性質を見るってことで、プログラミング言語で考えるのと合わせて2つの見方を手に入れるってこと。1つと2つは大違いで2つあると比較ができる。同じように次はマルチスレッドプログラムを状態遷移グラフで見る。これもまた強力なんですよ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「設計という行為には4つの要素が考えられる:(1)問題を定義する、(2)解を求める、(3)解を実現する、(4)解であることを確認する。人によってどれが設計に入るか異なるだろう。解の表現が実現性の点で少なくとも2種あるところがポイント。解は解の候補であることもある。以上の認識は共有されるだろうか?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信版デッドロック発見器の背景にはプロセス代数があるので、作るといつのまにかプロセス代数の考え方が理解できちゃう。しかも共有変数とか非同期通信のモデル化もできるので強力。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版でメッセージ通信する例は抽象モデルだったけど、メッセージ通信版で作る共有変数+同期機構は十分詳細なモデル。もちろん前者でもやればできるけど。共有変数+同期機構でメッセージ通信ライブラリ実装するのとほとんど同じ。加えて検査ができる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合、本を読んで「証明完全に理解した」と思ったら、あと2回は「わかってなかった」→「こんどこそわかった」を繰り返すことになる。1度目は自分で証明を紙の上に再構成するとき、2度目は定理証明系で証明を形式化するとき。人に説明する機会があるときはさらに回数が増える。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援系の自動証明能力が向上してうれしい反面、理解していなくても証明できてしまうというおそろしい(?)ことも起こる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「そういうときは証明を"刻む"。自動証明機能を使わずに、定理と推論規則だけで証明を組み立てる。別のいい方をすると定理証明系を証明検査器としてのみ使う。これはまずわかってないとできない。でもガチャガチャやってたらできちゃったということもないわけではない…。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Hoare 論理と SMT solver Z3 を使ってプログラムの正当性を自動証明するプログラム検証器を作るセミナーを準備している.作ってみたらあまりに強力過ぎて笑ってしまった.Isabelle のセミナーで使った例がすべて自動で証明できてしまう.証明できない場合は反例が表示される.それを分析して修正できる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「土曜日はシステム開発で重要な次の点を解説する: (1) コンポーネントの振る舞いを明確に記述する記法と意味 (2) 明確に定義された基本相互作用によりコンポーネントの振る舞いを決めるとシステム全体の振る舞いが決まること (3) システムの振る舞いを期待する振る舞いと比較検証する方法(ツール)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「やはりこうして解説を書いてみても現状とのギャップは見えてこない。おそらくあたりまえとかすでにやっていることのように思われるのではないだろうか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの振る舞いモデルをツールに入れると、全自動で振る舞い全体を網羅的に比較して、差分があればそれを教えてくれる。これを体験してもらうしかないかも。にわたま。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「並行システム」というと「関係ない」と思われてしまうのだろう。相互作用を考えるということは少なくとも2つの実行主体があるわけで、したがって並行システムなわけだけど、それは置いても、継続的に動作するシステムの検証とは何かというもう1つ重要なポイントがある。明確に語られるのを見ない。」 / Twitter

histric-4

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月2日(土)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです.2分探索の正当性を自動証明する能力があります. #FormalVerification #FormalMethods #形式手法 https://t.co/my0H7ECxMK」 / Twitter
プログラム検証器を作って学ぶ Hoare 論理 - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「難しそうに見えるかもしれないけど、実は作ること自体は結構かんたんです.Scheme 版は 86 行しかありません.規則にしたがって計算するだけです.あとは SMT solver がやってくれます.自分で作って、いろいろな例で試しているうちに理解が進むという感じです。楽しいですよ。拡張もできるし。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle で正当性証明する前に反例がないかチェックしてみる、っていうくらい強力。セミナーで使う例題プログラムの正当性を Isabellle でチェックする前に自作検証器でチェックしている自分を発見した。Isabelle で散々試行錯誤してから実は仕様が間違ってたみたいなことを避けられる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メソッド(ふつう論理学の教科書だと導入と除去の2つだけど Isabelle は3つ)の使い方を理解するのが最初の壁で,それを乗り越えた後はほぼパズルです.これがかなり楽しいのだけど人によるか.問題もたくさん用意した.否定(~でない)が入っているやつはなかなか手ごわい.ふっふっふ.」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「哲学者の食事(改):デッドロックのある回避策を入れたらライブロック(発散)が起こる例 #SyncStitch #FormalMethods #形式手法 https://t.co/MULx4UGxzZ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器が作りかけの人は、ぜひ続きをやってモデル検査器にバージョンアップしよう! 計算木という考え方はわかりやすくて役に立つし、検査のアルゴリズムも面白いです。効率よりも面白さ&amp;実装しやすさ優先で選んだ。2種類の不動点と関係がある。 https://t.co/AUJrJFgfgU」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「OS やプログラミング言語のいろいろな同期・通信機構をモデル化してモデルライブラリにしとくと便利だけど、誰かやってくれという気持ち。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「並行システムというととても狭い領域の話として受け取られることが多い印象だが実際は並行システムじゃないものを探す方がたいへんなくらい。その認識のギャップが課題。検証のしくみについても同様。おかしなものだと個人的には思うのだけど、歴史を見るとよくあることなのかもと思わなくもない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「だからプログラミング言語についての話を見かけるとなんともいえない気分になる。20年前、40年前のトレンドと、その頃の人たちが何を言っていたかを知ると。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「明日というかもう今日だけど、非同期通信モデルの説明をするので気合いがいる。非同期通信モデルは不安定仕掛かり中間状態が多いのでデッドロックに至る最短パスが長くなりがちで分析がたいへん。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマが自由に決められるのは各スレッドの振る舞いだけ。各スレッドの振る舞いを決めた時、合成(結合)した結果が想定どおりになっているかどうかは自明じゃない(巨大な状態遷移グラフ)。だから (1) 合成を計算する (2) 想定どおりかどうか検査する; という2ステップからなってる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「手続きを P0, P1, ... としてそれぞれ状態空間での遷移関係として仕様が与えられているとする。共有変数の参照・更新も手続きとみなす。ラフに考えると、相対的に (1) 非決定性が大きい (2) 依存関係(事前条件、遷移構造)が複雑 (3) 手続きのパラメータによって大きく関係がかわる;あたりから。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「具体的な例を調べて精密化すればもう少し何かわかりそう」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月4日(月)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです。2分探索アルゴリズムの正当性を自動証明する能力があります。 https://t.co/G7m1euWOPS」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「SyncStitch 2 の資料を見返していたら、状態遷移図は描けるし、シーケンスチャートは出るし、見た目かっこいいし、並列検査で性能もいいし、S式だし、Scheme で実装だし、なんでこれやめちゃったんだっけという感想。 https://t.co/fd7e7N7dOM」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Version 3 で実装した fluent, CTL, LTL はそのうち version 4 にも移したいけど、広い意味での体力が… Version 1 のときは抽象状態とか表示マクロとかサブプロセスを指定して探査開始とか、もっと凝った機能もあった。はじめに複雑なものを作ってしまうの法則。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「例として数列の和を求めるプログラムを考える。ループのステップは s := s + c[i]; i := i + 1 これに対するループ不変条件は s = Σ_{0≤k&lt;i} c[k] と s + Σ_{i≤k&lt;n} c[k] = E という形が考えられる。後者はエネルギー保存型ループ不変条件。ループの進行にしたがって値が移っていくが和は一定。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「エネルギー保存型ループ不変条件の和の演算部分(T ⊕ V = E の演算 ⊕)は、集合だと和集合 ∪ になったりリストだと連結になったりする。そういう保存量を探すという考え方で事後条件を見ると、隠れている項が見えてくることがある。第一積分のように機械的に計算というわけにはいかないが…」 / Twitter

histric-5

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Z3 で sum を表現する例 https://t.co/sTSd3iS1Bo」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「model https://t.co/t7plFVemDi」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これは読めないので Gauche で評価してみるとたしかに累積和になっている: https://t.co/Krs4QSbjAC」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自動証明ができるので、候補になりそうな式を生成して片っ端から solver に投げるという荒っぽい戦略もとれる。ますます考えなくなる人間。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば事後条件が P &amp; Q &amp; R の形だったら 1. !P と Q&amp;R 2. !Q と P&amp;R 3. !R と P&amp;Q 4. !(P&amp;Q) と R 5. !(Q&amp;R) と P 6. !(P&amp;R) と Q を調べることができる(それぞれループ条件とループ不変条件)。 線型探索や平方根の問題はこれで解けてしまう。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つに場合分けする場合は p ∨ ¬p = true で網羅、p ∧ ¬p = false で排他。p ⇒ q = ¬p ∨ q で展開すると項が余る…さて?とここで一工夫必要。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A: (p ∧ q) ∨ (¬p ∧ r) と B: (p ⇒ q) ∧ (¬p ⇒ r) は同値」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「まず仕様を明確にする。日常的な意味じゃなくて数式で表す。ゴールは命令型のプログラムを書いて正当性を証明すること。段階的に進める。まず再帰を使って関数型プログラムを書き、仕様との一致を証明する。次に命令型のプログラムを書いて、関数型プログラムを利用して正当性を証明する。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様・プログラムの表現形式はA:論理式、B:関数、C:命令型プログラムと3つあって、Aはwhatに集中できるけど実行は(ふつう)できない。Cはhowで何をしているかは明らかではないけど実行可能。Bも実行可能でwhat/howは中間くらい。これらをうまく選んで使って正しさに確信が持てる結果を得る。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴールデンウィーク最後のセミナーは SyncStitch によるリアクティブシステムのモデル化と検証。通信システム、組込み、マルチスレッドなどに共通する性質を理解し開発上の課題を解決できるようになる。定理証明でもモデル検査でもない、知られざる技術を紹介する。6時間後には次元違いの超レベルUP!」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「タイトルはわかりやすいようにマルチスレッドにしたけど実際にカバーする範囲はもっと広い。2つの独立した柱からなる。1つは相互作用を決定すると合成系の振る舞いが決まること。もう1つは相互作用を通じて観測できる振る舞いに基づいてシステムを検証する基準と方法:「振る舞いとは何か」」 / Twitter
PRINCIPIA Limited
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「紙の上で証明のアウトラインを組み立ててから定理証明支援系にのせる方が短くてきれいな証明になることが多いけど、それっぽくない証明にもなる。逆にまず定理証明支援系に入れてしまって、自動証明でできるだけ進めて、残ったゴールを見て考えるのも楽しい。補題を作って自動化を進めると気持ちいい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「第1回で論理学の教科書に出てくるような問題が証明できるようになります。これは計算機科学の基礎だし、仕様記述やプログラミングでも役に立ちます。 第2回までやると関数型プログラムの性質が証明できるようになります。再帰的に定義された関数の性質を数学的帰納法を使って証明します。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「オートマトンの知識を正規表現や字句解析にしか使わないのはもったいない。デッドロック発見器がおすすめ。またやるか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プロセス間相互作用について考える機会になる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器にプロセス優先度を導入してみた。左図:まず低 R が起きてロックを獲得、次に高 P が起きてロックしようとするができずwait。ここで中間 Q が起きて動きっぱなし。いわゆる優先順位逆転問題。これを優先度継承で解決したのが右図。P が waitした時点で優先度を R に継承して動作OK https://t.co/Eaj94JdXZW」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器で優先度および優先度継承をできるだけ楽して実現するには優先度も共有変数レコードに入れてしまえばいい。そうすればプロセスが自由に優先度を変えられる。あとは遷移を計算する関数が優先度を参照して低い方を計算しない(あるいは捨てる)だけ。作った人は改造にチャレンジ!」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマはプログラミング言語の他にもう1つプログラムの性質を表す言語を持った方がいい。2つの異なる表現を作って比較すれば正しさを高められる。検算と同じ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「あと検算の技術と道具。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メタスキルはとても価値があるんだけど習得は難しい。経験から学ぶのは難しい。本には書いてあるけど読むだけで理解したり実践したりするのは難しい。近くに実践してる人がいて、その人に指導してもらえるといちばんいい。ってむかし小熊くんがいってた。いってなかったかな…」 / Twitter

hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「コンパイラのようなプログラムは入力(ソース)と出力(オブジェクト)の関係で正しさを規定・判断することができる.では対話的なアプリケーションやサービスのように継続的に動作するプログラムの正しさはどう考えればいいか.アプローチの1つとしてトレースと模倣というものを紹介します.」 / Twitter
トレース比較器を作って学ぶマルチスレッドプログラミング - connpass
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 シナリオや仕様と設計・実装モデルの振る舞いを網羅的に比較するツールを作るハンズオンセミナーです. https://t.co/ZHttN6rbOF」 / Twitter

「形式手法」をものづくりへ ─ 高品質・高効率な製品開発に向けて - NII SEEDs / 国立情報学研究所
形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
Scaling symbolic evaluation for automated verification of systems code with Serval | Proceedings of the 27th ACM Symposium on Operating Systems Principles
uw-unsat/serval-sosp19: This repo contains the artifact for our SOSP'19 paper on Serval
ウワサのVeronaを眺めてみる | κeenのHappy Hacκing Blog
リージョンについて | κeenのHappy Hacκing Blog
仕様記述テクニック「Promotion」の紹介 - DeNA Testing Blog
Program Synthesis - Microsoft Research
rosette.onward13.pdf
osdi16-sigurbjarnarson.pdf
Hyperkernel: Push-Button Verification of an OS Kernel
Simple and Precise Static Analysisof Untrusted Linux Kernel Extensions
一人Computer Science Advent Calendar 2017 - Qiita
Proof Assistantを作る・理論編 その1 - The curse of λ
ゼロから学んだ形式手法 - DeNA Testing Blog
CSP-Prover
電子情報通信学会知識ベース |1編 ソフトウェア基礎
電子情報通信学会知識ベース |2編 計算論とオートマトン
電子情報通信学会知識ベース |3編 アルゴリズムとデータ構造
電子情報通信学会知識ベース |7編 ディペンダブルコンピューティング
01gun_08hen_02.pdf
モデル検査器を作って学ぶマルチスレッドプログラミング - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「モデリングはかんたんです。送受信するプログラム書くのと変わらないから。検査も自動なので全く問題なし。唯一"受理"の読み方が壁だけど、道具って使ってるうちにわかっちゃうもんです。とにかく仕様との違いを見つけてくれるという点が大きい。ずはりこれです。」 / Twitter
07gun_01hen_01.pdf
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Enterprise Architect のモデルから Promela を生成して Spin で検査、反例を読み込んで分析、という理解で正しい? https://t.co/6sdGxwNCZo」 / Twitter
スパークスシステムズ ジャパン ニュースさんはTwitterを使っています 「構造計画研究所様 モデルベース形式検証ツールDynaSpec販売開始のお知らせ https://t.co/0niVmzNqtE」 / Twitter
スパークスシステムズジャパン フォーラム - ニュース
構造計画研究所 | モデルベース形式検証 | DynaSpec | 日本
Category:形式手法 - Wikipedia
Category:プログラミング言語理論 - Wikipedia
seminar_tokyo_20140916-02.pdf
000049838.pdf
Tsukasa #01さんはTwitterを使っています 「暗号ライブラリの実装において、形式的検証が成されたプリミティブを C やアセンブリ言語の形態で出力する研究プロジェクト。 HACL* https://t.co/erpdiyzBET」 / Twitter
project-everest/hacl-star: HACL*, a formally verified cryptographic library written in F*

形式化されないもの

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「っていうか、値クラスとか、そんなこといわゆる設計で考えるようなことじゃないと思うのだけど。いわゆる設計界隈、プログラミングに引き摺られすぎじゃない?より重要な、構造に対する制約、機能に対する制約、後の改変が許される範囲、許容されるべきバリエーション、みたいな辺りがお留守に見える。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「つまり、デザインにおいて大切なものは形式化されないのですよ。でも、それらは然るべきスキルを持った人がプロダクトを見れば明らかなんです。ここがデザインと工学の衝突点。いちばんワクワクするところ。 https://t.co/Ex2AHF83eD」 / Twitter
杉本啓さんはTwitterを使っています 「いままさにリリースするプロダクトに、必要かつ十分な設計配慮が織り込まれているということ。不足もなく余分もなく。これが大事。あとは些事。」 / Twitter
杉本啓さんはTwitterを使っています 「ということは、リリースを重ねる都度、その新しいフィーチャを実現するためのコードだけでなく、関連する他の部分のコードも見直して、全体として最適なアーキテクチャにしなければならない。この点を見落としていると、増築を重ねた温泉旅館みたいなプロダクトになると思う。」 / Twitter

論理と計算

制約ソルバー

連言標準形

uint256_tさんはTwitterを使っています 「連言標準形と積和標準形って同じようなものなんだろうか」 / Twitter
ゆかたゆさんはTwitterを使っています 「@uint256_t 積和標準形は論理積の論理和であって、「変数に何を代入しても条件を満たす」もの(つまり同値変形)を見つけるために使います。 連言標準形は論理和の論理積であって、「ある変数を代入して条件を満たす」ものを見つけるために使います。 という説明を今思いつきましたが、鉞が来そうな気がしています。」 / Twitter
uint256_tさんはTwitterを使っています 「@yukata_yu なるほど (連言じゃなくて選言標準形でしたね)」 / Twitter

SAT/SMT

C3

SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
RKX1209/c3: The C3, SMT/SAT solver written in C.
SAT ソルバで数独を解く方法 - まめめも
2009-02-08
Decision Procedures - Bit-Vectors
SMT-LIB The Satisfiability Modulo Theories Library
SATソルバを使うためにCNFを作る - soutaroブログ
DPLLアルゴリズム - Wikipedia

blog

SATソルバを使うためにCNFを作る - soutaroブログ
SAT/SMTソルバの仕組み - scrapbook
ヒビルテ(2012-08-26)
Knuth先生の『TAOCP 7.2.2.2 Satisfiability』を読む
SMT2ファイルの書き方

PDF

IPSJ-MGN570811.pdf
27_3_24.pdf
three_wise_men - 160307-16.pdf
Sigss2012.pdf
fose2012.pdf
general2-3.pdf
37136500.pdf
ソフトウェア科学特論: 命題論理
特集「最近のSAT技術の発展」
ソフトウェア科学特論: 命題論理とSAT
encoding.dvi - encoding.pdf
110008106386.pdf
SAT¥½¥ë¥Ð¡¼¤ÎºÇ¿·Æ°¸þ¤ÈÍøÍѵ»½Ñ
CiNii 論文 -  SATソルバ・SMTソルバの技術と応用

スライド

SAT/SMTソルバの仕組み
_pdf
three_wise_men
000049838.pdf
The Art of De-obfuscation - Speaker Deck

Wikipedia

二分決定グラフ

講義情報

アルゴリズム特論
S. Minato's Course Information (in Japanese)
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論

二分決定図 - Wikipedia
ブール関数 - Wikipedia
二分木 - Wikipedia
決定木 - Wikipedia
真理値表 - Wikipedia
ブール代数 - Wikipedia
ベン図 - Wikipedia
カルノー図 - Wikipedia
クワイン・マクラスキー法 - Wikipedia
選言標準形 - Wikipedia
連言標準形 - Wikipedia
否定標準形 - Wikipedia

充足可能性問題 - Wikipedia
制約充足問題 - Wikipedia
命題論理 - Wikipedia
恒真式 - Wikipedia
数理論理学 - Wikipedia
エルブランの定理 - Wikipedia
DPLLアルゴリズム - Wikipedia
タブローの方法 - Wikipedia

Qiita

「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita
z3 (smtソルバ) で遊ぶ - Qiita

Twitter

るくすさんのツイート: "UCLID、適当に変数のビット幅を減らしてみてUNSATになればUNSAT proofを取り出す。でproof以外のクロージャを1変数に置き換えて規模を削減した物にbit-blasting。これでSATになればproof部分のビット幅が足りてない事が原因というヒューリスティック"
るくすさんのツイート: "Bit BlastingとTseitin encoding実装しなおさなきゃ駄目だ"
Shinji KonoさんはTwitterを使っています 「SATの変数の数は線形だが、それに全部引っかかると指数乗になる。解が多くなると易しくなってしまうので絞る必要があるが、そうすると関与する変数が多くなり、それを見つけるのは容易しになる。繰り返しネックを作るには…」 / Twitter
Shinji KonoさんはTwitterを使っています 「変数の組合せを変えていく必要があるが、変数の数には限りがあるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、変数の数がないとだめ。しかし、それは線形にしか増えないので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「というわけなのでP=NPがdefenceできてるのは驚異ではあるな。決まったパターンでしかネックを作れないことがわかって肯定的に解けてしまう可能性もある。」 / Twitter

SAT/SMT by Example
openSUSE/libsolv: Library for solving packages and reading repositories
pycosat 0.6.1 : Python Package Index
PicoSAT
wkschwartz/pigosat: Go (golang) bindings for Picosat, the satisfiability solver
z3 - Implementing bit-blasting for floating-point arithmetic in SMT - Stack Overflow
Vol.28 No.2 (2013/03) SAT ソルバー – 人工知能学会 (The Japanese Society for Artificial Intelligence)
バージョンの充足可能性問題 | POSTD
権藤研 輪講資料 2018/6/19 新山 (充足可能性問題について)

Sugar

SAT型制約ソルバーSugarについて
お絵かきロジックをSugar制約ソルバーで解く
SATソルバーMiniSatとSugarを導入 - Qiita
制約充足問題を解くためにsugarをインストール - TIM Labs
Sugar制約ソルバーがパズル神 – The Coherence World

PDF

Microsoft PowerPoint - csp.ppt
Microsoft PowerPoint - 11Prolog演習応用編印刷用.pptx
Microsoft PowerPoint - backtrack.pptx
67.pdf
introduction_sat.pdf
digidepo_8559157_po_r6-2-7.pdf
制約論理型言語における制約集合の構造解析による代数制約ソルバーの効率化についての検討 - 国立国会図書館デジタルコレクション

american fuzzy lop

コンコリック実行エンジン

angr, AFL, Driller | 一生あとで読んでろ
Conpy:Pythonアプリケーションのためのコンコリック実行エンジン | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
これまで調べてきたファジングの話 - who3411のブログ
ソフトウェアテストの技術:現場から研究へ,研究から現場へ
コード難読化・アンパック系論文サーベイ - Log.i53
改竄とリバースエンジニアリング - owasp-mstg-ja
DeepState: C/C++ symbolic execution unit test framework from Trail of Bits | Firmware Security
実装して学ぶ Symbolic Backward Execution - Speaker Deck
はじめてのコンコリックテスト
mumumuさんはTwitterを使っています 「ファジングの最適化のためにMutationの選択を強化学習しようぜ、みたいな話を聞いてなるほど状態だった 指摘されるとせやな、という感じだが」 / Twitter
mumumuさんはTwitterを使っています 「たしかDirectedなファジングにアニーリングを使ってたやつは読んだことあって、システムっぽい話に数理最適化とか機械学習の話題を混ぜるとこうなるのか感があったな」 / Twitter

american fuzzy lop
google/AFL: american fuzzy lop - a security-oriented fuzzer
ご注文は American Fuzzy Lop ですか? - Qiita
RustでAmerican Fuzzy Lop(afl) - Qiita
mirrorer/afl: american fuzzy lop (copy of the source code for easy access)
afl/afl-fuzz.c at master · mirrorer/afl
american fuzzy lop (fuzzer) - Wikipedia
Chapter 23  Fuzzing with afl-fuzz
Breaking Ruby’s Unmarshal with AFL-Fuzz – Fuzz Stati0n – Medium
American Fuzzy Lop (AFL)の構造 - 睡分不足
AFL on my extensible fuzzing framework (squiffer)
afl/technical_details.txt at master · mirrorer/afl
るくすさんはTwitterを使っています: 「2016年のハッキング自動化コンテストDARPA CGCでも上位チームの殆どがファジングとシンボリック実行を組み合わせていて、現在でも活発に研究されてる分野です。 CGCで優勝した我らがCMUの「mayhem」だけは別格の高度なシンボリック実行切り替えシステムなんだけど、詳細は表に出てないです(言えません」 / Twitter
るくすさんはTwitterを使っています: 「あ CGC当時のmayhemは純粋にAFL+シンボリック実行だったのかも。 説明がめんどくさいので2016年のntddk先生の記事を見て。 https://t.co/d3JVSu668P 今のmayhemは... アレがアレしてアレになってる」 / Twitter
angr, AFL, Driller | 一生あとで読んでろ
Miura HidekiさんはTwitterを使っています: 「そうか、シンボリック実行、具体例を挙げて抽象実行するよりより汎用的な解析結果が得られそうだな。組み合わせ爆発さえ抑え込めれば」 / Twitter
Miura HidekiさんはTwitterを使っています: 「mmcもシンボリック実行を取り入れ始めていると言えるのかな?結構効果は絶大な気がする。ライブラリレベルで呼び出しが無くても型を得ることが出来そうな気配」 / Twitter
Miura HidekiさんはTwitterを使っています: 「全然次元の違う話だった。すげー、これをガリガリ実装できるリソースのある国とは戦争したって勝てねーよ」 / Twitter
uint256_tさんはTwitterを使っています: 「ファザーというもの, よくわかってないけど, バイナリを解析して分岐を網羅できそうな入力をSATとかで生成するのかな」 / Twitter
mumumuさんはTwitterを使っています 「Automated Whitebox Fuzz Testing [NSDI '08] BlackBoxなファジングはあまりにも非効率なので,Mutation時にシンボリック実行の制約情報を活用するWhitebox手法を提案しSAGEを実装.(実行時に制約を生成し,Mutation時に一部の制約を否定した入力を生成).MS Researchの人がMSのAppに適用していい話」 / Twitter

抽象解釈

抽象解釈 - Wikipedia
米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
Microsoft Word - 【第5分科会】ConcolicTestingグループ_論文_修正_20150220.doc
情報システム信頼性研究会資料
デバック工学研究所
Concolic testing - Wikipedia
ピギーバック - Wikipedia
abstractInterpretation - 白紙
untitled
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
Miura HidekiさんはTwitterを使っています: 「evalに型付けをおこなう方法について考えている。今は、型変数を実際の型を基底とする線形空間のなかのベクトルとして表現してよろしくするという方針で考えている。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「結局、サポートしていないといけないメソッドの組の中から実際の型を検索するという話になると思うのだが、それを効率よくやる方法で思いついた方針」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 引数として文字列リテラルじゃなくて変数が渡ってくると色々困りそうな」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 変数で文字列の内容がわからないのが前提です。eval時に型チェックを行うのですがその型を得る方法を考えています。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 とりあえず制約無しの型変数を考え抽象実行で持っていなければならないメソッドを集めます。そのメソッドの戻り型の制約とかも考え具体的に当てはまる型を探すってのが大まかな方針です」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 引数として渡される変数の値(文字列)そのものを推論しないと返り値の型も決まりませんよね?」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 いえ、evalの戻り値がその後どういうメソッドを使っているか(さらにそのメソッドの返り値のメソッドの使い方)を見ると型が決められるのではないかと思います。何も制約がなければObjectクラスということになります」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 なるほど、逆の発想なんですね。 副作用だけを期待して返り値を捨てるケースもありそうですし、method missingとか使ってると辛そう」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 返り値を捨てるケースだとObjectとでもしておけばいいですし、method_missingを使っている場合はmethod_missingが定義されているクラスを持ってくればいいかなと思います。ただ、method_missingが定義されているとなんでも候補のクラスとして出てくるのであまり嬉しくなさそうです」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 そうか、別に厳密に型を定める必要はないし、Rubyだとそもそもそれは不可能ですよね。 RubyでRubyのプログラムを読んで、最終的には対象プログラム内の変数や関数の(取り得る)型の集合をリスト化して出力する、という話なんでしたっけ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 そうです。もともとはコンパイラの最適化のためですが、どこまで型宣言なしで型宣言が復活できるか興味本位で作っています。」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 最終的にはプログラマが最低限の型を書いて、あとは型推論で頑張るようになるんですかね。それだと動的型付け言語ではなくなりますが。 静的型付け言語にも代数的データ型が普及しつつあるので、変数に複数の型を突っ込めるという動的型付けの美点?が失われつつあるような。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 究極的には動的と静的型付けの区別はつかなくなるんでしょうね。Rubyはその中でも最右翼で言語仕様に型宣言はとりあえず入らない(型宣言は別ファイル)ですわね。」 / Twitter

制約充足問題 - Wikipedia
制約充足問題 - 数理計画用語集
制約充足問題についてのゆるふわな話 - Qiita
SuperCon 2016 予選問題をCSPソルバーで解く - ブログのとさか
世界一美しい覆面算を制約ソルバーで解く - 屯遁のパズルとプログラミングの日記
制約計画ソルバー SCOP  入門編
離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
B.4 制約充足問題ソルバwcsp
離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
制約プログラミングとは | constraint.org
SATソルバーは問題解決のための「銀の弾丸」か?
制約充足問題のSAT符号化
パズルをSugar制約ソルバーで解く
《制約充足問題》 - ORWiki
ikyuuさんはTwitterを使っています 「HORNSATがPに入る話(貪欲法で解ける)を読んでいて、Horn formulaがPrologで使われていることを知った。 いつか論理プログラミングとかも勉強してみたいな:)」 / Twitter
Introduction to Fuzzing - Speaker Deck
解析基盤技術を用いた効率的なソフトウェアテスト - Speaker Deck
ZetZ、形式的検証機能を備えたCのダイアレクト

関数型

データフロー指向

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「個人的には記法の問題だと思う。テキストで制御構造を「上から下に流れる」「インデントでネスト構造」の表現力と比較可能なレベルで、データフローのグラフ構造を表現可能な記法がない。図法だとスケールしない。テキストだとグラフの接続関係を把握できない。(ああわが青春のPARTS Workbench https://t.co/d5WzhDxH2C」 / Twitter
Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
Miura HidekiさんはTwitterを使っています 「@tomooda たしかに。木構造以上の複雑なグラフ構造をテキストで表現するの急に難易度が上がりますよね」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 プログラムで扱う時にも木構造からDAGで一気に難易度が上がるので、単純にニンゲンの脳ミソの特性というだけでなく、やはり木とDAGでは問題そのものの難易度に本質的な差があるんじゃないかなーと思います。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 制約プログラミングになると依存関係がDAGに収まらないのでちょっと難しくなります。ただドメインに合うとむしろ可読性が上がるわけで、例えばiOSのGUIレイアウトに使われているAutolayoutはDeltablue以来の歴史を持つ制約解消系の実用例です。」 / Twitter
Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 識者じゃないし、答えでもないけど、関数型言語ってある意味データフロー指向のようにも思えますが、そういうのじゃないんですね!? (データフローコンピュータが何故あまり一般化…というと、また別の回答になると思いますが)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@nfunato たしかに。このあたりは定義がはっきりしないのですが、引数が非同期に決まってくるってのが暗黙の条件に入るのかなって思っています。そうすると、Haskellが微妙です。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 最近FRPをやっている経験からは、ドメインを上手く限定すれば、テキストでも図式でもDAGに収まっている限りはそれほど難しくはならない気がします。そうでなければMatlab/Simulinkなんてこんなに使われていません。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @nfunato 関数リアクティブプログラミング(FRP)はデータフロープログラミングの再来みたいなものですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo @nfunato FRPはあまり知らなかったのですが、調べてみたら確かにデータフロープログラミングですね。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@miura1729 Elixirは実質的にデータフロー指向の言語だと思っています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@miura1729 そしてこの性質によりSIMDアーキテクチャによる最適化が抜群に効きます。」 / Twitter

bright-ml

El Pin AlさんはTwitterを使っています 「言語作ってます。割と動く https://t.co/vcW7v9bs5S https://t.co/hQOJO5rGQn」 / Twitter
elpinal/bright-ml: A statically-typed programming language based on "F-ing modules"
El Pin AlさんはTwitterを使っています 「Moscow MLの再帰モジュールをふんだんに利用して実装しています」 / Twitter
El Pin AlさんはTwitterを使っています 「ああ、あとlexer / parserは、Karl CraryのHygienic Source-Code Generation Using Functors (2018)を試しに使っています 基本的にyaccだけどfunctorが生成される https://t.co/9j5Qvu74jd」 / Twitter
cmtool.pdf

クロージャ

実装から理解するクロージャ | κeenのHappy Hacκing Blog
島鉄雄さんのツイート: "Emacs Lisp だとクロージャが何なのかより分かり易いと思う。 この画像の連想リスト(alist)の ((count . 0) t) が、いわゆる環境で、メタファーでなくて実際に本物の連想リストを保持している。 で、setq がこの中身を直接書き換えてる。 実際に書き換わってるのが分かると思う。 Emacs は勉強になるな… https://t.co/No7IoW1GOy"
島鉄雄さんのツイート: "ちなみに、これはバイトコンパイルされてない関数の場合で、バイトコンパイルされると、クロージャの持ち方は全然別物になる。 へーそうなんだと言う感じだけど、近々バイトコード完全解説記事を公開予定なので、少々お待ちを…"
Kota Mizushima (on a diet)さんはTwitterを使っています 「オブジェクト指向言語でオブジェクトを渡すのは、実質的に高階関数を渡している(そういうオブジェクトは固有のメソッドを持つので)のであって、OOPL使っている皆さん、すでに高階関数使っているのだ。クラス使わずに1メソッドだけのオブジェクト便利に渡せると思えばいいのでは。」 / Twitter

末尾再帰

Tanaka AkiraさんはTwitterを使っています 「OCaml での tail recursive な map (逆順にもならず、無駄にメモリを確保しないやつ) https://t.co/jPix5aoHiK」 / Twitter
天泣記
Shiro KawaiさんはTwitterを使っています 「@tanaka_akr f内で継続捕まえて後で再起動すると破壊がばれるやつですね」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@anohana Lisp と書くか Scheme と書くか迷ったけど、Lisp と書いてよかった」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@tanaka_akr :-) あとCheney on the M.T.A.方式 (スタックをnurseryとみなす)だと普通に再帰しても頑張って工夫してアロケートするのとあんまり変わりませんね。Scheme以外の言語で同方式の実装ってあるのだろうか」 / Twitter
κeenさんはTwitterを使っています 「Lispでtconcって呼ばれるテクニックだ。Obj.magic使えばできるんだ。」 / Twitter

MPST

Keigo ImaiさんはTwitterを使っています 「ECOOP 2020 (https://t.co/YR8JbvCIjn) に論文が採録されました。"Fully Static Multiparty Session Programming with Global Protocol Combinators" マルチパーティセッション型の初のライブラリ実装です。OCamlの型システムに支援された並行プログラミングが可能に: https://t.co/Fpi6xKNorP (整理中」 / Twitter
keigoi/ocaml-mpst: Multiparty Session Types in OCaml
Keigo ImaiさんはTwitterを使っています 「マルチパーティセッション型(MPST)は、デッドロックフリーな多者間通信が保証できる反面、既存の型システムとのギャップが大きく、汎用言語でのライブラリ実装がありませんでした。今回MPSTのwell-formednessとサブタイピングの関連を見出し、多相ヴァリアントやレンズ等でライブラリ実装しました https://t.co/MMfgxha9v6」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これと、一昨年ガリグ先生 (@garriguejej ) とPROで発表した線形型の実装 LinOCaml を組み合わせて、MPSTの型をOCamlの型検査器だけで静的に検査できている…はずです。(デッドロックフリーがOCamlで保証できることの証明は今後の課題になってしまいました…無念。これでも十分面白いと信じてますが」 / Twitter

Miranda

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すごい!Mirandaのソースが公開!! https://t.co/55Etgo6hIP」 / Twitter
Edward KmettさんはTwitterを使っています 「Over the last couple months, David Turner's Miranda source code has been released! https://t.co/z9c4iUUgpm Miranda first tried the cookies 'n cream combo that is type inference and laziness, and shaped Haskell. For those interested in compiling to combinators, it's a goldmine.」 / Twitter
Miranda homepage

遅延評価(log)

Kazuho OkuさんはTwitterを使っています 「Cの場合は if で囲まれたコードを出力するマクロ書きますねぇ」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「コレ、logger あるあるで、正格評価しか無い場合はどうにかして全体を if で囲んだり、無理矢理 closure に押し込んで渡したり」 / Twitter
山本和彦さんはTwitterを使っています 「うぉー! 遅延評価が本当に役に立つ事例をもう一つ発見したぞ! ロギングだ! 正格評価だと、ログを記録しないログ関数を指定しても、引数のロギングの文字列を生成しちゃう!」 / Twitter
https://twitter.com/objectxplosive/status/1301363081939791874
How do I implement assertions?
Kazuho OkuさんはTwitterを使っています 「dtrace とかでも、probe には必ず同名の probe_enabled って関数があって、実際に probe がアクティブな場合だけ引数構築ができるようになってる」 / Twitter

モナド(Unix Shell)

ひさてるさんさんはTwitterを使っています 「Unix のコマンドはモノイド (cat | grep | more は cat | grep を more しても cat を grep | more しても同じだし、パイプしても結果に影響しないコマンドもありえる) なのでこの対象となる標準入出力はモナドだし、シェルは自己関手の圏 ← 乱暴な解釈」 / Twitter
wint 𝄆 9月病 𝄇さんはTwitterを使っています 「@tanakahisateru 自分もファイルの圏はいけるのか考えてみましたが、識者によるとそのままモナドに対応付けられるようです: https://t.co/NoTP6bidlK」 / Twitter
UNIX pipes as IO monads
ひさてるさんさんはTwitterを使っています 「@wint7 とりあえずエラー出そうとビルドしたら一発でコンパイル通ったときの気持ちです」 / Twitter

blog

関数型プログラミングとは結局何なのか | 黒曜の吹き溜まり
🙂コンピュータサイエンスと魔法のYコンビネータ
本の虫: また初心者にプログラミングを教える機会があった
関数型つまみ食い: 関数型とはプログラミング言語ではなく、プログラムデザインの問題であることに気づく – ゆびてく
関数型つまみ食い: 関数型プログラミングの何が嬉しいのか? – ゆびてく
関数型つまみ食い: モナドが難しいと思われている理由 – ゆびてく
Elixir試飲録 (3) – マルチコア危機によるパラダイムシフト: オブジェクト指向から並行指向へ – ゆびてく
HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
Erlangのとても困ったところ:単一代入の思わぬ弊害 - 檜山正幸のキマイラ飼育記 (はてなBlog)
本の虫: Erlangについて思うところ
小さなlisp処理系を作った - in neuro
シャドイングの嬉しさ | κeenのHappy Hacκing Blog
Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの? - lilyum ensemble
monadからeffectへ - Just $ A sandbox
『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog

スライド・PDF

ごみ集めのない (頭の悪い) LISP - Google スライド
tutorial.pdf
handlers-tutorial.pdf
120901fp key

Qiita

宣言型プログラミングとは何かをJavaとElmで考えてみる(前編) - Qiita
モナド則がちょっと分かった? - Qiita
Haskellの例外処理事情 - Qiita
関数型言語のウソとホント - Qiita

Twitter

Haskell

orkronさんはTwitterを使っています 「Haskellアロー記法の図はストリング図だった? 改めて見るとモノイド圏(デカルト圏)に見える。 https://t.co/dTQNRmGo2n https://t.co/eOAHg66wit」 / Twitter
Arrow syntax
orkronさんはTwitterを使っています 「以前に見かけたときは良く分からなかったけど、 今ならこれらの記事の意味が理解できそうだ。 https://t.co/1fgte423nr」 / Twitter
Haskell カテゴリーの記事一覧 - PS
みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)🎯さんはTwitterを使っています 「Haskellちゃんは強い静的型付けとか純粋な関数とかでがんばった努力をガバガバな例外処理が全部台無しにするところが好き(きらい)」 / Twitter

histric-1

島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
島鉄雄さんはTwitterを使っています: 「昔プログラミングが分からないって人が a = a + 1 がおかしい言ってて、=は等しいじゃなくて a ← a + 1 って事だよと言っても理解されなかった。 これは良く考えたら再代入だから、関数型言語では有り得ない事で、マシン語レベルの理解が無いと何が起きてるかは理解出来ない。 そういう事だったのか!」 / Twitter
Masahiro SakaiさんはTwitterを使っています: 「Runtime Support for Multicore Haskell: a Retrospective https://t.co/T8ns3Rq7Ak ICFP’09の掲題論文のSIGPLAN ten-year most-influential paper award受賞を機とした振り返り。純粋関数型言語は並列化に向いていると思いきや色々難しい問題があり、その設計とエンジニアリングには当時感銘を受けた」 / Twitter
Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「純粋関数型言語が並列化に向いてるってのはどこから出てきた話なんだろう?(密結合になりがちなので雑に考えても難しそうなんだけどな)」 / Twitter
Haskell/Denotational semantics - Wikibooks
Tronso_35_16.pdf
水無麻那さんはTwitterを使っています 「Haskell、データ依存でしか実行順序を制御できないわけで、IO アクションとか実行順序を明示的に制御したくなると困るわけだが、そこで phantom data の State 使ってデータ依存入れたら実行順序制御できるやんってなるの、何度見ても賢いなあってなる」 / Twitter
Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
El Pin AlさんはTwitterを使っています 「誰得文書を書きました 『実践Phase Separation』 https://t.co/5wMnZagG9Z みんなも高階ファンクタを静的部分と動的部分に分離しよう!」 / Twitter
practical_phase_separation.pdf
El Pin AlさんはTwitterを使っています 「Phase separationの訳語、フェーズ分離とかでいいのでは、という気持ち」 / Twitter
El Pin AlさんはTwitterを使っています 「phaseを「段階」としてしまうと多段階計算のstageと被るし......」 / Twitter
El Pin AlさんはTwitterを使っています 「4ページ目は、1枚目が間違いで2枚目が正解だった https://t.co/Ep9iZVRNID」 / Twitter
El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata, Akira Ito and Jacques Garrigue. Recursive object-oriented modules. FOOL, 2005. https://t.co/NvVQNtJPC1 モジュールとクラスを統合。 ファンクタは1階(多分applicative)。 topological sortでwell-founded recursionを保証」 / Twitter
fool_2005.pdf
El Pin AlさんはTwitterを使っています 「再帰モジュールの前方宣言にシグネチャ注釈を一切必要としないモジュールシステムだと、 1階のapplicative functorが存在するだけで型検査を決定不能にしてしまう。 このことを、そのようなモジュールシステムにTuring machineがencode可能であることから示す。」 / Twitter
El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata and Jacques Garrigue. Path resolution for recursive nested modules is undecidable. 9th International Workshop on Termination, 2007. https://t.co/SKM9Y2rfmk」 / Twitter
wst2007.pdf
El Pin AlさんはTwitterを使っています 「可変参照をgenerative functorとして入れることにした。各型ごとに新しいref型を生成するので、値制限(や、それに類するもの)を入れることなく可変参照を導入できる (その代わりちょっとcumbersomeになる) 1枚目はRefモジュールの定義で、 2枚目はその利用例 https://t.co/pDqTqBSztZ」 / Twitter
κeenさんはTwitterを使っています 「個人的に数学の記号の過剰なオーバーロード、一文字変数/一文字関数、上付き/下付きのパラメータあたりはやめてほしいと思ってる」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GHC、型エラーは慣れれば結構読めるけどパースエラーはエラーが発生したところからかなり離れた箇所が原因だったりするから難しいと個人的には思う。(型エラーも発生した箇所から離れた箇所が原因であることはしばしばあるけど、慣れかな...」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これは少し驚き。仕様が高階関数を要求するから高階関数を書くのではないのか。 Prologの場合は、論理学の中では高階述語を書く必要が出てくるが、日常的にはそんなこと人は考えないから、使うことはない。'. https://t.co/4XvKLpEHW8」 / Twitter

timelerさんはTwitterを使っています 「高階関数のないプログラミング言語だとこういうの多く作られがち😰 https://t.co/7Ji9uMJs8Z」 / Twitter
プログラムを勉強している人の毒舌な妹さんはTwitterを使っています 「お兄ちゃん、なんで8割方同じ内容の関数が3つも4つもあるの?」 / Twitter
きしもとさんはTwitterを使っています 「@TakaoOzaki そんなことはないでしょう。必要なのは高階関数というよりも、関数(ないし手続き)がファーストクラスでないという制限のために、コードの複製が多発しやすい、というのが元のツイートの言っていることの要点ではないかと思います」 / Twitter
尾崎隆大さんはTwitterを使っています 「@ksmakoto % Prolog 'なるほど。高階関数を使うという話ではなくて、高階関数が存在しないようなクラスの言語ではと、読むべきだと。'.」 / Twitter
水無麻那さんはTwitterを使っています 「関数型は第一級関数を先取りしててすごいという言説を聞くが、オブジェクト指向もオブジェクトにより高階関数が自然な形でエミュレート出来るの、十分すごいし綺麗だと思う」 / Twitter
島鉄雄さんはTwitterを使っています 「Lispで (let ((a hoge)) ...) と書くべき所を (let (a hoge) ...) と書いてしまうとハマる… Cの if (a = hoge) ...; と同じレベルの落とし穴がLispにもある。 (ちなみに後者は、(let ((a nil) (hoge nil)) ...) と同じ)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これ論文のどこにも書かずに10年経ってしまった (実装してすぐITPLに就職してしまった) 誰かが理論にしてるのかも知れないけどまだ見たことがない。安直な方法ではある」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn Haskell'08はunsafeCoerceを使ってるのがアレですが、うまいことやれば型安全なエンコーディング(かつRevisitedのようなチャネル渡しを伴わない)も可能です(例えば https://t.co/qQrv9rj3ZL のように一つのセッションチャネルを複数の単純型付きチャネル(ここではIOモナド)の列で実現するとか」 / Twitter
betty-book-haskell-sessions/Types.hs at master · dorchard/betty-book-haskell-sessions
El Pin AlさんはTwitterを使っています 「MacQueen "Modules for Standard ML"の1985年版(functorと言う用語が初めて出てくる)、入手困難かと思っていましたが、 https://t.co/l14H7pKBaB から入手できる(72 MBのPDF)と知りました」 / Twitter
Full page fax print - Polymorphism Vol II, No 2.pdf
El Pin AlさんはTwitterを使っています 「https://t.co/dVjE4eDFTr」 / Twitter
伊津野 英克さんはTwitterを使っています 「関数型プログラミング、早期リターンができないのがつらいんだということに気付きはじめた。Rust は結構、関数型押しなんだけど、Try演算子も入ってほとんど普通の言語と同じように扱えるんだけど、Kotlinのinlineクロージャがないから、そこだけ早期リターンができない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「逆方向のリストは和田先生もなんか言ってたが、ほんと再帰で扱いにくい。順方向と対称にならない。coinductionするべきかもしれない。 a . (b . (c . ... と ((((a . b) . c ) ... の差。なぜか、Agdaの演算が後者で…」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLのリストは再帰で書いてるが本質的にはループ。ループの最大値と途中の値がすべてあることを確認できれば良い。」 / Twitter

Java - 宣言的と命令的の意味、違いは?|teratail
モナドを理解する - 迷える者への手引き
haskell-implementations/hugs: Haskell User's Gofer System
Common Lisp HyperSpec (TM)
uLisp
Writing
Kohei SuenagaさんはTwitterを使っています 「プログラミング言語処理系とは?OCaml の基礎や,高階関数型言語のインタプリタの書き方,型推論アルゴリズムの実装方法を解説!簡単なコンパイラの書き方や,字句解析や構文解析アルゴリズムもまとめてみました!https://t.co/dSZmD1KExq」 / Twitter
IoPLMaterials | Materials for the class “Implementation of Programming Languages” in Kyoto University.
Category:関数型プログラミング言語の実装 - Wikipedia
yallop/effects-bibliography: A collaborative bibliography of work related to the theory and practice of computational effects
Haskell/Denotational semantics - Wikibooks
Equivalence Between the Quotient Term Model and the Least Complete Herbrand Model for a Functional-Logic Language

論理

KL1

ICOT

ポストGHCにむけて  ― 21世紀の計算モデルと実装
第五世代コンピュータプロジェクトの記録
Index of /~ueda/bit-special-issue-5G
Fuchi Memorial Colloquium
Fuchi Memorial Colloquium
Microsoft PowerPoint - hayashiNov25.ppt
Abduction and Induction: Logical Framework
(私的)海外研究事情
Microsoft PowerPoint - furukawa.ppt
モデル生成型定理証明系MGTPの要素技術
PowerPoint Presentation
PowerPoint Presentation
Microsoft PowerPoint - Fuchi-colloquium3.ppt
Microsoft PowerPoint - matsu071020.ppt
Microsoft PowerPoint - 渕記念コロキウム-横尾.ppt

Kima

d-resist2.pdf
main.dvi
https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/Readme-kima220-j

LMNtal

Research Areas of UEDA Lab.
LMNtal - LMNtal PukiWiki
jssst2002-dklic.pdf
_pdf

Research
ローテクと向き合う
早稲田大学 研究者データベース
Kazunori Ueda, Prof.
GHC-intro.pdf
Contrtact Research by AITEC in 1996 FY
Contrtact Research by AITEC in 1998 FY
https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/use-of-software-J
KLIC's page
Inside KLIC Version 1.0
KLIC 講習会テキスト KLIC システム編
KLIC 講習会テキスト KL1 言語編
dklic: KL1 による分散 KL1 言語処理系の実装 - PowerPoint PPT Presentation
CiNii 論文 -  並列論理型言語KL1の最適化手法
修士論文
Shinji KonoさんはTwitterを使っています 「PSIも触ったことがある。ESPというObject指向なPrologが動く。かっこいい。一応販売されたのかな。ESPもSparc版があり、かなり速かった。KL/1は、もっと流行っても良かったんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「KL/1 は人間のプログラミング能力を越えてる感じがはっきりあった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっもと、PIMOSは触ったことはない。あれはどうだったんだろう? 実在したのだろうか? PSIクラスタは動いていたんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「近山先生にPIMOSの話を聞きに行くべきかも」 / Twitter

Prolog

DCG

Definite clause grammar - Wikipedia
Prolog DCG Primer
SWI-Prolog -- Manual
Tutorial -- Using Definite Clause Grammars in SWI-Prolog
Learn Prolog Now!
DCG入門 - Qiita
Prologの動作原理と自然言語処理 | 東京工業大学デジタル創作同好会traP
https://home.hiroshima-u.ac.jp/katsuiwa/nlp.html
549.pdf
Prolog Programming: Language Processing (in Japanese)
構文解析
Prolog の Definite Clause Grammar を試す:Rainy Day Codings:So-net blog
プロローグ-解析 - parsing - Dev4App's Blog
prolog - DCGパーサのPrologを書くために他の抽象構文であいまい性を取り除く - 答えた
Prolog のプログラムのことで疑問があります。 - 問:次のことを行うPro... - Yahoo!知恵袋

PDF

Microsoft PowerPoint - searchtree-2007.ppt
_pdf
oksn_065_065.pdf
情報数学III 2001年度後期                    担当:守屋
prolog.pdf

Qiita

PrologによるPrologインタプリタ - Qiita
Prologで型クラス実装 - Qiita
Prologで様々な多相型推論 - Qiita
Miura HidekiさんはTwitterを使っています: 「ISO-PrologからGHC,独自拡張Prologへ https://t.co/zCxfsDC0tJ GHCをハスケルコンパイラではなく、ガードされたホーン節の意味で使う記事をネットでは初めてみた。面白い、ただただ面白い。いろいろ言いたいことがありそう」 / Twitter
ISO-PrologからGHC,独自拡張Prologへ - Qiita
Miura HidekiさんはTwitterを使っています: 「α変換のところで、変数として変数名と番号のタプルを使っているとのことだけど、単なる名前なしオブジェクトでよいと思う。名前が必要ならインスタンス変数に名前を入れておけばよいし。つまり、ユニーク性だけが必要なものにちょっとオーバーヘッドが大きすぎじゃないかと思う」 / Twitter
Pure Prolog in Elixir - Qiita
Elxghc -Elixir によるGHC実装の試み- - Qiita
Elxghc -中断の実装- - Qiita
Elxghc -並列動作とその測定- - Qiita
Elxlog シンプルでわかりやすい論理&amp;関数型をめざして - Qiita
Elxlog 実行効率の測定 - Qiita
エジンバラ文法内でのAND並列の試み - Qiita
O-Prologの仕様、覚書 - Qiita
O-Prologのコンパイラ - Qiita
sasagawa888/Prolog
sasagawa888/Elxghc
sasagawa888/Elxlog
sasagawa888/opl
Prolog で実装するモデル検査器の心臓部 - Qiita
Prolog実践入門 - AIに特化した老舗言語 - Qiita
Prolog 入門 - Qiita

Twitter

操作的意味論

インタプリタ

h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを使うメリットは単一化や非決定性、集合、一階述語論理などを理解するのに有益だからである。 Prologを理解していれば、CoPLやTAPLの図は理解しやすいし、型推論も理解しやすい。 証明まで行おうとするとPrologは力不足なのでCoqを使う。 その前に、OCamlを使って置くと良いのかな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「i(I,I):-integer(I). i(E1+E2,I):-i(E1,I1),i(E2,I2),I is I1+I2. :- i(1+2+3+4,R),writeln(R). :- halt. Prolog による整数の足し算ができるだけのインタイプリタはこのようにかけて短い。この簡潔性と、構文=抽象構文とできる能力は述語論理の特徴であるので使い慣れると便利だ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「型推論は t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). :- t(1+2+3,int). :- halt. と書ける。簡潔に書けて意味も宣言的で明確である。Prologがわかればね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「今書いたPrologのインタプリタは 評価規則 ーーーーーーーーーーー (E-Int) i =&gt; i e1=&gt; i1  e2=&gt;i2 i1 + i2 is i ーーーーーーーーーーー(E-Plus) e1+e2 =&gt; i 型付け規則 ーーーーーーーーーー(T-Int) i : int e1 : int  e2 : int ーーーーーーーーーー(T-Plus) e1+e2 : int と書ける。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologにハマった高校生というのは見たことがないのだけど、Prologを使いこなす高校生がいたら天才だと思うよ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「表記は若干違うけれども、型理論で用いられる形式的言語を自動処理できるのがPrologだ。難しいことはないのでちょっと遊びに挑戦して、スタックマシンのコンパイラを書いたりしてみると世界の見方が一気にトップレベルの研究者のレベルに引き上がると思う。」 / Twitter

histric

状態(の変化)*さんはTwitterを使っています 「REST APIの作りとか見てると型付き操作的意味論というのが表示的意味論に寄せてく理由はわかる」 / Twitter
3^5さんはTwitterを使っています 「夏休みに全3回くらいの意味論勉強会をやっても良いかもしれない 操作的意味論と表示的意味論の両方から単純なインタプリタを実装する感じで」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
Tomoaki KobayashiさんはTwitterを使っています 「Standrd MLの操作的意味論感も好きだったが、Haskellの表示的意味論感もだいぶ好きになってきた 特にモナドですよねえ(まあより深淵な分、かなり重い概念にはなってしまっているよなあ)」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論の図とかただのPrologだと思ってみると簡単なのだけど、すごそうに見せるものになってて残念だな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「言語作成の、お手軽ツールがOCamlやPrologなのだよな。 お手軽ツールは論文でも多用されており操作的意味論や型理論では述語論理が図に使われている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論と型システムの本格ならやっぱり新しいPrologの型システム作ってからにしたいと思うけど難しいのだよなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「C言語のコンパイラが作れたら、次に勉強したほうがいいのは操作的意味論だ。操作的意味論に使われる言語は一階述語論理であり、論理型言語のPrologを使えば実装は簡潔にできる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「LLVMの操作的意味論は非決定的マシン状態を持ったスモールステップ評価器として定義されているのでPrologで実装すると楽だよなぁw」 / Twitter
h_sakuraiさんはTwitterを使っています 「Formalizing the LLVM Intermediate Representationfor Verified Program Transformations https://t.co/M7XWzftAOT POPL12 で Vellvm という話で操作的意味論などの形式化がされてたんだな。」 / Twitter
Architecture and Compilers Group | Main / HomePage
h_sakuraiさんはTwitterを使っています 「XMLはDSLを作るには冗長すぎる。S式は単純すぎる。C言語のような表現力が欲しい。関数型言語の代数的データ型は悪くないけど表現力不足だ。Prologみたいなものがいいよなぁと自作するも、操作的意味論の意味も論理型言語で自然に書けるしPrologで良いと気がついて自作は辞めてる今日この頃。」 / Twitter
muratakさんはTwitterを使っています 「どうでも良いけど Prolog の SLD 反駁は誰がどう見ても操作的意味論だと思うし、出来上がる反駁木は証明っぽい。一方よくある成功集合を不動点で求めるタイプの表示的意味論(宣言的意味論?)は、結局コンパイル先が論理式の集合なので、あんまりモデルっぽくない。(個人の感想」 / Twitter
Jun InoueさんはTwitterを使っています 「@emptst どっちかというと公理的意味論が証明論に対応してて、操作的意味論は対応するものが無いと思います。論理系では普通考えない「計算手順」を指定するものなので。ただ、さうした手順(遷移関係)を証明したい論理式と捉えると操作的意味論も証明論に対応します。」 / Twitter
H. M. (ALGI2020@Kyoto, ALC2021@Kyoto)さんはTwitterを使っています 「公理的意味論は表示的意味論や操作的意味論と比べてそれほど定義が明確ではありませんが,基本的にはFloyd-Hoare論理の発展形で,Hoare三つ組などのassertionに対する推論システムだと思います。 https://t.co/rHof4YRj4K https://t.co/IRwOep4A4J」 / Twitter
Axiomatic semantics - Wikipedia
Chapter11.pdf
h_sakuraiさんはTwitterを使っています 「プログラミング言語を設計してよく説明するにはBNFを書いて説明できるのが良いし、言語の仕様を説明するには操作的意味論を説明できるとよい。一階述語論理の規則で説明出来て理解できればそれ以上に難しいことはない。Prologで実装出来てれば自然に一階述語論理は身につく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskell は操作的意味論が明確だし、型の単一化は実装に隠れてるし、型を理解するのはどうせ必要だしで、初心者的には楽なんじゃないかと。」 / Twitter
らりお・ザ・何らかの🈗然㊌㋞㋰㋷㋓ (Mastodon に引っ越しました)さんはTwitterを使っています 「表示的意味論はプログラムを数学の関数とか写像みたいなのに写すやつ 操作的意味論はプログラムを状態と状態遷移で規定するやつ 公理的意味論はプログラム全体が証明木みたいになるやつ というクッッッッソ雑な説明」 / Twitter
Shinji KonoさんはTwitterを使っています 「面白いのは数学の基本は操作的意味論を持つ直観主義論理であって、問題を記号的に読み、それを機械的に処理することが数学そのものだってこと。それを算数の文章題に当てはめて文句を言ってる人たちは数学をなんだと考えてるのかってこと。」 / Twitter
でこれきさんはTwitterを使っています 「@taqenoqo 公理はその体系の中で、証明木の根になれるやつ的なの。意味論はある体系を別の他の何かに言い換えて意味を説明するの(表示的意味論)とか簡約規則みたいなので意味を説明するの(操作的意味論)とか」 / Twitter
けこさんはTwitterを使っています 「@dico_leque じゃあ推論規則は操作的意味論?」 / Twitter
でこれきさんはTwitterを使っています 「@taqenoqo そう思ってる」 / Twitter
けこさんはTwitterを使っています 「@dico_leque なんかモヤモヤしてネットで色々調べてたけど結局前授業でもらった亀山先生の講義資料がめちゃわかりやすかった〜 https://t.co/FckCVHwyTf」 / Twitter
画力・博士号さんはTwitterを使っています 「アクターモデルに基づく並行計算の言語を設計するとして,Erlangのreceive式による選択的受信は別に核言語の機能に入れなくていい気がしてきた,型つけはともかく操作的意味論上は “全部一旦受信して,期待するメッセージではなかったら自分自身に送信し直す” でエミュレートできる気がする」 / Twitter
画力・博士号さんはTwitterを使っています 「いやしかし型つけがややこしくなるだけか(メッセージの分解をパターンマッチングに帰着させると必然的に強い依存型が必要になりそう)」 / Twitter
h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
画力・博士号さんはTwitterを使っています 「技術者として生きる自信急速に潰えてきた,わいは操作的意味論と型システムの各導出規則について思案してこねくり回していればそれで満足なんかもしれん…….」 / Twitter

h_sakuraiさんはTwitterを使っています 「Prolog使って、ラムダ計算の操作的意味論から述語作るとか、構文木の構文検査を作るとか、型推論規則から型検査述語作るとかならすぐできるよね。BNFからコンパイラコンパイラで構文解析は1時間でできるか出来ないかかなぁ。 https://t.co/1uVfB8fTtI」 / Twitter
h_sakuraiさんはTwitterを使っています 「e ::= i | e+e な言語で ーーーー (E-Int) i =&gt; i e1=&gt;i1  e2=&gt;i2 i1+i2 is i ーーーーーーーーー(E-Add) e1+e2=&gt;i から e(I):-integer(I). e(E1+E2):-e(E1),e(E2). e(I,I):-integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. :- e(1+2+3). :- e(1+2+3,6). みたいなかんじだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「答えをパッといって嫌われる老害扱いだろうな 他に、型付け検査、部分型付け、レコード、ヴァリアント型、うんぬんとPrologで様々な型システムを実装すると面白いよ。 複雑すぎると1時間で実装できなくなるけどw」 / Twitter
h_sakuraiさんはTwitterを使っています 「Hackerson 的なことで2週間くらいあれば、型クラスとか、多相レコード、多相バリアントができたりするようになれたりするはず。 線形型、アフィン型なんかも結構短く実装できる。Prologならね。 なぜならば、抽象度が関数型言語より高い、論理型言語だから。」 / Twitter
h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「S式やXMLはプログラミング言語を記述するには不向きなデータ記述言語だ。Prologのエジンバラ記法はなかなかプログラミング言語を記述するためのデータ記述言語として優れているので、プログラミング言語の実装実験に向いている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「集合論的型システムは型演算結果の正規化が難しい。 a | b は b | a | a と同じ型だ。 a | b - b は a | b &amp; !b 型であり a 型というような演算を高速に行う必要がある。それに加えてグラジュアルな型システムを導入しないと現状のPrologのプログラムと共存しずらい。型演算をどう高速に正規化するか。」 / Twitter
h_sakuraiさんはTwitterを使っています 「アルゴリズミックな規則を実装してみるだけならPrologをおすすめします。例: %評価規則 e(I,I):- integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. %型付け規則 t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). r(E,T,V):-t(E,T),e(E,V). :-r(1+2+3,int,6). :-halt. https://t.co/QYmgQ7RsDd」 / Twitter
h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Rustは低レベルなのでHaskellのほうが抽象度が高くかけて良いけど、Prologのほうがさらに抽象度が高く短く書けることがある。型システムを実装する場合などはPrologを使ったほうが短く書ける。なぜならば、単一化変数やバックトラックがあり、推論規則をそのまま書けるからだ。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「表示的意味論なら式は値を表すし、操作的意味論なら計算の仕方(の一部)も表すけど、「式で場面を表す」というのは論理的に不可能なのでナンセンス。」 / Twitter
h_sakuraiさんはTwitterを使っています 「自動的に推論規則を動作させることができるということは、型理論で用いられている一階述語論理の操作的意味論を自動的に実行しプログラミング言語として実行できるということである。しかしそれは順番に実行できるように推論規則の順番に気を使って書く必要があるということになる。」 / Twitter
muratakさんはTwitterを使っています 「ラムダ計算の操作的意味論程度ですら「意味論」と呼んでいるんだから,証明体系による論理式の分類も「意味論」と呼んでなんの問題もなさそうに思える.」 / Twitter
相川千穂さんはTwitterを使っています 「操作的意味論、意外と構文論的だという印象を受ける方が多いんですね」 / Twitter
yaxbellさんはTwitterを使っています 「意味論と証明論の差については、まだ、時間が自分のために使えた時に考えたことがあった。意味論という時には、明示的に、無限の操作を認める場合であって、証明論のときには、有限回の操作しか認めていない、という差がある。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「操作的意味論は意味論じゃない」「項モデルはモデルじゃない」「ゲーム意味論は(簡単な場合を除き)商が出てくるからモデルとして不十分」等々は半世紀以上にわたる現在進行形の論争。」 / Twitter
h_sakuraiさんはTwitterを使っています 「前向き推論は幅優先探索の操作的意味論においては完全であるけど、実際のPrologの処理系は深さ優先探索をするので不完全なのではないかなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「表示敵意味論では、プログラミング言語の性質を理解するには不十分なのではないかな。型があっていても実行してみないと停止するかどうかはわからないように、意味は通っていて人間には理解できて計算を完了出来る数式でもPrologの操作的意味を考えると計算が無限ループしてしまう可能性がある。」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論としてLispを実装したらこうなりますみたいなのが、PrologでLisp実装だと思うといいと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Lispのプログラムの証明に使う公理の証明だった。公理の証明って変な気もするけど、Lispの操作的意味論(モデル)をAgdaで作って、公理が真であることを示すってことね。Lispの項の等式とその性質を証明するのが面倒。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「#IPSJPRO 条件式, 再帰関数, quasi-quote の言語機能を HLisp 自身で定義できる.{Landin, '64] の SECD機械の拡張でできている.必要最小限の操作的意味論とはどのようなものか,という興味に基づいている. https://t.co/7JnYGq6TBP」 / Twitter
Keigo ImaiさんはTwitterを使っています 「#IPSJPRO [Plotkin '75] の流れをフォローします. 操作的意味論. evaluation context で引数部分にちょっとside condition がある (関数部分がマクロのとき引数を評価しないように).https://t.co/vrwFCzJa38」 / Twitter
はかりさんはTwitterを使っています 「2+3=5を"2+3を計算したら5"と読むか"2+3と5は同じ"と読むかの違いは操作的意味論と表示的意味論の違いっぽい。λ計算ではこの2つは同じになるけど、そういうところの整合性が取れてるのも改めて意識してみるとちょっと楽しい」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter
画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
2014-onward.pdf

バックトラック

尾崎隆大さんはTwitterを使っています 「% Prolog 'ならびを昇順に整列して順位を振る。ただし値に重複はない。'(_ならび,_順位,_値) :- sort(_ならび,_整列したならび), append(L1,[_値|_],_整列したならび), length([_|L1],_順位). 'ならびを昇順に取り出す。ただし値に重複はない。'(_ならび,_値) :- bagof(_,member(_値,_ならび),_).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これで分かることは、Prologは順位を振るという作業は得意ではありません。その理由は非決定性の述語をバックトラックで処理しようとすると、今何位目というカウント情報がバックトラックにより無効となってしまうからです。この観点からappend/3の偉大さを感じさせられます。'.」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの限界は評価順が深さ優先探索しか選べないことにあるので、それ以外の戦略をオプショナルに選択できると嬉しい。遅延評価だったり、幅優先探索だったりしていいし、バックトラックなしにできたり、変数の単一化ができなくなるオプションとかあっていいと思う。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの遅さの原因はバックトラック、単一化や、静的型システムがないための最適化能力不足にある。Mercuryみたいな言語は論理型言語に1つの型システムを加えるけど型にハマったプログラムしかかけなくなるので困ることもある。場合によって型システムを選択できると嬉しいのだよなぁ。」 / Twitter

カット

尾崎隆大さんはTwitterを使っています 「% Prolog カット(!)が何故必要か 成績を判定する(_成績,不可) :- between(0,59,_成績),!. 成績を判定する(_成績,可) :- between(60,79,_成績),!. 成績を判定する(_成績,良) :- between(80,89,_成績),!. 成績を判定する(_成績,優) :- between(90,100,_成績),!. 成績を判定する(_,異常値).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog もし以下の定義であると 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_,異常値).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績(84,_成績). _成績 = 良 ; _成績 = 異常値 ; false. ?- 'のようなことが起こってしまう。最後の定義節の頭部の第一引数が変数であるため、ここがどんな値でもこの節は真になる。カットがあれば、この節に到達しなくなるから、「異常値」という解がでることは避けられる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog これならOK 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_成績,異常値) :- \+(between(0,100,_成績)).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績を判定する(59.5,_成績). _成績 = 異常値. 'さて、between/3の第三引数に生成される値は実は整数である。したがって、整数でない値の59.5が入力されると \+(between(0,100,_成績)) が真となって、「異常値」が返される。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologのマニュアルでは、between/3のような組込述語でも、第一引数の型のような情報は載っていない。そもそもPrologでは型という概念が事実上存在しない。関数評価する為の式はあるから計算可能なものかどうかの判定はしている。整数とか浮動小数点数とか。しかしこれは「特例」。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '本来ならば、整数も浮動小数点数も必要なく、全部アトムでよかったはずだ。&gt;,&lt;,&gt;=,=&lt;,=:=,=\=,is。これら全て二引数の述語であるが、この引数にある特殊なアトムは計算可能だと。それだけで済む。そのアトムがどんな可能性を持つアトムであるか問う述語としてinteger/1があってもよいが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '組込述語 forall/2 ですが、 第一引数を実行して、真になった条件で、第二引数を実行します。そして、この条件での第二引数の実行が全て真になった場合、forall/2の実行は真になる。 第一引数が偽で第二引数が実行されない場合は、 ?- forall(fail,true). true. は、真となります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ということは、 'Pの否定'(P) :- forall(P,fail). と書くことができる.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '否定の定義にカットが必須だと言う話。 forall/2で書くことができるではないかとなりますが、forall/2の定義の中にカットが必要ないならば、胸を張れますが、そういうわけにはいかないでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。これ、 ?- forall(fail,fail). true. という例にするべきでした。それから、 「そして、この条件での第二引数の実行が全て真になった場合、」は 「そして、全ての第一引数の実行が真になった条件で第二引数の実行が真になった場合、」でした。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'forall/2の定義を論理的にPrologで定義するならば、当たり前に (\+)/1 が使われているだろうという意味ですね。(\+)/1 を使わなくても、それにあたることを述べる時にやはり、カットが必要になるだろうと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog カット ! ?- findall(_行ストリング,(repeat, (at_end_of_stream(current_input),!,fail; read_line_to_string(current_input,_行ストリング))),_行ストリングならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'findall/3,setof/3,bagof/3,forall/2などの事実上のループからの脱出用のカットです。'.」 / Twitter

単一化

尾崎隆大さんはTwitterを使っています 「% Prolog (a,b) は ','(a,b) という項と同じです。 , という関数子を中置きしているのは、 ?- current_op(A,B,','). A = 1000, B = xfy. 演算子定義されているからです。xfyの意味は左側にはこの関数がもはや来ることはない。右側には再帰的にこの項を持つことができるという意味です。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ですから a,b,c は ','(a,','(b,c)) という結合であると解析されます。(a,b,c) の ()は (a,b,c) = X だとイコールの左側とXが単一化されますが、 a,b,c = X だとXと単一化されるのはcだけで、a,bは目標だと解釈されます。それは意図に反するからここからここまでの「連言」だと指定する。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'その目的の為に()が使われています。従って、ここで大事なのは , の方で()は便宜的なものだと考えることができます。これで、 ?- (X,Y) = (a,b,c). X = a, Y = ','(b,c). の意味がお分かりでしょう。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- (X,Y) = (a,b,c,d). ならば X = a, Y = ','(b,','(c,d)). ですが、 ?- (X,Y) = (a,b,c,d). ならば X = a, Y = (b,c,d). でも構いません。要は項の(インタプリタによる)見せ方の問題です。 大事なことは , が演算子定義で xfy の形式だと定義されているということです。」 / Twitter

アトム

尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでSWI-Prologのprolog_flagの使い方の話をしましょう。 ?- current_prolog_flag(allow_dot_in_atom,X). X = true. 'だと、 尾崎.隆大 というようなアトムが可能になります。昨日、整数とか浮動小数点数なんてなくてもよいという話を書きましたが、この話が前提になっています。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これが、 X = false. SWI-Prologの起動時(初期値)はfalseになっていますが、 3.14 のような文字列はアトムになり得ません。基本的に数字から始まってもアトムだとPrologを設計し直そうとした場合、この小数点のドットの扱いが問題になるのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '基本的にアトムにドットが含まれていても問題ないというモードのもとで、数字と文字の区別をしないというルールにPrologを改めた時に、型の片鱗もないPrologが実現するのでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ' =:= や 大小符号の両辺。それに is/2 の第二引数の中にある評価しなくてはならないアトムの検査はどうするの?型が必要ではないかと言われるかも知れないが、そういうことはErlangやElixirにでも委託してしまえば良いのではないか。Prologで計算しなくても良いのではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '他言語との連携の遅延を0にすることはできないし、他言語側で計算可能かどうかアトムの評価をしてもらわねばならない。やはり、難しいか。PrologとErlangが一体のものであるのならともかく。'.」 / Twitter

append

尾崎隆大さんはTwitterを使っています 「% Prolog 分解/3は、append/3の第三引数を第一引数に持ってきたもの。 分解( L1 , [] ,L3) :- L1 = L3. 分解([A|L1], [A|L2],L3) :- 分解(L1, L2 ,L3). '第二節で第一引数の頭を削った残りを第一節の第三引数として取ることができる。第二引数は・・・頭からコピー。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog もちろん実行は. ?- 分解([1,2,3],X,Y). X = [], Y = [1,2,3] ; X = [1], Y = [2,3] ; X = [1,2], Y = [3] ; X = [1,2,3], Y = [] ; false. となる.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ふたつのリストを結合した新たなリストを生成するのがappend/3だった。 append(L1,L2,L) このappendから、図らず思いがけず、分解/3の機能が発見された。非決定性に、双方向性に。 結合のappendが書かれてから、分解のappendの全てが解明されるまでに3-4ヶ月が掛かったということだ。'. https://t.co/DweT0hYnqt」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すげえ美しい定義だ。これが動くのだから、Prologってスゲーなと思う。(オレのボキャ貧に絶望」 / Twitter
それさんはTwitterを使っています 「@KISUGI_JINEN @TakaoOzaki 動作は分かるのですが append([],L,L). append([X|L1],L2,[X|L3]):- append(L1,L2,L3). の定義で、何故そうなるのか想像するのが難しいです」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog 'Prologを開発したコルメライワのグループは1972年の12月頃には、Prologが使えるようになり、appendの書き方も発見されたのですが、この述語の可能性を全て理解するのに四ヶ月くらいは掛かったという伝説があります。彼らにしてそうですから、やはり正直難しいのでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog '神話とはしましたが、実際の話のようです。'. append([],L,L). append([A|L1],L2,[A|L3]) :- append(L1,L2,L3). select(A,[A|L],L). select(A,[B|L1],[B|L2]) :- select(A,L1,L2). '下は非決定性のパターン。この二つを理解できれば、Prologの再帰述語は怖くない。'.」 / Twitter
来生自然さんはTwitterを使っています 「@miyako_yayo @TakaoOzaki 何となく分かる。。。 https://t.co/jiyto20QPZ かも。。。」 / Twitter
[Prolog][Memo] append/3 | Basic Werk

select

尾崎隆大さんはTwitterを使っています 「% Prolog ' append/3 はもしかして神様というものがいるのかと思わせる作品ですが、昨今これ以上に使われているのが select/3 です。定義は select(A,[A|R],R). select(A,[B|R1],[B|R2]) :- select(A,R1,R2). 一個取り出して、それ以外の要素も参照できる非決定性の述語です。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- select(A,[1,2,3],R). A = 1, R = [2,3] ; A = 2, R = [1,3] ; A = 3, R = [2,3]. false. ?- member(A,[1,2,3]). A = 1 ; A = 2 ; A = 3 ; false. に似ていますね」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- append(L1,[A|L2],[1,2,3]). L1 = [], A = 1, L2 = [2,3] ; L1 = [1], A = 2, L2 = [3] ; L1 = [1,2], A = 3, L2 = [] ; false. ですから. ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). 'これでA,Rに関しては先程のselect(A,[1,2,3],R)と同じ結果が順に得られます'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'この最後の ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). ですが、「やっ」と一瞥すると、その途端に 何をやっているのか分かってしまう。 そういう動きとかに交渉をもたない理解が生まれる。宣言的とか言ってしまうと面白くないのですが、この脳内で何も動かすことのない理解。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これがPrologの醍醐味ということでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'select/4が大変重宝だということは何度も書いた。 select(_取得値,[_取得値|R],_更新値,[_更新値|R]). select(_取得値,[A|R1],_更新値,[A|R2]) :- select(_取得値,R1,_更新値,R2). という定義になる。取得値をキーにして取り出し、これを更新値に置き換えるという使い方になる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、それでは取得値をキーにするのではなく、何番目の要素であるかを指定してこれを更新する組込述語はというと、ないらしい。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 何番目の要素かを指定してならびを更新する(_ならび,_何番目,_更新値,_取得値,_更新されたならび) :- length([_|L1],_何番目), append(L1,[_取得値|L2],_ならび), append(L1,[_更新値|L2],_更新されたならび). 'これで書くことができているがselect/4のようにappendを使わず再帰で書くと'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog こんな感じかな nth1_select(_nth1,_取得値,L,_更新値,L2) :- nth1_select(1,_nth1,X,_取得値,_更新値,L2). nth1_select(N,N,_取得値,[_取得値|R],_更新値,[_更新値|R]). nth1_select(M,N,_取得値,[A|R1],_更新値,[A|R2]) :- M2 is M + 1, nth1_select(M2,N,_取得値,R1,_更新値,R2).」 / Twitter

findall

尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の分解の例(_分解された文字列) :- findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), atomic_list_concat(_文字ならび,w,_分解された文字列). https://t.co/IBes0l34km」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '1980年頃には知られていた findall/3 ですが、 findall/4 は相当に新しいと思います。第四引数に差分リストがくるのがこの述語ですが、 atomic_list_concat/3 が第二引数を植木算的に間にしか入れないために不十分で、空文字を番兵的に差分リストの中に使って最後のwを挿入しています。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 文字列の分解の例(_分解された文字列). _分解された文字列 = 大w草w原w不w可w避w . ?-」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '実は、 findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), の部分は本来、 atom_chars(大草原不可避,_文字ならび), でよいのだが、それだと _分解された文字列 の最後にwを付ける機会が一番最後になってしまう。それでfindall/4という凝った組込述語を使ったわけだ。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '一旦、 大w草w原w不w可w避 という文字列を作り、その最後に atom_concat/2 の第二引数をwとして実行して完成するというのは、癪なので。'.」 / Twitter

行入力

尾崎隆大さんはTwitterを使っています 「% Prolog 空白区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列," ","",_文字列ならび). カンマ区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列,",","",_文字列ならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ということで '文字列を区切り文字列で分割する。ただし、区切り文字列も要素として残す。'(_文字列,_区切り文字列,_置換された文字列) :- 文字列を区切り文字列で分割する(_文字列,_区切り文字列,L), ならびの空文字要素を置換文字列に変換する(L,_区切り文字列,_置換された文字列ならび). https://t.co/2HcnrAWB4M」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 今の所こんな迂遠な方法しか思いつかない。 ?- 文字列を区切り文字列で分割する(尾崎隆大,崎隆,L), ならびの空文字要素を置換文字列に変換する(L,崎隆,_置換された文字列ならび). L = [尾,'',大], _置換された文字列ならび = [尾,崎隆,大].」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 基本的にはこれでよいのでは。私はStringは使いませんが。 '入力 1行に1つ そのまま変数へ'(_変数) :- read_line_to_string(current_input,_変数). https://t.co/Pgnk42mDR1」 / Twitter
Prolog競プロ用チートシート - Qiita
尾崎隆大さんはTwitterを使っています 「% Prolog 'ファイルから情報を読み取る場合、Prologでは see(_ファイル名), としてストリームを形成してきました。 読み込み述語が read/1 の場合、end_of_fileを読み込むことによってファイルの終了を認識しました。そのことから、ひとつ不都合が生じました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それは、読み込み述語の第一節に停止節を起きたい場合に起こります。 読み込み([]) :- read(end_of_file),!. 読み込み([A|R]) :- read(A),読み込み(R). のようなコードを実行すると、第一節で read が空転して、結果一つ跳びに情報が取れてしまう。副作用の弱点が出る。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これを解決するのが、伝統的な、そう、先読みですということになる。COBOLではあるまいし。ここでは先読みのコードは載せませんが、実は解決策がある。第一節を、 読み込み([]) :- at_end_of_stream(current_input),!. ・・・ とするのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ' see(_ファイル名), で作られたストリームが後に変更になっていない場合は、現在のストリームをcurrent_inputで参照できます。そしてそれを使って、at_end_of_streamを認識できる。いわばpeekできる訳です。これも副作用だが、覗くだけなら悪さはしないということになります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これで、先読みのような不自然なコードから解放されます。ところが、実は事務処理のプログラムなどでは、この先読みによって、ひとつ前の情報が常に引数にあって、それをプログラムの中で自然に参照できて、情報の比較をすることの役に立っているいうこともあるのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ただ、現在のPrologのコードスタイルとしては、情報はできるだけ、データベースに展開するか、全データをリストに取り込んで処理に行くというのが主流で、ファイルを読み込みながら何かをすることは少ない。私も先読みで処理するコードを書く機会はほとんどなくなりました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'split_stringに訂正。 read_line_to_integers(L) :- read_line_to_string(current_input,String), split_string(String," ","",LL), maplist(integer_string,L,LL). integer_string(Integer,String) :- number_string(Integer,String), integer(Integer). となる。'. https://t.co/mL5NlwhO7N」 / Twitter

CSV

尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび) :- read_line_to_string(_入力,_ストリング), split_string(_ストリング,",","",_ストリングならび), maplist(string_to_atom,_ストリングならび,_項目ならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), findall(_項目ならび,( repeat,(at_end_of_stream(_入力),!,fail; 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび))),_項目区切り行ならび), close(_入力).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 再帰で 'csvファイルの項目区切り行を全て読み込む'(_入力,[]) :- at_end_of_stream(_入力),!. 'csvファイルの項目区切り行を全て読み込む'(_入力,[_項目ならび|R]) :- 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび), 'csvファイルの項目区切り行を全て読み込む'(_入力,R).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), 'csvファイルの項目区切り行を全て読み込む'(_入力,_項目区切り行ならび), close(_入力). '再帰だと、文字数制限の為すこし不自然なところがありますが、ざっとこんな感じになります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 文字列からカンマで区切られたアイテム数を得る(_文字列,_アイテム数) :- split_string(_文字列,",",",",_アイテムならび), length(_アイテムならび,_アイテム数).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog アイテムをアトムとして取り出したい 'CSV形式の文字列から任意のアイテムを取り出す'(_文字列,_アイテム) :- split_string(_文字列,",",",",_アイテムならび), member(S,_アイテムならび), string_to_atom(S,_アイテム).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 副文字列(_文字列,'"',_取り除いた文字列,'"'). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列).」 / Twitter
尾崎隆大さんはTwitterを使っています 「文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 両端の文字はダブルクォーテーション(_文字列), sub_atom(_文字列,1,_,1,_取り除いた文字列). 両端の文字はダブルクォーテーション(_文字列) :- sub_atom(_文字列,0,1,_,'"'), sub_atom(_文字列,_,1,0,'"').」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologで最も簡単なsplit処理は ?- atomic_list_concat(L, ',' ,'abc,def'). L = [abc,def]. だろう。これにはSWI-Prologではの但し書きが付く。'.」 / Twitter

エラーと偽の区別など

尾崎隆大さんはTwitterを使っています 「% 翻訳は 'プロパティベースのテストでは、反例を縮小すると他のバグが明らかになる可能性があります。 優れた実装は、これらの他のバグも報告します。 しかし、論理プログラミングはこれを本質的に困難にします。バグはしばしば失敗を引き起こし、失敗は有益ではなく、区別することができません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの主張はPrologが日本に紹介された頃から言われていたことで目新しさはないのだが、この続きが読みたい。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'コメントすると、Prologではエラーと偽の区別がし難いということが言われます。ここでは、それとは少し違って、 「確信をもって偽としたもの」と、非決定性述語の解をすべて取得する際に(一時的に)偽になったものが、同じ制御上に乗ってしまうため区別をつけられないの意味だと思います。'.」 / Twitter

DB

Sadayuki FuruhashiさんはTwitterを使っています 「RDBMSって視点によっては「プログラマブルなデータストア」で、データモデルはリレーショナルモデルに基づいていて、SQLでプログラムできる。一方、アプリケーションってプログラマブルじゃない。今その間が必要とされている。RDBMSほど柔軟性があっても困るけど、プログラマブルなデータストア。」 / Twitter
市川 真一さんはTwitterを使っています 「Prolog インタプリタに永続性を追加したもの、みたいな https://t.co/YXYiPrQBM8」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「RDBMSよりずっと柔軟性が高い、GemStone/Sはいかがでしょう?Smalltalkというプログラミング言語処理系がまるっと載ってます。 https://t.co/nKSlUd7ZYS」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'インメモリデータベースに採用される索引機構で書き込み速度の速いものはどんなものがあるのだろうか。Prologデータベースの弱点というよりも、Prologの弱点は定義節の追加が定義節数が多くなるに従って目に見えて遅くなることなので。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologでは、同一述語の定義節数が数千万を超えると書き込み速度が落ちる。これは第一引数に暗に、索引が振られていて、それがハッシュで、ハッシュテーブルの作り直しを強いられているのではないか。第二、第三、・・第n引数にも索引は欲しいのだから設計の変更が必要ではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '私の現在使っているマシンは物理10コアですが、 SWI-Prologで8-threadで並行処理をすると、逐次的に処理するのに較べ、7.74倍速くなります。メッセージ交換がない場合ですが。threadを気楽に使うことができるようになりたいものです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは何故8倍にならないかですが、これは唯一箇所にある1億節のデータベースを各スレッドが共通して参照しているからです。データベースをコアのcacheに収まるくらい小さくして、8-threadにすれば、8倍に極めて近くなるはずです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% prolog 'Prologデータベース(頭部のみで本体がないもの)の定義節のn番目を取得するためには nth_clauseという組込述語を使います。この述語の使い方は少々難しいので、 ''from:@TakaoOzaki nth_clause'' とツイッター参照をしてみてください。結構書き込んであります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの場合、予め、以下の定義をしておく。 第n節の頭部(_n,_頭部) :- nth_clause(_頭部,_n,Ref), clause(_頭部,_,Ref). ?- 第n節の頭部(2,氏名(X)). X = 東竜太郎 . '. https://t.co/s7UUAqHvQ3」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog の問題です ' 氏名(尾崎行雄). 氏名(東竜太郎). 年齢(60). 年齢(67). 氏名と年齢をばらばらに定義してしまいました。これを [[尾崎行雄,60],[東竜太郎,67]] のように定義順にまとめたい。そのためにはどんな述語を定義すればよいか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- findall([_氏名,_年齢],( 第n節の頭部(_n,氏名(_氏名)), 第n節の頭部(_n,年齢(_年齢))),L). L = [[尾崎行雄,60],[東竜太郎,67]]. ?-」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '現在インタプリタに動的に定義されている述語の定義節、その10001節目から20000節目までを切り取りたい。こんな場合、 ?- tell(temp),listing(述語名),told. のように仮ファイルに書き出して、vimのようなエディタで処理するのが普通。そうではなく、これを直接処理したい場合もある。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologを高速に動かすためには 給与_社員名('026',尾崎隆大). 逆_給与_社員名(尾崎隆大,'026'). 給与_総支給('026',150000). 逆_給与_総支給(150000,'026'). のように持てばよい。 泣き所は_idの管理の難しさと、大量のassert時の第一引数のハッシュテーブルの更新が原因の遅延。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'foo/2が1億節定義されているとする。その第一引数に2000のアイテムがランダム(平均50000)に選択されて現れる。さて、 ?- bagof(_,B ^ foo(A,B),_). Aをキーとして取り出す。第一解が現れるまで550秒掛かった。何度繰り返してもほとんど変わらない。この時間では実用にはならない。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '要するに1億要素の重複を取り除いた結果2000要素となるソートの実行時間が9分間掛かったということだ。バッチ処理で、このキーが取得できさえすれば処理を完了できるというのならば、9分掛かっても構わないというになるのだろうが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'なんで1億節というような、普通Prologでは扱わないような述語定義の話になるかというと、一昨日かな、失業保険のシステムの話が出たから。日本の場合は、1億人を管理することもあるのだろうから、述語定義もそういう単位になる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog データべースの解を再帰で集める(P,L) :- データべースの解を再帰で集める(1,P,L). データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R),!. データべースの解を再帰で集める(_,_,[]).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog これだと末尾再帰 データべースの解を再帰で集める(M,P,[]) :- \+nth_clause(P,M,_),!. データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'このcopy_term/2が必要な辺りがキワモノっぽい。 copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), clause/3の第二引数(本体の部分)を匿名変数にしているが、clauseはcallではない。定義は参照されるが、本体が導出される訳ではない。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '言うまでもないことだが、こんな定義は本来必要ない。 データベースの解を集める(P,L) :- findall(P,P,L). だけで済むのだから。nth_clause/3の使い方の例として示してみただけ。'.」 / Twitter

規則外の意味比較

ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 命題を真偽判定可能な単位に分割し、単位毎に既知の知識に照合して推論するのがPrologだと理解していますが、設問をもって「既知の知識」を自己拡張する能力って持ってましたっけ?」 / Twitter
JO3ALTさんはTwitterを使っています 「@uchujin17 当然、規則外の意味比較には対応していないはず。なので、あまり結果は良くなかったような記憶があります。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 僕も卒研はいちおう「人工知能」だったんですが、当時の人工知能は教授がモデルを作り、学生はひたすら既知データを打ち込んで、そこに設問を入れて正解率を見てみる、という原始的なものでした。正解率の上下で一喜一憂するけれど、その原因が何なのかは解析できていませんでした。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 打ち込んだ既知データがどれだけ正しいのか、打ち込み時にミスが無かったかどうかの検証も怪しいもので、GIGOをこねくり回している感がありました。だから僕は「人工知能」に絶望して、それが21世紀になってこんなに発展したことに驚いています。」 / Twitter

flatten

Shinji KonoさんはTwitterを使っています 「Prologを書けるようになったと感じたのはflatten書いてから。木構造を平らなリストに展開するやつね。そこから簡単な並列言語を作るまで2ヶ月くらい。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 昨日@shinji_kono先生が言及されていたflatten/2 my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten(V,L,[V|L]) :- var(V),!. my_flatten([],L,L). my_flatten(A,R,[A|R]) :- \+list(A),!. my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). list([_|_]).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'やはり、my_flatten/3の第三節の第二・第三引数のやり繰りが難しい。先生の感想もここら辺りを発見/理解できて、自信が付いたということなのでしょう。差分リストの類ですが、quick_sortの中に現れるそれよりは易しいと思います。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。間違い。 my_flatten/3の第四節になりますね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さらにすみません。 この第四節の第一引数のなかにR1となっているところがありますが、ここはRとしてください。R1でも構わないのですが、そして第一引数を強調しての1なのですが、他にRなんとやらが現れない場合はRだけにした方がよいでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '細かなことはともかく、 my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). この第二引数・第三引数の ・・,L2,L) :- ・・,L3,L), ・・,L2,L3). というパターンは頭に入れておくとよいですね。append/3の定義を覚えておくとよいように。'.」 / Twitter
Shinji KonoさんはTwitterを使っています 「@TakaoOzaki 変数なし想定で書いた方が良いです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@TakaoOzaki これで学ぶのは差分リストの使い方なので。変数が入る場合は最初にnumbervarsで変換してしまうのが楽です。理論でもそうするみたいです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「差分リストはPrologを使うプログラミング的な利点なのだが、Prologの持ってる論理的基礎とは相性がよろしくない。まったく合わないってわけでもないんだが、希望を砕くくらいにはずれてる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「上田先生のX’talは自身でモデル検査できるので、もう少し注目されても良かったが… まだ、ギリギリPrologと言える感じ? いや、別物?」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここからたどれるのかな。KL1Cがあるな。 https://t.co/a9OnMrdA6w」 / Twitter
Kazunori Ueda, Prof.
尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten([],[]). my_flatten([[A|R]|R1],L3) :- my_flatten([A|R],L2), append(L2,R2,L3), my_flatten(R1,R2),!. my_flatten([A|R1],[A|R2]) :- my_flatten(R1,R2). '変数を除外しましたが、append/3を差分に使ったこのコード。意外なことに最速かも知れない。'. https://t.co/CN5FcXuXav」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten([],L,L). my_flatten([[A|B]|R1],L2,L) :- my_flatten([A|B],L3,L), my_flatten(R1,L2,L3),!. my_flatten([A|R1],R,[A|R3]) :- my_flatten(R1,R,R3). 'これが最速コード。先程のappend/3を使ったコードとの差は3%程度です。'.」 / Twitter

ソケット

尾崎隆大さんはTwitterを使っています 「% Prolog udpを書いたから今度はtcp tcpソケットの準備(_接続用ソケット,_ポート) :- tcp_socket(_接続用ソケット), tcp_bind(_接続用ソケット, _ポート), tcp_listen(_接続用ソケット, 5).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog サーバーサイドはこんな流れ 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd) :- tcp_open_socket(_接続用ソケット,AcceptFd,_). tcpインタプリタ(AcceptFd) :- repeat, 行を読みだして実行(AcceptFd), fail.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ストリームを準備するのはこの段階 行を読みだして実行(AcceptFd) :- 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out), 一行読み出し項に変換(In,_項,_エラー情報), インタプリタの実行(_実行用ソケット,In,Out,_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out) :- tcp_accept(AcceptFd, _実行用ソケット, _Peer), tcp_open_socket(_実行用ソケット, In, Out), set_stream(Out, encoding(utf8)), set_stream(In, encoding(utf8)).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog インタプリタの実行(_ソケット,In,Out,_項) :- 親タスクで実行(In,Out,_項), 子タスクで実行(_実行用ソケット,In,Out,_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 親タスクで実行(In,Out,_項) :- 項は親タスクで実行するべきもの(_項),!, 親タスクで実行(In,Out,_項,_エラー情報), fail. 親タスクで実行(_,_,_項) :- 項は子タスクで実行するべきもの(_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 話が前後するが、トップレベルは サーバ(_ポート) :- tcpソケットの準備(_接続用ソケット,_ポート), 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd), tcpインタプリタ(AcceptFd).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 以下のような流れに 子タスクで実行(_実行用ソケット,In,Out,_項) :- thread_create(項を実行して結果を返す(In, Out, _項),_,[]). 項を実行して結果を返す(In, Out, _項) :- 目標評価(In, Out, _項), '項を書き出し、空行を送信する'(Out,_項), ストリームを閉じる(In,Out).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでは、tcp/ip関係の組込述語がどのような順序で使われるかを見ていただきたい。'.」 / Twitter

引数の数

み。さんはTwitterを使っています 「本タワーの一つにErlangの本があって読んでいるけど、大学の時のPrologの記憶が意外と残っててびっくりする。「関数に引数の数をarityと呼ぶ」というのを見て、ああarityねみたいになったけど、よく考えたら他で使ったことない単語だ。」 / Twitter
み。さんはTwitterを使っています 「arityって英単語として関数が取る引数の数という意味があるみたいだけど、これまで全然見なかったのは単に自分が勉強した範囲でたまたま使ってないだけかな。日本語だったら引数の数って表現すればいいから使う必要がない説もある。」 / Twitter
み。さんはTwitterを使っています 「数学とか論理学の英語論文とか読んでる人には馴染みのある単語なのかもしれない。」 / Twitter

尾崎隆大さんはTwitterを使っています 「@hatsugai % Prolog 'Prologに関しては、実は非常に単純なことをやっているんだと分からせてくれる解説本がない。どの本も何かに繋げたくての解説になっている。繋いで楽しませてやろうと思っている内容が少々高度なので、理解の進み具合との間にギャップが生じて難しくなる。'.」 / Twitter
prolog_sukiさんはTwitterを使っています 「質問掲示板とかのPrologの質問、かなりの割合で大学の授業で「やらされている課題を解くための」質問で、本当にPrologに興味持った人が質問しているわけではないので、萎える。一時期積極的に回答してたけどもうやってない。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '注意するまでもないと思うが、私はリストという言葉が大嫌いだから、これを「ならび」と表現している。時にリストと表現している述語もあるが。'.」 / Twitter
竹渕瑛一さんはTwitterを使っています 「Prologは再帰定義やカットがなければ,マルバツゲームみたいな言語だからわかりやすい」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性の述語 '1文字の出現頻度'(_文字列,_文字,_出現頻度) :- bagof(_,'1文字取り出す'(_文字列,_文字),L), length(L,_出現頻度). '1文字取り出す'(_文字列,_文字) :- sub_atom(_文字列,_,1,_,_文字).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これは私の7-8年前のツイートですが、誰でもが当たり前にこう思う時代は何時来るのか。'( 'https://t.co/8RyeB7WyqG').」 / Twitter
尾崎隆大さんはTwitterを使っています 「Prologで何ができるかという話ですが、手つかずの領域が多すぎて。コンピュータで処理する。プログラム言語で記述する。それに相応しい領域の常識というのが狭すぎて。それから外れたら、そこは全部Prologの領域です。要するにコンピュータで動くかどうかなんて最初から問題にしていない。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologは型どころか、構造体をつくらないな。述語以外には。'.」 / Twitter
prolog_sukiさんはTwitterを使っています 「論理学の本読んでるんだけどカット除去理論のカットとPrologのカットって全然別物なのね・・・」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '数式の話が出ましたが、Prologというのは is/2 の第二引数に数式を閉じ込めている。と書くて正確ではない。比較演算子の両辺には数式を書くことができます。ただ言語として遠ざけていることは感じます。私はその先鋒かな。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ほとんどのプログラム言語でPrologを組み込もうとすると、AZ-Prologのような専用の処理系に速度的に勝てない。組込述語の充実など使い勝手でも勝てない。さらにPrologのコードは数理論理学の専門家でない限り、突然に書くことは難しい。それで作っても使われなくなってしまう。'.」 / Twitter
zimmy_yさんはTwitterを使っています 「Prologでニューラルネットとか計算量が多いプログラムを作る場合、Visual Prologが有力候補です。 Visual Prologは型定義ありで、C言語並みの処理速度です。 私の持っている円周率プログラムでの 1万桁計算時間(AMD 3400G) SWI Prolog 201.813s LPA Prolog 104.823s Visual Prolog 16.875s」 / Twitter

Prolog - Wikipedia
Haskellが数学だとすれば、Prologは国語だ
Prologで構文解析という昔話
構文解析
は、PrologでシンプルなC言語を実装していますか? - VoidCC
Prolog Programming: Language Processing (in Japanese)
Prolog Programming: Database (in Japanese)
#:g1
神戸 Swi-Prologを使ったエキスパートシステムのメタルールやメタインタープリタの作成方法 - 初心者入門サンプル
大学 Swi-Prolog を使用したエキスパート システムのメタルールおよびメタインタプリタの作成方法 / 逆引きリファレンス
Multi-Paradigm Language TAO
プロローグ:ビルトイン付きの「バニラ」メタインタプリタ - コードログ
Prolog: "Vanilla" metainterpreter with builtins - Stack Overflow
metaprogramming - Depth limited search in prolog (vanilla meta-interpreter) - Stack Overflow
Prolog Guide - Metainterpreters
A Couple of Meta-interpreters in Prolog
Prologによる簡単なモデリング例
Prolog入門
事実と質問
UTF-8からUnicodeへの変換
Prolog入門
Prolog - Wikipedia
bitlaw-jp

単一化

ユニフィケーション - Wikipedia
Unification (computer science) - Wikipedia
Unification
2051-19.pdf
unify.pdf
ppl4-3.pdf
Microsoft PowerPoint - prolog-2007.ppt
ja
ppl4-3.pdf
proofsummit.pdf
CiNii 論文 -  A unification algorithm for typed λ-calculus
unify.pdf
機能単一化文法 - English translation – Linguee
7-6. Unification
ppl6-4.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、色々な言語がパターンマッチを言語の第一級構文として入れようとしている(入れている)のを見ると、言語の進化としてパターンマッチはやっぱり正解だったんだろうな。そこから、さらに双方向のパターンマッチとしてPrologのような単一化が入ったりしないだろうか。」 / Twitter

パースの法則

パースの法則 - Wikipedia
Peirce's law - Wikipedia
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
ch.pdf
d.y.d.
popl90.pdf
HOSC-double-barrel.pdf
lambdamu.pdf

時相論理 オートマトン ペトリネット

CiNii 論文 -  有限オートマトンと表現等価な正則時相論理とその論理設計検証への応用
0902-10.pdf
ja
線形時相論理 - Wikipedia
時相論理 - Wikipedia
PowerPoint Presentation
hagiya-jssst03.pdf
オートマトン
Microsoft PowerPoint - RS2010-spin2.pptx
研究会 - 線形時相論理式からイベントベースオートマトンへの変換を利用したペトリネット検証ツールHiPS向けon-the-flyモデル検査器
07gun_01hen_03.pdf
modelcheck.pdf
jssst05.pdf
techrep.dvi
ai_03_001.pdf
Microsoft PowerPoint - 20110911_swest11.ppt
モデル検査ツールSpinによる組込みソフトウェアの検証 受講メモ
10-6-B4-4.pdf
afreeSat050215.pdf
_pdf
CiNii 論文 -  線形時相論理による組込みシステムの仕様記述とペトリネットによる実装法 (情報システム研究会 数理的アプローチと情報システム、その他一般)
17th_nagata.pdf
Dr.Uchihira's PhD Thesis

時相論理

時相論理 - Wikipedia
lambdaCB-PPL05.pdf
59160283.pdf

ゲーデル変換 様相論理 古典論理

直観主義論理 - Wikipedia
ja
Math club public
no16
_pdf
(PDF) カリー・ハワード対応と直観主義論理の意味論入門 | Shunsuke Yatabe - Academia.edu
第13回「不完全性定理」
1525-7.pdf
1532jabstract.pdf
bookA4.dvi
計算機向きの様相論理の公理化
fom-mu-with-func.dvi
1602-11.pdf
Microsoft Word - 評価センター関先生・奨励研究_23C050_
afreeSat050215.pdf
論理学FAQのブログ
Substructural Negations | The Australasian Journal of Logic
様相演算子としての二重否定 - 論理学FAQのブログ
様相を「ならば」と「かつ」で定義する - 論理学FAQのブログ
20190527.pdf | Powered by Box
直観主義論理を理解した(してない) - Qiita

ループ・再帰

ループを再帰関数にする考え方 - Qiita
R:whileループを再帰に変換する - 初心者向けチュートリアル
JavaScriptでループ関数を再帰関数に変換する - 初心者向けチュートリアル
ppl8-2.pdf
相互に定義された末尾再帰
授業資料/09 - Experimental Mathematics 1 (2010)
cpp-intro/008-loop.md at master · EzoeRyou/cpp-intro

プログラム導出・等式推論

プログラム導出 - Wikipedia
形式的検証 - Wikipedia
形式等価判定 - Wikipedia
形式手法 - Wikipedia
LL脳がscalaの勉強を始めたよ その17 - Reinvention of the Wheel
1章 関数型プログラミングとは · morizooo/fpinscala-training Wiki
等式推論 (1)
3.dvi
_pdf
CiNii 論文 -  CafeOBJ 入門(3) : 等式推論と項書換システム
Equivalence Between the Quotient Term Model and the Least Complete Herbrand Model for a Functional-Logic Language
Equivalence of the Quotient Term Model and the Least Complete Herbrand Model for a Functional Logic Language. | Request PDF

線形論理

線形論理 - Wikipedia
シークエント計算 - Wikipedia
適切さの論理 - Wikipedia
ゲーム意味論 - Wikipedia
直観論理 - Wikipedia
summer1.pdf
birth.dvi
kenkyu0290100690.pdf
Brief introduction to linear logic
ipsjPRO00t.pdf
ja
1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記
「線形論理」の検索結果一覧 - 檜山正幸のキマイラ飼育記
線形論理。 - いもあらい。
Ryo HaruyamaさんはTwitterを使っています 「中止になった修論中間発表のスライド等です。内容は線型論理の相意味論についてです。 https://t.co/p00n1OEuOe」 / Twitter
rharuyama/soundness-for-linear-logic-regarding-phase-semantics: 修士論文中間発表用提出物
Ryo HaruyamaさんはTwitterを使っています 「ググると出てくる照井先生の「線型論理の誕生」が二種類[1][2]あって、内容が少し違うのだけど、後者[2]の方の参考文献の紹介が参考になると思う。 [1]: https://t.co/Th5lHpqVpg [2]: https://t.co/M6zZkZPlJN」 / Twitter
birth.dvi
1525-7.pdf
Ryo HaruyamaさんはTwitterを使っています 「やっぱり証明をちゃんとやろうとするとGirardの1987年の論文[3]が良いですかね。The Blind Spotという本もあるけど、1章の哲学パートは難しそうなので、頭から読むものではないかもしれない。形式的な部分だけなら参考になる。 [3]: https://t.co/QMwFZb3TXP」 / Twitter
Linear logic - ScienceDirect

確率論理

確率論理 - Wikipedia
ファジィ論理 - Wikipedia
砂山のパラドックス - Wikipedia
誤った二分法 - Wikipedia
ラフ集合 - Wikipedia
<30312D88CB978A985F95B62D927C93E090F290E690B62E706466>
論理的推論への確率論的アプローチ
反証主義に対してAyer50) やLakatos51) が繰り広げた批判の一つとして取り上げられたり,またそれらに答えるSir Karl Popperの議論2-4)でも注意されている事ではあるが,彼らの議論を待つまでもなく13),確率的言明はどの様な結
スライド 1
07.pdf

非古典論理

非単調論理 - Wikipedia
自己認識論理 - Wikipedia
無限論理 - Wikipedia
矛盾許容論理 - Wikipedia
中間論理 - Wikipedia
多値論理 - Wikipedia
クリプキ・モデル - Wikipedia

PDF

(PDF) CAPEレクチャー 論理学上級I 古典論理の推件計算と計算的内実(途中版) | Shunsuke Yatabe - Academia.edu
マルチエージェントシステムの提案とその実装言語の設計に関する研究 - 国立国会図書館デジタルコレクション
国立情報学研究所年報. 平成17年度 - 国立国会図書館デジタルコレクション
正規様相論理のためのCurry-Howard対応
論理型言語に基づく構文解析システムSAX

blog

含意の真理表はどうして決まるのか : tnomuraのブログ
論理包含の定義に関する違和感について - 七誌の開発日記
フィッチスタイルの自然演繹のやり方 - Yabu.log
タブローの威力 - 誰にも見えないブログ
論理学をつくる練習問題80(2)解答 - Yabu.log
今日の論理学:極大無矛盾集合に成り立つ5つの同値関係の証明 - 誰にも見えないブログ
今日の論理学:極大無矛盾集合の充足可能性補助定理の証明~APLの完全性証明 - 誰にも見えないブログ
今日の論理学:ハゲのパラドックス,連鎖推論のパラドックス,誤植など - 誰にも見えないブログ
今日の論理学:数学的プラトニズム、直観主義論理、排中律の廃止、NJ、誤植など - 誰にも見えないブログ
今日の論理学:直観主義論理続き,対偶の部分的な成立,排中律/背理法/二重否定除去の相互変換 - 誰にも見えないブログ

Qiita

Scalaで論理体系を作る話 - 1. 命題論理その1 - Qiita
テクニクシャンマンさんはTwitterを使っています 「Scalaで論理体系を作る話 - 2. 命題論理その2 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強力な論理である古典論理… https://t.co/OnVeM2Od5F」 / Twitter
qiitascalaさんはTwitterを使っています 「https://t.co/jTuF0mz5cf Scalaで論理体系を作る話 - 2. 命題論理その2 #scala 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強」 / Twitter
Scalaで論理体系を作る話 - 2. 命題論理その2 - Qiita
基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita

Twitter

論理と型

Shinji KonoさんはTwitterを使っています 「型=論理式、λ項=証明で、仕様記述は証明を含んでる。 仕様を型なしλ計算で書くと矛盾する可能性はある。 型のない仕様記述が何かってのは面白い問いだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「testing typeless specification by type evaluation かな。まぁ、Unification だが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologは型なし。しかし、一階述語論理。それが面白いところ。型は一階述語論理には含まれてない。appendが書けるというのはPrologのアイデアから10年かかってる。appendの正しい仕様を書けなかったってこと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型とは何かってのに戻ってくるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「仕様記述は論理式なので、その変数は単なる記号。その中身にはあらゆる可能な値が入る。値とは、スコーレム関数を含む関数と値の任意の組だな。エルブランモデルの値ね。型がないとはそういうこと。型なしλ計算。Prolog」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は一階述語論理で展開するから型がない。集合ってなんでも入るからな。なので x∈A とかを毎回書く必要がある。それが型。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理は型付λ計算を使って、命題は型、推論は型付λ項、真偽は証明で決める。ベースになる型 Set にはレベルが付く。逆説的だがSetには型はないとも言える。レベル以外の型はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので型のない仕様記述とは、一階述語論理のことだろうな。それに証明を付けると仕様記述が型になる。恒真あるいは充足可能な一階述語論理式は正しい型を持つ感じか。それを評価/evalとみなせるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaで、a : ? みたいにして論理式を書くことはできる。ただし、関数型 f : ? → ? は書かないと f a とか書けない。その状態で論理式を書くと型のない仕様記述に見える。」 / Twitter
Shinji KonoさんはTwitterを使っています 「?の代わりにSetと書くと通るのかな。それはないな。全部?で型検査することはできる。その時点でも型のエラーは出る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「関数の継続は関数のopenな部分になるのだが、データ型にも最後にSetを入れてopenなデータ構造にするというのを考えたことがある。その部分にメタな計算が入る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの?は便利なのでプログラミング言語にも欲しいな。IDEが持つべき機能かも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「誰が考えたんだろ。初出は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は数学のC言語というのを提唱してる。集合のアドレスは取れて整列できるのだが、そのアドレスにある集合に何が入っているかは不明。SEGVあり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論はもちろん関数型言語」 / Twitter

ホーア論理

uint256_tさんはTwitterを使っています 「ホーア論理って実用的(?)に使われてるんですか (この問いが意味あるものなのかすらわかっていない)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t Eiffelにホーア論理にそって、事前条件、事後条件、不変条件何かを指定してチェックできるんですけどね。そういうの流行らないですね。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 面白そうなので調べています」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t 有用だと思うんですけどね。型を書くのすら避けたい私にはいらないものですけど。それでも、assertを一杯入れるのはやろうとしたことがある。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 そういうことがコンパイラ基盤レベルでできると面白いかなと思ったのです」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t それ面白い。コード生成の正当性のチェックとか事前条件・事後条件だけ指定してコードを推定させるとか夢が広がる」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 絶対に便利だと思うので頑張って実装します」 / Twitter
病気の美少女さんはTwitterを使っています 「@uint256_t 実用面だと、既存の重要なプログラムの verification などの話は一時期ぼちぼち耳にしました。テクニックとしては、coq などでは素朴な state monad が使い物にならないので hoare state moad と呼ばれる物を使ったり等があります。」 / Twitter
病気の美少女さんはTwitterを使っています 「@uint256_t hoare state monad もそのままの定義で使うと transformer(https://t.co/9sHABxeibp)が必要になったりするので、問題領域にあわせた独自の monad を作ることが多い、らしい、です。 software foundations(https://t.co/vgGPfKiz7x) でも扱われています。coq で記述する際は参考になると思います。」 / Twitter
IPSJ-TPRO0502002.pdf
Software Foundations

古典論理

古典論理 直観主義論理 排中律 - Google 検索
ytbさんはTwitterを使っています 「論理学を勉強しだした学生で、「真理表が難しい」と嘆く人結構多いじゃないですか。 最初は奇異に聞こえるんです、だってあんな表、小学生でも覚えることができるじゃないですか。 でも、そもそもあの表は何を表現し、なぜあの値に決まったのか、って誰も何も説明しないし、そりゃ分からないですよね」 / Twitter
ytbさんはTwitterを使っています 「入門的な教科書って日常言語との自然な類推で論理的概念を導入しますよね。初めはいいんです。 まず「真理値は1/0の値で、これは日常言語で『真』と『偽』を表します」って言うじゃないですか。一見自然に見えます。 実はここで古典論理を密輸していて、後で躓く原因になるんですよね。」 / Twitter
ytbさんはTwitterを使っています 「「かつ」 ∧ と「または」∨は問題がなくて、個々で躓く人はあまりいないと思います。「AかつB」が真なのは、Aが真で同時にBが真のときだし、その逆も成り立つ。そりゃそうだ、という感じで。 否定「でない」¬も実はきな臭いんですが、これも一応自然に見えます。」 / Twitter
ytbさんはTwitterを使っています 「だけど、「ならば」⇒、問題はコレなんですよ。 A, Bが真ならば「A⇒Bは真」、つまり「草が緑ならば安倍晋三は内閣総理大臣である」が真、明らかに変に見えます。さらにAが偽の時「A⇒Bは真」、「今日が晴れていれば今日東京オリンピックが開催された」、おかしいですよね。」 / Twitter
ytbさんはTwitterを使っています 「これ、排中律を仮定すると、直観主義論理上、A⇒Bと¬A∨Bが同値になってしまうために起こる現象で、日常的な「ならば」と意味的に大きくかけ離れているように見えるんですよ。 なんとなく自然言語の意味の類推で真理表を導入するると、ここで分からなくなるのではないかと思います。」 / Twitter
ytbさんはTwitterを使っています 「だから、私は、古典論理を教える時は、 ①自然言語における推論と関係がない、純粋な代数系のひとつとして教える ②証明論的に、直観主義論理+(便利な)排中律という体系として教える(でも変なことも起きるのは我慢してと言う) のどちらかにしないと概念的な混乱を招くと思うんです。」 / Twitter
ytbさんはTwitterを使っています 「そうですね、「または」というのは命題論理において実はあまり重要な結合子ではないので、たんなる言葉の定義の問題のように見えるからじゃないでしょうか。 一方、「ならば」はまさしく論理的推論の今回を表す言葉で、その意味のブレは看過できないからではないのだと思います。」 / Twitter
dorompaさんはTwitterを使っています 「@ytb_at_twt A∨Bも自然言語の排他的論理和とは違いますけど、初学者でもそれほど違和感なく理解できて、A⇒Bの方が圧倒的に誤解が多いのはなぜなんでしょう。」 / Twitter
ytbさんはTwitterを使っています 「今回→根幹」 / Twitter
Masaki HagaさんはTwitterを使っています 「真理値表は古典命題論理の意味(解釈)を定義しているわけだけれど,その意味の意味がわからないですよね」 / Twitter
Masaki HagaさんはTwitterを使っています 「日常生活で同じ記号(言葉)がもっと曖昧で異なる意味を持っているから「とりあえず古典論理ではこういう意味だよ」とか言われても困ってしまうんだろうか.なんで「りんご」はりんごって意味なんだろうとか普段過ごしてても思わないわけだし.」 / Twitter
Masaki HagaさんはTwitterを使っています 「いまは便宜上「りんご」と言われたら,現在目の前にあるこのりんごのことを意味することとします(現在スーパーに売られているりんごや,あなたが昨日食べたりんごは「りんご」ではありません)とか言われたらそりゃ「は?」ってなりますよね.」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「〈⇒だけの論理〉 古典論理において、 P∧Q ⇔ ¬(P⇒¬Q) P∨Q ⇔ ¬P⇒Q が成り立つため、命題論理の命題は、演算子を⇒と¬だけにしても表現できる。」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(パースの法則)[古典論理] ((P→Q)→P)→P ※この公理は排中律と同値である。」 / Twitter
インターネットさんはTwitterを使っています 「古典論理の意味論の方で真理値を集合(ただしこのときクリプキフレーム上の順序の入った集合でも位相空間の開集合でもなく一般の集合)とすることもできて, 集合演算はブール代数になるので2値に帰着できる (話がとっ散らかってしまった)」 / Twitter
ukikagiさんはTwitterを使っています 「「古典論理(や直観主義論理)では仮定が偽の命題は自明に真だから反実仮想的な言明には意味がない」というのはナンセンスで、単にこれらの論理が自然言語のそのような側面を捉えられていない(あるいは意図的に削ぎ落としている)だけである」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「そういえば、僕はほとんど直観論理といっても意味論の方はやったことないんだけど、「Heyting代数意味論ぐらいは多少知っとくと良いよなあ」って感じで考えたら少し面白い直観が生えて、 古典論理だと二重否定をつけても「情報」が減らないからLKの右と左だけで議論できて矛盾(空シーケント)に対しての」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「強さを考えれば良くて、それがまさに「極大充足可能集合」というアイデアな訳だけど、直観論理はそういうことができなず「右シーケントを壊さない極大な左シーケント」みたいなのをシーケントごとに用意しなきゃいけないという風に考えると、妥当ですかね」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「s/壊さない/示さない」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「ex falso quodlibet 矛盾から任意の論理式が帰結されるという爆発律は、自明ではない気がします。 少なくとも、僕にとってはあまり納得感が無いのですが、皆さんはこれを素直に受け入れているのでしょうか?」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「尤もらしく思える二重否定除去を認めると、爆発律が導かれてしまいます。 古典論理では爆発律を認めざるを得ないし、直観主義論理も(納得できるかは別にして)爆発律を推論規則としています。 ¬や⊥の解釈、またはそれらに関する推論規則を変えることで、納得感のある説明ができるのでしょうか?」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「二重否定除去 ⇒ 納得できる ハイチュウ律 ⇒ 美味しそう もとい、排中律 ⇒ 納得できるけど、成り立たないのもアリだと思う 爆発律 ⇒ いまいち納得できない」 / Twitter
みくぺ ⍤⃝さんはTwitterを使っています 「@The_Maya_Hiker 私もすごい違和感あった どうやら、直観主義論理での証明図の''¬''と''⊥''がそれぞれ 最小論理での証明図(画像)の''→M''と''M''と入れ替えられるみたいで、 ¬の導入と¬の除去はそれぞれ→の導入と→の除去のひとつだと考えられる、というのが前原さんの論理学の本の付録で紹介されてた https://t.co/ImuMIeAgZe」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「@Cubism_FM ありがとうございます😃 なるほど、そういう捉え方もできますね。 僕の持っている戸次先生の本では、そもそも¬P をP →⊥の省略形と定義しています。 最小論理や直観主義論理では、古典論理とは否定の意味が違うので、確かにこう定義すると推論規則が上手く体系化できるようです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Union自体にはsupは使わないのだが、Unionの公理で否定形を使う必要がある。 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ... 古典論理なら、存在記号からsupが取れるわけだが、直観主義論理はそれを許さない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「似たような理由で選択公理と整列定理は直観主義論理だと別物になる。逆に正則公理は選択公理と同じになる。その差は存在記号の位置にあるのだが、直観主義論理では存在記号ないから。代わりにε-inductionを使う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りは80年代に研究されたらしいのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理も連続体仮説もPowerを含む一部の命題の話なので、それだけ議論すれば良い気もする。ZFのモデルなのは自明なので… 真実性定理みたいなのは命題全体の中身に関係するから難しいかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ODに関してはNもMもまったく同じ(一対一な順序数を入れ替えただけ)なので真実性定理が成立してると言っても良いのか。そもそも選択公理も連続体仮説もODの外にあるから。」 / Twitter
エヌユルさんはTwitterを使っています 「多数の人間は古典論理で会話してないし古典論理で自分の命題を証明しようともしてないとTwitter論理学者たちは気がつくべきでは?」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(爆発律) 間違った命題からはどんなことも証明できる。 ※これを採用しない論理体系を矛盾許容論理という。」 / Twitter

SAT

mr-csceさんはTwitterを使っています 「めちゃくちゃたくさんのものが命題論理式や一階述語論理式が充足可能かどうか、という問いに落とせること、凄いなという気持ちになった。 この間のn-colorable問題を充足可能性問題にreduceできるというのは単にNP完全の証明なだけではなくて、SATソルバでその問題を解けるということだしね。」 / Twitter
mr-csceさんはTwitterを使っています 「同様に他の多数の問題が充足可能かどうかという問題に落とし込めるということは、それらは全てSATソルバやSMTソルバで解けるということだから凄いなぁと思った。 こういう研究でもよかったかもしれない。笑」 / Twitter
ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
でぃぐさんはTwitterを使っています 「命題論理のコンパクト性を使ってなにか証明するの、計算の問題をSATに帰着させる過程に似ている」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理と直観主義命題論理だと普通に判定方法違いますからね。古典命題論理は証明図に沿ってやるならDavis-Putnamみたいになって、高速にやるならSATソルバー(はCDCL)ってことになるけど、直観主義だとその手ではうまくいかない」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「各原子論理式を命題変数でおき、全ての原子論理式の連言をFMで変数消去、生成された各制約条件(の命題変数)が元になった制約条件(の命題変数)の連言から含意されるという命題論理式を生成。すべての変数の消去後に、生成された命題論理式と元の論理式の原子論理式を命題変数にしたものをSATソルバに。」 / Twitter
quiver2kさんはTwitterを使っています 「@yuyabu2 すごく雑に言えば、元の問題をどんなに複雑でも命題論理式に変換すれば良いと言っているようなもので、SAT側も受けは広いですけどね。」 / Twitter
p進大好きbotさんはTwitterを使っています 「@j_tGAP またすみません。クラスモデルMでは論理式φの相対化φ^Mのメタな証明可能性ZFC⊦φ^Mは確かに独立命題があるのでφと¬φのどちらも偽になるかもしれませんが、φ^Mそのものと充足関係Sat(M,φ)は同値であり、こちらに関してはMが1つ与えられれば真理値が参照できるのではないでしょうか?」 / Twitter
なたがわさんはTwitterを使っています 「ふと思い出してTwitterで答えを得たいシリーズその2 「ちょうど片方のみが充足できる命題論理式のペアを受けるとどっちが充足できる方か教えてくれる神託付きの機械でSATを多項式時間で解く」(教えてください...)」 / Twitter
Masaki HaraさんはTwitterを使っています 「@mt_tilde 個人的にはHeyting代数も結構好き(古典論理におけるbool代数のように、各命題に1つずつ値を割り当てるだけでよいし、直観主義論理のLindenbaum代数になっている)なんですが、KripkeモデルのほうがSATに落としやすかったのでipc_botではKripkeモデルを採用しています。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Existential Quantification as Incremental SAT https://t.co/rIuuIC0OnW : 命題論理式の量化子除去をやるのにBDDとか使うのではなくSATソルバでという話。 https://t.co/wYypHYim6A」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの胡散臭い宣伝をした後、Prolog入門の説明をわっとする。DCGでパーサ作る。ラムダ計算を作り、型を付け、型推論し、Fether Weight Javaを実装する。ホーア理論を実装して証明し、命題論理を変換し、SATで解く。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを使えばという話の流れを考える。 アフィン論理を理解するには線形論理等の基本となる命題論理を理解しないとー。 命題論理を解くにはSATで解くのが良くて、Prologを使えばSATも作れるし、変換も簡単に書ける。それで、、、なんだっけ?っていう。。。」 / Twitter
h_sakuraiさんはTwitterを使っています 「アフィン論理と線形論理を理解しようと思ったら、命題論理がわからなくてSATなら解けるらしく、Z3だと関数のnotを取ればいいだけなのでいちいち書き換えしなくてもいいっぽいので楽そうだけど、よくわかってないのでした。結構チュートリアル長くて眠くなってきた。」 / Twitter
h_sakuraiさんはTwitterを使っています 「PrologでSATとかSMTの実装も短く書けるみたいだけど中身わからないし、命題論理は奥が深いんだなぁ。ググると論文とかPDFが出てくるのは非常にいいかんじなので、twitterで俺が荒らしてる感じもするのでローカルなところで話したいけど、誰もいなくなると嫌だ。うううっていう。」 / Twitter
h_sakuraiさんはTwitterを使っています 「SATが完全かどうかとかもよくわからんのだけど、けっこう素晴らしいんだな。 完全ではないけど健全な命題論理言語をPrologで作るのは多分簡単なんだろうなぁ。 しかし、出来ない焦るイライラするw 日本シリーズ見るw」 / Twitter
h_sakuraiさんはTwitterを使っています 「命題論理を解くにCNFにするとよくてCNFを解くのはSATが便利で、SATのすごいのがZ3などのSMTなのだな。」 / Twitter
Akira SugiuraさんはTwitterを使っています 「あ。前見たスライドに載ってた・・・orz SATは命題論理。SMTは述語論理。&gt; https://t.co/kJEZt97V97」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理の問題に対して直観主義命題論理のソルバーを使うのは牛刀なので、もう少し良さげな方法としては、論理式の否定をとって充足可能性に帰着して、Tseitin transformationでCNFに変換して各種SATソルバに解かせるのがよい。これなら理論的な計算量も落ちるし速い」 / Twitter
yoriyukiさんはTwitterを使っています 「命題論理に限れば、SATがすごく速くなった。制限があるけど述語論理もSMTでなんとか。一般の量化や帰納法が課題。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理の証明可能性は、論理式の否定をとったあとに変数を増やしながらCNFに変換してSATソルバーに入れるのがいいと思いますけど、二重否定をとってipc_botに投げても解けます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理は比較的簡単(SATの補問題なのでco-NP complete)だけど一階述語論理は決定不能で、そこをどうにかうまくやるソルバはいくつもある」 / Twitter
h_sakuraiさんはTwitterを使っています 「SATが論理命題で、SMTは算術演算があるやつで、z3はマイクロソフトの高速なSMTなんだな。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理のソルバー、判定するだけならSAT solverというソフトウェア群が知られている」 / Twitter
Masaki HaraさんはTwitterを使っています 「@ukikagi run {} for 8 なので、位数8以下という前提を立てて、そうするとドメインが有限になるので命題論理式に落とせて、あとはSATで解くという感じですね。必ずしも小さい方から出力されるわけではないようです。」 / Twitter
Masaki HaraさんはTwitterを使っています 「論文のネタにしようかと思ったけど明かしてしまうと、The ILTP Libraryの直観主義命題論理のデータセットのうち証明不可能なもののほとんどは、菱型のKripkeフレームを用いてSATに変換すると一瞬で反駁できる。」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「SATとか詳しくないけど https://t.co/HEcex0YXbb 関係あるような話題として、sbtのAutoPluginのためのこんなコードが既に入ってるので https://t.co/UG7Y0TtfIZ 依存関係管理に命題論理が役立つ? #ScalaMatsuri」 / Twitter
mti@さんはTwitterを使っています 「充足可能性問題(じゅうそくかのうせいもんだい、satisfiability problem, SAT)は、一つの命題論理式が与えられたとき、それに含まれる変数の値を偽あるいは真にうまく定めることによって全体の値を'真'にできるか、という問題をいう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理、解きなさいって言われたらSATソルバーにかけるだけなのに、証明図を書きなさいって言われた途端めんどくさくなるから理不尽ですね」 / Twitter

算術

Shinji KonoさんはTwitterを使っています 「不完全性定理は実際に決定できない命題pを構成するけど、p∨¬pの仮定とは両立する。それを場合分けすると、両方で⊥になる。あんまりよろしくない。でも自己言及してるはずだから直観主義論理での⊥の導出は停止性に引っかかるのか。対角線論法側は?」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「〈一階算術の公理系〉 有名な公理系を挙げる。 1.ペアノ算術:ペアノ公理+加法+乗法 2.ロビンソン算術:(1)-数学的帰納法 3.プレスバーガー算術:(1)-乗法 1と2は不完全性定理より真偽が決定不可能な命題が存在し、3は量化子消去ができるため全命題の真偽が決定できる。」 / Twitter
プレスバーガー算術 - Google 検索
プレスバーガー算術 - Wikipedia
プレスバーガー算術は本質的なのか? - martingale & Brownian motion
プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
原始帰納的算術 - Wikipedia
原始再帰関数 - Wikipedia
初等関数算術 - Wikipedia
ペアノの公理 - Google 検索

無理数と集合

Miura HidekiさんはTwitterを使っています 「どうせ無理数は関数の結果から得るしかないから、式を式のままで扱えばよいと思う」 / Twitter
╹ω╹linguini.leanさんはTwitterを使っています 「@miura1729 式の結果で表せる実数の集合になんか名前付いてないんでしょうか」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @1inguini なんらかの新しい表現(=式)を与えて新たに特定の数を示すことによって式の結果で表すことが可能になっていくため、集合としては成り立たない気がします。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局なんらかの「表現」を持って来て記号処理で、という話になりますよね。」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「“一般の無理数を表すデータ構造” をつくるのは無理なはずです(そもそもプログラムは可算無限個しかないのに対して無理数は非可算無限個ある)」 / Twitter
Shinji KonoさんはTwitterを使っています 「無理数には二種類あって、一つは述語論理的な記述を持つもの。そして、それ以外。まぁ、それ以外っていう記述は持つのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一つの実数と特定できるか、範囲を限定できるもの。」 / Twitter

集合論・位相・表示的意味論

histric-1

Shinji KonoさんはTwitterを使っています 「集合論使ってると、ポインタとキャスト使いまくりのCとSQLの組合せみたいで最低だな。でも、それは偶然ではなくて、当時、論理的な記述にしようと思うと、述語論理とそれに基づく集合論の記述を使うしかなかったってことね。既に圏論もあったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論と排中律の組合せだと、まず、 x なんか集合がある A x B ∋ x かどうか排中律で調べる。そうだったら A ∋ a をxから取り出せる。どっかでみたCのプログラムみたいだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかの集合Aから分出公理で select A (λ x → ... ) でいろいろ抜き出す。もちろん、それがSQLのselectの元なので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換公理のわけわかなのは、どんなに大きな集合で入れ換えても怒られないところ。まぁ、それ含めてUnionとれば良いじゃんってことなんだろうけど。構成主義とはほど遠い。でも、そこは上界があるのいう明示的な仮定で。上界はHODで取ってこれる仮定なので、まぁ、どうってことない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、置換公理は ε-inductionには関係しないはずだな。その辺りがHODの便利なところ。なので、いけそうな感じだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「V=Lって最近まで記号モデルに制約する的に読んでたんだが、VはあらゆるPower Setを含んでるので、むしろ、どんな部分集合でも完全に定義できるだけの定義可能な述語を持ってるって話なので、まぁ、無理っぽい。HODも同罪に見えるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HOD自体にはPower Setを作る能力はなくて、そこはsup(上界)に押し付けてる。supは構成的ではないのだが、構成主義論理は寛容なので「それがあるとすれば」的なものは許してくれる。もちろん「矛盾しても知りません」なのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので HOD=V ってよりは HOD+ sup=V みたいな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ謎な部分は多いけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HOD=ORD的な仮定を入れてるのは田中先生の本に書いてあったからなのだが、かなり微妙。定義可能なものを数えた順序数を使います的な。なので可算に落ちてしまう。sup で入れたPower Setも「それは記述可能だからOk」的に入ってる。実際の部分集合すべて的な記述は超限帰納でしかアクセスできない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「基数も見かけは簡単に書けた。これがなんなのかは、これから調べる感じ。この手の存在量化は recordで書くべきだな。 Card : OD Card = record { def = λ x → (a : Ordinal) → a o&lt; x → ¬ Bijection a x }」 / Twitter
Shinji KonoさんはTwitterを使っています 「∃x∈A→P x は ¬ ¬ ( ∃x∈A→P x ) = ¬ (x∈ A → ¬ P x ) なので、二重否定を入れれば構成主義論理で問題なく議論できる。 この辺りが強制法で様相論理を入れる理由。なので構成主義論理でやる限り。必要ないらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は集合とその関係∈なので、Agda的には二つのLevelがある。圏だと対象と射と射の関係ななで三つ。ODは順序数とその方程式なのでLevelは一つ。つまり∈のLevelに制約が付く。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Trans finite induction は順序数と述語を含むのでLevelは二つ。可算順序数なら実際に証明できる。単なる帰納法に落ちるので。なんだが、OD側では一つしかLevelがない。足せば良いのだが、排中律と選択公理の関係で排中律の対象となる述語のLevelを限定する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってことはTrans finite induction の述語はn に相対的に決まるのでn、suc n、… ってことになる。可算順序数なら、そのどれでも証明できる。使用するのはnとsuc nの二つ。suc nが多いのだが、排中律から選択公理を出すのにnがいる。なので二つ用意してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超限帰納法TFが可算順序数に対して証明できるってのは面白い。整数論の整合性はTFで示せて、不完全性定理的には示せないのだが、それはTFは非可算順序数に対しては証明できないから。TF自体はモデルがあるから無矛盾。Pの無矛盾と証明があるのとは別なのか。 ¬ ∃ ¬ Pと ∃ P だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りの議論のはぎれが悪いのは、メタ数学を議論するのに古典論理を使ってるからなのか。そこは直観主義論理を使うべきところなわけね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理の独立性でも、選択公理を否定しても無矛盾を先に示してる。え、それで証明終わりじゃないのと思ったものだが。」 / Twitter

histiric-2

Shinji KonoさんはTwitterを使っています 「古典集合論だと集合持ってきて、それをモデルにするとかやるのだが、ODによる連続体仮説だと直接Lを構築するので、それは要らないみたい。問題は集合と順序数との対応だから。V=Lから連続体仮説を出すのが既にできるはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理の方はよくわからない。排中律から行くのではないはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の中からは∋があれば順序は決まる。対応するアドレス(順序数)の絶対値は知り得ない。問題は部分集合間の順序なので、Power Setの問題になる。もちろん、それらはODの世界では絶対アドレスがあるので順序がある。⊆も排中律がないので、どっちかは決まらない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドは、どうもZFでない自明な集合論があると思ってるらしく。選択公理は自分たちのsetでは正しいとか書いてる。yの部分集合の要素z(y)を&lt;y,z(y)&gt;の順序対にして、それ全体を取ると自明に選択関数になる。そのz(y)が取れないから泣いてるんですが。setは要素から徐々に作られる的。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドのsetは要素から順々に作られるので整列定理も自明。でも、それでは実数は作れない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドでは直接的にPower ωの選択関数を否定する感じか。ωの選択関数は最小値を取れば良いのでZFである。ωの部分集合なら帰納法が使える。Power ωだとそうはいかない。でも超限帰納法と排中律で見つけることはできる。整列してるから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「だったら排中律に制限を入れれば一発か。選択公理が成立しないような排中律の反例を入れておく感じかな。LではPower ω はL ωの要素でもあるから、L ωにそういうものを入れられるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっとも、それが入るのはPower Setだけか。 (x : Power P ) → L P ∋ x ってだけだな。L P = Power P だと自明に成立する。他には影響しないから、ベキ集合の公理を邪魔しなければ良いってこと?」 / Twitter
Shinji KonoさんはTwitterを使っています 「ベキ集合の公理を出そうと思ったらネットが落ちてるんだった。github側があるな。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x ) power← : ∀( A t : ZFSet ) → t ⊆ A → Power A ∋ t 二重否定が入ってるのは直観主義論理だから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これはPower Aが構成的でないことが原因。なので、A ∋ x に証明がなくても許される。これは都合が良いかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFもだいぶ見えてきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律から選択公理を導出するところでは二箇所で排中律を使ってる。普通に使うところと ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B だな。x がないと、B を作れない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここで二重否定が入るのは Power Aが構成的である必要を外すため。そうでないと、Power AはA ∋ xを構成する方法を全部知ってる必要がある。A=ωとかなら良い。A = Power ω だとちょっと。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x )」 / Twitter
Shinji KonoさんはTwitterを使っています 「D : HOD → HOD つまり定義をHOD として Df x = Power x ∩ D x を使ってLを構成するってideaなんだが、 L ω = V ω なDでないとだめ。Lに自由度があるので V = L にも自由度がある。 V = HOD ⊇ L だがDをPower xにするとV=Lになる。 ても、そこからは何も出ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record L : Set (suc n) where field ldef : (x : Ordinal) → odef D x ∧ Set n とするとDに適切な制約を入れれば D → ZF とできそうな気はする。Vとかωとかがちゃんとできれば。Dが強制条件でGeneric Filterとかになれば。もっと簡単な条件もありそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのだが、このV=Lから選択公理=排中律を出すのはなぁ。整列定理はHODでは成立してる。古典集合論だと排中律の方が仮定されてるから… 順序数方程式で排中律が成立する条件みたいなのを探さないとダメか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「連続体仮説の方はDをそういう風に定義できるできると思われる。もともと、それに近い仮定は入れてしまってるのだが。古典集合論のHODでもそれに近いは仮定はあるみたい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もしかして、Dの定義に排中律を書けるのかな。 lem : D lem x = record { od = record { def = λ x → &amp; (Power x )∧ (λ y → Dec ( odef x y )) }} うーん、どうかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「で、そこに対角線論法を書くと選択公理を否定できる的な?」 / Twitter
Shinji KonoさんはTwitterを使っています 「コーエン先生は「数学は選択公理と連続体仮説抜きで議論されるようになる」ってな考えだったみたいだけど、直観主義論理と圏論はそういうものだな。同じものだし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec は強過ぎるが、¬ ¬ Dec ってのもなぁ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「¬ ¬ Dec ( x ∋ y ) ってもしかして、何も言ってない?」 / Twitter

Shinji KonoさんはTwitterを使っています 「表示的意味論と集合論は、位相空間論の重要な応用」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、それはわかるんだが、論理そのものが可算に閉じてるので、いろんなものを自然数にencodeするのが数学ってことだと思うと少し虚しいところがあるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そして数学者は数論に回帰するわけね」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、可算無限の本当の大きさを人は知らない」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は、整列定理と選択公理が排中律で分離できるってのを最初に教えてくれれば、もっとずっと早く理解できたと思う。まだ、チコノフの定理やってない。」 / Twitter

自然演繹・原論

Shinji KonoさんはTwitterを使っています 「もともと集合論で数学自体論理自体に疑いが出てきた時に、論理とはこういうものと疑えない操作的意味論を持つ、つまり 単なる記号ゲーム として提案されたのが自然演繹、Natural Deduction 。そして今の定理証明支援系につながってる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹以前の論理学は、単なるそれっぽい文学。もちろん、モデルがあれば整合性があるのだが。ユークリッドとかニュートンとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「吉田先生がいきなりユークリッドの原論を言語で読もうと言い出したのは、自然演繹を越える何かがあると思ったからだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹NJは記号の処理だけだが、原論は図と作図操作がある。作図操作は物理制約なので記号的な操作とは異なる可能性がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「図に関する推論も結構研究されて補助線を導出するとかあった。回転とかの幾何学的推論を記号に落とす方法はデカルトの解析幾何、つまり、線形代数がある。確かにそれは原論のモデルになるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「原論の推論に対応するものは自明には見えない。」 / Twitter

定理発見

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「定理発見は演繹操作では無理で、モンテカルロ法的な手法が必要。 数学の法則は無限に存在するはずだが、たぶん99.99...%がゴミ法則という罠。」 / Twitter
モンテカルロ法 - Google 検索

直観主義論理・一階述語論理

Shinji KonoさんはTwitterを使っています 「集合論と一階述語論理で数学を記述すると、∀ x . ω∋x → ... ってしつこく書くとこになるので煩雑。高階直観主義論理で書くと明確になる。要するに圏論/Dudective Systemでやれってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「数学的帰納法はAgdaではdataの分解になる。そこに、なんの曖昧性も出てこない。一階述語論理でやるとかなり悲惨。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超限帰納法も教科書通り極めてsimpleに書ける。 TransFinite : { ψ : ord → Set (suc n) } → ( (x : ord) → ( (y : ord ) → y o&lt; x → ψ y ) → ψ x ) → ∀ (x : ord) → ψ x これは可算順序数上で証明可能。可算順序数は構成的存在物ってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaで書いたので、今更、Model に関する理解が深まった。そして、等式述語を入れる難しさも理解した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「All X =&gt; All Y =&gt; (( Exist Z =&gt; ( ( father ( X , Z ) ∧ father ( Y , Z ) ))) ⇒ brother ( X , Y) ) は brother ( X , Y) :- father (X , Z) , father (Y , Z) に正しく変換された。ちょっとうれしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理のinterpretationは個々の述語の審議値の定義。公理をすべて真にするのはModelという。矛盾があると命題は全部真になってしまうので、無矛盾性は偽な命題があること。あるいは非自明なModelがあること。公理がなくても恒真な命題は任意の interpretationに対して真。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの実装でこの辺りを調べるだけでも面白かった。Modelの構築で見落としがあると、なかなか公理が真にならない。公理には∀が入ってることが多いから。ってModelを手で作るからだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「恒真な命題は割と簡単に真になる。トートロジーと恒真を区別するのはやめろ〜 区別してるのはダメな本認定で。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理の∀と∃はカッコに対する位置に過敏で間違えやすい。初学者泣かせ。幸いなことにプログラミングには出てこない。節形式にすればなくなるので幸せになれる。∃を関数に置き換えるだけでも。εδも関数明示でわかりやすくなる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「εδでも実際の証明では関数使うが、一般的に∃が関数です置換え可能ってのに自力で気がつくのは難しいかも。ただしscopeがずれることがあって… 正則公理と選択公理の区別がなくなったり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「正則公理のミニマルは自分自身との共通部分が空な自分の要素だから、空でない集合の要素を取ってきてるので確かに選択公理っぽいのだが、排中律があれば「取れるか取れないかどちらか」なので特になにも付け加えられないのでセーフ。直観主義論理では関数を作る必要があるのでアウト。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理の方がはっきりわかりやすしいし、定式化も楽。そういう風に記述するべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理はモデルを使って意味付けるが、直観主義論理では証明があることが真の意味になる。モデルの構築は面倒だが、証明は限定的。公理に矛盾があるとモデルは全部おじゃんだが、証明は無矛盾に触らない限り有効。証明があるなら恒真ってのはわかりやすい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理で非構成的な議論ができないわけじゃなくて、二重否定で包んで議論すれば良い。非構成的な存在物、例えば選択関数でも、明示的に仮定すれば良い。今の数学だと選択公理はそうなってる。排中律でもそうするべきだってのが一番の違いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデルは排中律が成立しない命題を自然数を使って実際に構築するわけなので、排中律は明示するべきってのは説得力がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「整列定理と選択公理が同値なのは排中律があるからなのだが、整列定理は公理っぽい。実数でも右から左の順序あるし。二次元だとあんまり自明じゃないが…」 / Twitter
ゆかたゆさんはTwitterを使っています 「ところで慣れていない人が物事の「本質」をモデル化しようとする時にはunionを取ってしまいがちという偏見があるのですが、intersectを取った方が嬉しいことが多いです。」 / Twitter
intersect - Google 検索

histric-1

SUHARA Hiromichiさんのツイート: "アトミックな命題についてはその通りなのですが、Prologで定義できるすべての命題についていうと、無限再帰や無限バックトラックを起こすことができ、つまり、真偽の決定できない命題が書けるのですね。これをもって、Prologの不完全性をいうことができます。… https://t.co/Qjwk2ZomeB"
Тургеневさんのツイート: "Prolog(論理型プログラミング言語)においては、真であると明示的に宣言されていない命題はすべて偽として扱う(閉世界仮説と呼ぶ)ということを今日習ったんだけど、「そこになければないですね」って店員が言うのはダイソーが閉世界仮説を採用しているからだとわかってすっきりした"
yuyabuさんはTwitterを使っています: 「フレーゲの公理系すごいな。6つのトートロジーと2つの規則から任意のトートロジー導けるとかヤバすぎでしょ。」 / Twitter
yuyabuさんはTwitterを使っています: 「10章入った。任意のトートロジーを扱いたいので公理系をつくる、という話。公理=自明なトートロジーを置き換え規則を適用することで任意のトートロジーを導くことができる。例示されたフレーゲの公理系では6つ!のトートロジーから任意のトートロジーを導くことができることが証明されている https://t.co/3JD1gEMtFf」 / Twitter
チャーチ数 - Google 検索
帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ
Hisabumi HatsugaiさんはTwitterを使っています: 「Actor model でもデッドロック発見器的なもの(システムの状態遷移計算)を作ることはできる.λ計算のインタープリタを作る必要があるので少し規模が大きくなるかも.正常に動くモデルの振る舞いを観察するのは楽しいだろう.(続」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「しかし問題のあるモデルの場合,actor configuration に含まれるメッセージのマルチセットが大きくなる一方(未処理のメッセージが溜まる一方)ということの方が多そうな気がする.この場合は計算が終わらない.閾値を設けて止め,溜まってしまうメッセージを分析するツールとすればいいかもしれない.」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査の習得でつまづくことの1つは時相論理.式が自分の意図とあっているか不安になる.プログラマは理解するためにプログラミングするという武器を持っているので,時相論理の処理部分を自分で書いてみればいい.そう考えて構成をくふうした.アルゴリズム実装と視覚的フィードバック. https://t.co/upEsUJgubz」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査では実行が無限に続くケースを対象にすることが多いけど,途中で停止するケースが含まれていても少し修正すれば適用できる.すると EX true でデッドロック状態を見つけることができる.でも AFφ の落とし穴に落ちることもある (^^;).」 / Twitter
Miura HidekiさんはTwitterを使っています: 「クリティカルパスを短くするのとカルノー図を用いた論理圧縮は独立な事象だと思うけど、HDLを使っていればその程度の論理圧縮はやってくれる気もする。」 / Twitter
解答略さんはTwitterを使っています: 「こういう図を見るたびに思うのですが、微細加工技術の進歩した現代の半導体回路設計の現場においては 「論理素子の少ない(面積の小さい)回路図」 はそれほど求められて無い気がする。むしろテクノロジーマッピングを考慮して 「動作速度の速い(クリティカルパスの短い)回路」 を作る方が重要なのでは https://t.co/FoBBISedMS」 / Twitter
論理回路学たんさんはTwitterを使っています: 「<論理回路学・要点のつながり> 論理関数の簡単化 複雑な論理式を簡単化すれば 回路の部品が減って,良い回路になる。 論理式の簡単化は方法が2つ ・ブール代数で計算して簡単化 ※下図(3)→(6) または ・カルノー図で出力をまとめて簡単化 ※下図(3)→(4)→(5)→(6) https://t.co/ZpXOK8f4Hl」 / Twitter
FadisさんはTwitterを使っています 「再帰は末尾再帰最適化が行われない場合1回まわる毎に少なくともリターンアドレスがスタックに積まれ、再帰回数が多すぎるとプロセスはスタックを使い切る。末尾再帰最適化はコンパイラの気分でかからない事がある為、ループ回数について予想がつかない場合の再帰への書き換えはおすすめできない」 / Twitter
FadisさんはTwitterを使っています 「再帰でスタックを使い切ってページ未割り当てのアドレスに値をpushしてSEGVしたメモリダンプは画像で見ると縞模様が出やすいので目grepビギナーにオススメ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「一般論としてまったくその通りなんだけど、関数型言語の中には言語仕様で末尾最適化を保証しているものもあったり。Scheme (R5RS) なんかはその例。 ただし以下の階乗の例にあるように末尾最適化が可能なコードは、素朴な再帰的書き方よりもやや冗長になることが https://t.co/bSOFBzri9R https://t.co/3jTKm3opAn」 / Twitter
お気楽 Scheme プログラミング入門
きいねく@とりあえずやるさんはTwitterを使っています 「論理式って一行表記すると視認性わるいよなぁと常々思っていたので,これくらいはやりたい. (特に量化子の部分を小さくするのはよくやる) https://t.co/t62gffQuHR」 / Twitter
状態(の変化)*さんはTwitterを使っています 「JSONをunificationベースで扱う、とか、JSONに(論理学でいうところの)述語を突っ込むとか、あるにはあるけど https://t.co/KvRbb1fBTd これ使えばPrologはつくれるよね」 / Twitter
JsonLogic
状態(の変化)*さんはTwitterを使っています 「QuineのNF関連みてるとわかるけど、atom(集合論の界隈ではurelement=原要素、という用語を使う)が何であるかは論理型言語とかメタプログラミングの上では割とどうでもいい(処理系はそこに頓着する理由がない)」 / Twitter

histric-2

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分も「論理学をつくる」でフィッチスタイルを見て、これはわかりやすいと思った。今週末のセミナーでは同じ流れを Isabelle でやる。わかりやすい上に規則適用が正しいかどうかのチェックも入るので完璧。パズル的な楽しさもある。練習問題もたくさん用意した。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴール(仮定の列と帰結)を見たとき、どういうものがあったらどう攻撃するか(どの規則を使うか)というかなり確定的なヒューリスティクスがあるのでどんどん証明ができるようになる。1点、否定が難しくて、それはそれでパズルとして面白い。背理法を使うやつ。」 / Twitter
ぁゃιぃツイートをしないさんはTwitterを使っています 「え、もしかして古典論理の定理を二重否定した奴全部直観主義で証明できたりしますか」 / Twitter
Masaki HaraさんはTwitterを使っています 「@Kory__3 命題論理ではそうで(Glivenko変換)、述語論理では量化の付近にも二重否定をつける必要があります(Godelの二重否定変換)」 / Twitter
cutsea110さんはTwitterを使っています 「1階述語論理の論理式の真偽を自動判定するのは原理的に不可能…why? 後続の有界スコープ仮説を導入して命題論理式に変換すれば…SATソルバに云々はワカル!!」 / Twitter
26_3_78.pdf
アラクーさんはTwitterを使っています 「命題論理を項書き換え系とみなして完備化すれば自動証明システムを作れるクヌよ!」 / Twitter
アラクーさんはTwitterを使っています 「@yukeizuta 四色定理とかケプラー予想とかのように部分的にコンピュータに計算させたものから、それこそ論理式のレベルで命題を解くようなシステム(グレブナー基底などの項書き換えシステムを含む)の研究もなされていると思います」 / Twitter
ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「ゼミの準備として書いた単純型付きラムダ計算の項から対応する命題論理の証明が出せるっていう証明。要するにCurry-Howard対応(の一方向)。手抜き。 http://t.co/q84AlTrB @ideoneさんから」 / Twitter
gQUcZ - Online IDE & Debugging Tool - Ideone.com
ミノ駆動さんはTwitterを使っています 「「テストは『欠陥があること』しか示せない」 ソフトウェアテスト原則のひとつ。 テストでバグがあることは証明できる。 しかしバグがないことは証明できないのだ。 例の検査にも同じことが言える。」 / Twitter
広瀬香美さんはTwitterを使っています 「それが良いなら、 命題 -&gt; プログラム 直観主義命題論理の自然演繹において、 命題さえあれば、証明図は定まる 証明図は、型付け図に対応できるので、命題は項をエンコードしたものとみなせる。 プログラム -&gt; 命題 項が与えられたら、命題も得られる つまり 命題 = 項(プログラム) も言えないか?」 / Twitter
広瀬香美さんはTwitterを使っています 「~しくみのほうでは、型判断でターンスタイルを使ってたので、論理式で使う記号と分けて使いたいのかなとなった。 ~序説のほうでは、ターンスタイルはもっと上位の概念で使ってた(証明図が得られることをターンスタイルで表していた)から、まあ仕方ないのだろうけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「記号論理は interpretation とmodelだな。そして、それは自然演繹とは別。」 / Twitter

hagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ronri/5.txt

Refinement Types

Dependent Types と Refinement Types の違い - SevenColoured
Refinement type - Wikipedia
型をさらに拡張するーーRefinement Typesについて - Line 1: Error: Invalid Blog('by Esehara' )
Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
refinement_types_for_haskell.pdf
Refinement Type | Developers.IO
Programming with Refinement Types
terminology - Dependent types vs refinement types - Computer Science Stack Exchange
Refinement Types
MSR-TR-2009-147-SP1.pdf

型レベル計算・コンパイル時計算・依存型

PureScript型レベル計算入門 - Qiita
Haskell 型レベル計算で継続渡し - keigoiの日記
Type-level TypeScript - ryota-ka's blog
Scalaで型レベルのラムダ計算 - 貳佰伍拾陸夜日記
Scalaで型レベル”だけ”でクイックソート | POSTD
欲望の赴くままRustで型レベルPeano自然数とサイズ付きベクトルを書いた - konn-san.com
ソフトウェアの基礎

名前付けの遅延

アイドル焼肉さんはTwitterを使っています 「僕が今やりたいことをあえて言語化すると意味付けの遅延なのかなって気がしてきた。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「性質と実体、認識論と存在論、統語論と意味論、代数と空間のような双対性はいろいろな領域にあって、これらのうち前者から徐々に後者を導いていくっていう方法論をソフトウェア開発の分野で構築できないかなって考えている。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「プログラミングではとにもかくにも名前をつけることは崇高な行為と見なされがちで、それ自体は別にいいんだけど、とにかく意味付けを急がされる感じがする。もっと無味無臭の構造があっていいと思っていて、ユーザが使い続けることによってそこに意味が生まれてくるのではないかと。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「「無味無臭の構造」っていうのは具体的な言語機能でいうと、たとえば構造的部分型とか無名関数とかそういうのです。それ自体にどういう意味があるかはわからんけど、とにかくその構造には価値があるみたいなやつ。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「念のために言うと、意味論の側を軽視してるつもりはまったくなく、構造よりも意味のほうが見出すのに時間がかかる(ことが多い)っていうだけです。」 / Twitter
尾崎隆大さんはTwitterを使っています 「@a_suenami % Prolog 何が書かれているか想像しながら読むことになりますが. 'スケルトン的なコードはどうなのでしょうか'( 'https://t.co/vtuEFoqyhC') :- 何が書かれているか想像しながら読むことになりますが.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog スケルトン定義はこちら '1'([_1|_2],[_3|_4]) :- select(_3,[_1|_2],_1,[_5|_4]), forall(member(_6,[_5|_4]),_6 @&gt;= _3).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '問題はこれで何をやっているか判るかですが、 select forall @&gt;= この三つの組み合わせで最大値か最小値絡みであることは瞬時に分かる。 次に、selectが4引数なので、最大値または最小値となにかを交換しているのだろうなと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、 https://t.co/Ay9pM3DV0F の方は どうかと云うと、 「ならびの最小値要素を求め先頭要素と入れ替える」 より後は読みません。 これは本気の話しで、一度書かれたPrologプログラムの本体部分を読むことはありません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '既にtwitter上で度々記した通り、 述語名がABCでA,B,Cがおよそ句を意味するとき、述語の分割は倒置を省略すると、 ABC :- A,B,C. ABC :- AB,C. ABC :- A,BC. となり、ABCでその内容を一望できてしまいます。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '実際には ABC :- DE. と再定義される場合もあります。再定義されれば、ここから始まるわけですから、ABCを読むだけでは情報が不足である心配は大いにあるわけです。 ですから、あくまで作法に従って書くことに努めればという条件付きの話と思って下さい。'.」 / Twitter

動的型

Shiro KawaiさんはTwitterを使っています 「REPLで実行する→エラー出る→データはメモリ上に残ってるので出力ルーチンだけ書き直して再実行 https://t.co/qWsCAGMuu3」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「動的型の言語でクソ重い処理をしてその結果をファイル出力するプログラムを書き,ファイル出力のコードにミスがあったためにクソ重い処理をした後に動的にエラーが出て何も得られず終わったときの瞬間最大感情消失速度は光速をも超えると言われている.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「もっと言うと、メモリ上のデータの方がコードよりも長生きするという使い方をしないと動的にしてる意味が無いと思う。メモリにデータを載せたまま、コードが扱う型を変えれば、データの型も変わってくれる、という。」 / Twitter
Toru HisaiさんはTwitterを使っています 「@anohana なんかそれってデータベースのコンソールで SQL を叩くのに似てますね。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@torus 永続的なデータがあってそれをいろいろいじりながら考えるイメージですね。伝統的なLispのワークフローはやっぱりそっちだと思います。GaucheはREPLでのエラー時にローカル環境を捨ててしまうのが不便なんですが、いずれ何とかしたいと思ってます。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 動的型付け指向だとメタプログラミングのレイヤを縮退させて考えがちかも。例えば「任意のサイズのタプルをシリアライズ/デシリアライズするコード書きたいじゃん」というのは動的型付けだと同じレイヤで書けるけど静的型付けだと型をパラメータとしたひとつ上のレイヤになる、みたいな。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana ええ,lisp/schemeだとリストとタプル区別ない感じで,イテレートできるかどうかはアタイ(値)が決めるわみたいなね.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 ちょっとおもしろいのは、CLOSだとスロットごとに名前を指定したアクセスしかできないけど、メモリ上はどうせスロットの列で持ってるんだからイテレートさせろや、とPaul Grahamが言ってたやつ。抽象化の壁をどこに設定するかの違いかなあ。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana あれれ,MOPってスロットの登録部分とか(クラス継承時のメソッドで)手を出せたような記憶があるんだけどできないんでしたっけ??」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 直接インデックスで低層にアクセスする仕組みは規格外じゃないかな。実装によっては可能だけど(Gaucheも内部的には可能)。あと自分でベクタをストレージにしたクラスをMOPで作ることもできるけど、ネイティブオブジェクトに関しては…」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana あーそうか勘違いかも. AMOPではそのあたりアクセスしてた記憶があったんだけど,最初の部の説明はもしかしたらCLOSの仕組みを実装で説明してたからMOP使う側からではなかったかもしれないです...うう.」 / Twitter
島鉄雄さんはTwitterを使っています 「&gt; 動的型付け言語には初期の開発スピードが速いという微々たるメリット 静的型言語はコンパイルが通らないと実行する事が出来ないけど、複数(5とか10)人以上で開発してると、ソースを更新した時にコンパイルが通らない事がたまにある。 それが納期間近だと殺意すら芽生える事があるw 続く https://t.co/TGAnbONggS」 / Twitter
島鉄雄さんはTwitterを使っています 「あと、静的にバイナリを作成すると実行中にコードを修正して、停止箇所から再開するという事もやりにくくなる。 要するに静的型のメリットは重要だけど、動的に実行出来る(担当箇所以外でエラーが有っても実行出来たり、実行中にコードを変更出来る)事も非常に重要になってくる。 続く」 / Twitter
島鉄雄さんはTwitterを使っています 「なので、最近のゲーム開発はゲームエンジン上で、C#を自前のVMを使って動的に実行出来るようにしてる事が多くなってる。 これは動的型ではないけど(C#なので)、動的である事のメリットは計り知れないと思われる。」 / Twitter
島鉄雄さんはTwitterを使っています 「コンパイル通らないコードを書いてはいけない縛りをすると、一度公開したインターフェースは二度と変更してはいけない事になる。 なので、インターフェースの実装者は変更した時に、ソース変更しといたよと言って他人のコードをいじる事になるけど、そこは今まさに自分がいじってる最中とかある。 https://t.co/EaLpRDGR6H」 / Twitter
島鉄雄さんはTwitterを使っています 「.NET&amp;Windowsプログラマのためのデバッグテクニック徹底解説 だと、 &gt; チーム全員にドーナツを奢らせるw 多人数開発だとコンパイルエラーはどうしても避けられない。 https://t.co/EaLpRDGR6H https://t.co/qouwp80Bvp」 / Twitter
島鉄雄さんはTwitterを使っています 「それを突き詰めると、バグを出すコードを書くのが悪いってところまで行きついてしまう… 間違いなく正論ではあるけど… https://t.co/EaLpRDGR6H」 / Twitter
島鉄雄さんはTwitterを使っています 「動的型言語の方が、動的に開発する環境が整ってるのは間違いない。(一例として、ブラウザに備わってるJavaScript用のデバッグ環境とか) なので、後は型の整合性をチェックする仕組みがあればいいだろう。 TypeScriptは大規模なものだけど、RubyやPythonも型宣言が出来るからそれで十分だと思われる。」 / Twitter
島鉄雄さんはTwitterを使っています 「動的型言語(RubyやPython)は、型宣言を全部ちゃんと書いて、エラーも全く無くなったからと言って、Cと同等の効率の実行ファイルを作成出来る訳じゃない。 そこが静的型言語を越えられない壁だろう。 逆に言うと、型のエラーが無い時にCと同等の実行ファイルを作成するコンパイラが有れば究極だろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「そう考えれば、RubyやPythonはまだまだこれからの言語だと思うけどね。」 / Twitter
島鉄雄さんはTwitterを使っています 「少し前に似たツイートをしたけど、軽くまとめると、静的型言語の弱点は多人数(5〜10人以上)での開発で、コンパイルが通らない事が起きたり、フルビルドが掛かるとPC1台の場合に30分以上掛かる事がある。 (分散ビルドで解決出来るけど、それでも5分程度掛かるだろう) 続く https://t.co/0rATXeJKsa」 / Twitter
CubbitさんはTwitterを使っています 「動的型付けな言語を好む人が何故それを好んでいるのか、うまく言語化されたものを未だに見たことがないので、誰かに書いて欲しいです」 / Twitter
島鉄雄さんはTwitterを使っています 「だから、ゲーム開発みたいにイテレーション回数がクオリティに直結するような場合は、動的型言語が好まれている(いた)。(Luaとか) しかし、型のメリットも必要だから、最近はC#のような静的型言語を動的に実行できるようにしている事が多いだろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「Emacsの70%はLispで出来てるけど、それでも本体はCで書かれてるから、1行書き換えただけでもコンパイルして起動し直さないといけなくて、これがスゲー時間が掛かる。 (自分のやり方がまずいのか…?) だから、Cの方はいじる気になれない。」 / Twitter
島鉄雄さんはTwitterを使っています 「結局、動的型⇔静的型、じゃなくて、Haskellの様な暗黙の型変換が無い代数的データ型⇔それ以外、という構図なんだよな。 動的に実行(修正・変更)が出来るという事自体はメリットしかない。」 / Twitter
島鉄雄さんはTwitterを使っています 「複数人開発でコンパイルエラーが起きる事例 1. 条件ビルド 2. ソース上げ忘れ 1.はreleaseとdebugでビルドを分けてて、debugの方で関数の引数を追加したのに、releaseの方のソースを直し忘れるとか。 どっちも当人の環境ではビルドが通ってるので気付かない。 CIでかなり予防出来ると思われる。」 / Twitter
神速さんはTwitterを使っています 「動的型付け言語はmockが楽なのでテストを書きやすいし、単体テストを素早く実行できるメリットはある。 まぁ、どっちもメリット・デメリットあるので、どちらも書けるようになって、案件の特性にあわせて使い分けられるべきじゃないかな。」 / Twitter
kmizu_v2さんはTwitterを使っています 「これはあくまで私見なのですが、動的型付き言語が流行った時代には、特に、主流の静的型付き言語がそこまで柔軟でなかった(パワフルでなかった)という背景も考慮する必要があるかなと思います。現代は、型がパワフルになったし、メタプログラミングも静的に(マクロ等)でやることができるから、」 / Twitter
kmizu_v2さんはTwitterを使っています 「ただ、一方で、いったん普及した言語はそうたやすく消えないし、コミュニティも変化していくので、部分的に静的型を取り込もうという動きが多くの動的型付き言語(Ruby 3、Python 3、JS -&gt; TS)で起きているのかなと。Gradual Typingのようなものの発展も関連してそうですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「逆に、静的型付け言語の知見を取り入れた動的型付け言語が再び席巻する可能性もあるってことだな。1980年代までのLispを考えるとありえる」 / Twitter
sumimさんはTwitterを使っています 「ぱっと思いつく範囲でSmalltalkが人気動的型言語と少し違う点は ➀原則として変数宣言が必須なのでタイポはある程度検知可能(ただしワークスペース変数は例外なのでこれは便利な反面、他言語並みに苦痛を伴う) ②デバッガーそれ自体が独立したIDE(な…何を言っているのかわからねーと思うが)続く」 / Twitter
sumimさんはTwitterを使っています 「③基本、簡易オブジェクトストア内でのプログラミングみたいなものなのでIDEがシンプルな仕組みながら多機能&IDE無しでも全情報にアクセスできる(広い意味で➀もその範疇)  …あたりだろうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そう言う意味なら、Rubyでも最初の代入(正確に変数の出現)が宣言で未使用ならワーニングが出るから一緒だと思うんだけど &gt;RT」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 retrun で何の警告もエラーも出ないの辛い...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki あ、たしかに。retrunというメソッド呼び出しととらえられますね。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「静的型と実行時型検査の話を見かけるとなんとなく距離を置きたい気持ちになるけど、自分も違うテーマで似たようなことをしているわけで…だから何というわけでもないけど。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型付け批判には「完全に型をあわせるパズルを解くまで実行させてくれない」みたいなのがあるけど、それは必ずしも当たらない。例えばVDMの型検査は、型が網羅的に一致していなくても実行可能な値が1つでも存在していれば(共通部分があれば)型エラーにはならないし実行可能なように設計されている。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そして処理系の作り方次第で、動的型付けのような柔軟な実行が可能。例えばViennaTalkでは、評価実行の最中に型の定義を変更することさえ可能だぜキリリ。念のために言っとくけど、VDMは由緒正しい型付集合論ベースの静的型付き言語だからな。(プログラミング言語じゃないけど」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「で、VDMの型システムのオレオレ解釈は、静的型はモデリングの道具の1つに過ぎない。正しいことを前提にしない。型付けが不完全でも、わかることは沢山ある。型は門番じゃない。型は目的じゃないってこと。型と格闘するぐらいなら、さっさと別のことをしろ。ってこと。そしたら型は後で湧いて出てくる。」 / Twitter
Island Life - 型付けと変更の時定数
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 例えば「静的に強い型付をするプログラミング言語が開発生産性が高い」という言説ですが,ソフトウェア工学的な観点で厳密に評価すると,本当にそうなのか?というのは昔から疑問に思っています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t というのは,静的に強い型付をするということは,型検査をクリアするのにそれなりに苦労するので,その知識・スキルを持つ人材を揃えるというところまで視点を広げると,アドバンテージが本当にあるのか?というのはよくわからなくなるんじゃないかと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付けで静的に型を得るType Profiler話は、どこまでやればいいのかが一番問題になるな(処理速度との絡みで)、と再認識した次第。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 通常のVM実行と静的な型推論、動的に行われる型プロファイル収集とJITコンパイルをどう組み合わせるかという話ですね。難しい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 いえ、この話はあくまで抽象実行でどのレベルまでシミュレートするかという話を意図しました。確かに範囲を広げるともっと難しんですが」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 あ、そうか。抽象実行だから静的だけどtype profilingなのか。」 / Twitter
動的型付けインタープリター言語 Haskell - 趣味はデバッグ……

型注釈生成

Miura HidekiさんはTwitterを使っています 「https://t.co/hd4NdBAB7H 抽象実行ではなく本当に実行するのか。これはこれで現実的なアプローチかもしれんな」 / Twitter
Instagram/MonkeyType: A system for Python that generates static type annotations by collecting runtime types
Yusuke EndohさんはTwitterを使っています 「@miura1729 自分は当初は動的解析だったんですが、やってみると意外と大変(オーバーヘッドが巨大、カバレッジ高いテストがないとダメ、など)で、抽象解釈に切り替えたんですが、結果的にはもっと大変な道を選んでしまったなあという感じです。」 / Twitter
Yusuke EndohさんはTwitterを使っています 「@miura1729 動的解析でメソッドの型シグネチャを作って、メソッド単位で型解析する(抽象解釈でも伝統的型システムでも)、というのはakrさんとかが推してて有望そうです。手が足らないですねえ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@mametter なるほど、計算量爆発しないし現実的ですね。インスタンス変数とかどうするのかが問題かなって思います。」 / Twitter

型理論

型理論 - Wikipedia
階型理論(かいけいりろん)とは - コトバンク
階型理論
階型理論の補足説明
プログラマのための簡単な型理論入門 - Qiita
型理論 | 黒曜の吹き溜まり
型理論 なんて自分には関係ないと思っているあなたへ
型理論と型システムは違うらしい - 木下修司研究所
「型」の定義に挑む | POSTD

型システム

“型”を語る際の7つの重大な誤り | POSTD
danwakai2015.pdf
型システム - Wikipedia
ポリモーフィズム - Wikipedia
型システム 〜プログラムの安全性を支える数学〜 - Laborify
型システムを学ぼう!
型システム-プログラミング CapmNetwork
ogiwaraさんはTwitterを使っています: 「TaPL、数学的な前提知識はそこまで求められない 順序理論がちょっと難しい程度」 / Twitter
ogiwaraさんはTwitterを使っています: 「@ei1640 TaPLがキツイ理由としては、 - そもそも論理学か、集合論における順序理論の習熟度が低い - いきなりの計算論理学がキツイ という二つの理由があると考えてます 前者についてはまあ頑張るしかないですが、後者についてはこの本(CoPLと言うらしい?)をオススメします https://t.co/2nG4zWzcjs」 / Twitter
プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) | 五十嵐 淳 |本 | 通販 | Amazon
ogiwaraさんはTwitterを使っています: 「SKIコンビネータとかChurch-Rosserの定理とかは面倒見てくれなかった記憶」 / Twitter
ogiwaraさんはTwitterを使っています: 「ラムダ計算にしたって別に前提知識は求められない、その場で分かりやすく(実用向けの)解説してくれる」 / Twitter
ロビン・ミルナー - Wikipedia
リスコフの置換原則 - Wikipedia
Future パターン - Wikipedia
h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
多段階計算の型システムの基礎
TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS - Speaker Deck
effectful subtyping - lilyum ensemble
Introducing Type Providers - Google スライド
A Journey to Type-safe Vectors in F# - Speaker Deck
山本和彦さんはTwitterを使っています 「素敵な型システムがあるプログラミング言語では、実装の問題を型のレベルの問題に簡略化して考えることができる。この意味が分からないのに、「型注釈は書きたくない」と主張するのは、実にもったいないことだ。(分かって主張しているならは、好みの問題なのでOKですよ。)」 / Twitter
hindley-milner型推論を持つ言語で、アドホック多相を扱う方法について、教えていただけますか?に対するJunji Ueharaさんの回答 - Quora
井山梃子歴史館さんはTwitterを使っています 「型システムのChurch styleとCurry styleを逆に覚えてたっぽい」 / Twitter

型推論

OCaml-meeting0908-revised.pdf
型推論機構の実装
型推論 - Wikipedia
型推論を実装してみる | Kludge factory
Hindley-Milner型推論アルゴリズムをGroovyで書いてみた - uehaj's blog
SML# - ランク1多相性の理論
型推論のしくみ : KLabGames Tech Blog
型推論機構を備えたインタプリタをRubyで実装した - 鴨川の怪物
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~ - Google ブックス
hs2bf - 謎の型推論 - ⊥=⊥
連立方程式の解き方
Algorithm W入門を攻略してきた - osiire’s blog
Prologでλ→の型検査のプロ グラムを書いてみただけの話 // Speaker Deck
yūkiさんのツイート: "自作言語で型推論実装したいなあと思いちょっと経ったけどどんな感じのステップで型推論されていくのかわかってないので手を付けてない"
ヒトでもわかる型推論 - Qiita
uint256_tさんのツイート: "なんだかんだ言って、英語版Wikipedia が一番わかりやすい気がした: https://t.co/i0SYbiNoWi… "
Hindley–Milner type system - Wikipedia
So you still don't understand Hindley-Milner? Part 1 - Amit's Blog
OCaml-meeting0908-revised.pdf
Prologで様々な多相型推論 - Qiita
型推論に関する最近の話題への雑感 - Qiita
静的型付「き」言語(@seitekibot)さん | Twitter
JavaScript による型推論器の実装 - takuto_hの日記
Swiftの型システムを読む その1 – ukitaka – iOS開発とかのメモ
7.pdf
TypeScriptのタプル型推論使って型を改善 - Google スライド
5 分ではわからない HM 型推論 - 型システム祭りオンライン 2020 4/17 - Speaker Deck
Lispにおける型推論 - Qiita
ISLispにおける型推論コンパイラ - Qiita
ISLisp Home Page
κeenさんはTwitterを使っています 「自分はやったことないけど踏みそうではある。自分ならHashMap::&lt;usize, u64&gt;::new にして型を決めてしまうかな。 Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita https://t.co/0x0dW7sGAi」 / Twitter
Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita
C# 9: newキーワードの型推論
╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「型、たしか突き詰めるとλx.xの型がΛx.x(記号これで合ってたっけ)みたいなことになる筈なので方が複雑になると型推論ができなくなるというのがよくわからない」 / Twitter
Juliaの型推論アルゴリズムを実装する
[PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar

漸進的型付

型システム 〜プログラムの安全性を支える数学〜 - Laborify
漸進的型付け言語の時代に必要なもの - mizchi's blog

型クラス

型クラスはインターフェースとどう違うのか | POSTD
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記
入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記
インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
型クラス - ウォークスルー Haskell
型クラスの真の力を見せる - kmizuの日記
TypeClass.pdf
Scalaで型クラス入門 - still deeper
κeenさんのツイート: "「定義を」分離できるのが型クラスの一番の利点で、実行時の「データと辞書オブジェクトを」分離できるのはあまり利点を感じない。文脈によって同じ型に対する型クラスのインスタンスを使い分けたい場面ってとほんどないでしょ。"
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記 (はてなBlog)

代数的データ型

Haskell と Scala

エヌユルさんはTwitterを使っています 「Haskellだったら単に値を持たない代数的データ型を定義して関数でパターンマッチして挙動を変える所だけど Scalaだと代数的データ型自体がobjectとしてメソッドを持てるから多態みたいな感じに書けるので どっちで実装しようか迷ってます」 / Twitter
エヌユルさんはTwitterを使っています 「Haskellだと引数でのパターンマッチがその場で書けるけどScalaだとmatchでネストが増えるからtraitのoverrideとして書くか」 / Twitter
エヌユルさんはTwitterを使っています 「待てよ条件が直行するからそのまま1次元で書き下すと大変なことになるのでは」 / Twitter
エヌユルさんはTwitterを使っています 「やっぱりパターンマッチで変えるべきか」 / Twitter
エヌユルさんはTwitterを使っています 「フラグがいくつかあって特別な奴は全部無視する」 / Twitter
エヌユルさんはTwitterを使っています 「いやそんなことないな」 / Twitter
エヌユルさんはTwitterを使っています 「でもこれだとかなりの条件わけになってメソッドの実装がめっちゃ重複するしやっぱりメソッド多態よりデータでの区分けにするか」 / Twitter
エヌユルさんはTwitterを使っています 「Scalaって引数部分でタプルの分解出来ないのか?」 / Twitter
エヌユルさんはTwitterを使っています 「case object作った時明示的に最初あたりはtraitの型であることを明示しないといけないのがもにょるな メソッドの返り値で型書いてるからそのへんは推論して欲しい」 / Twitter
エヌユルさんはTwitterを使っています 「Dottyでenum入ったらそのへんも改善されるんだろうか?それともsyntaxだけ?」 / Twitter
エヌユルさんはTwitterを使っています 「Haskellのdataと違ってコンストラクタに値するやつもtypeを持つのが悪いんだろうなあ」 / Twitter
エヌユルさんはTwitterを使っています 「あーもうScalaで代数的データ型使うと一々型注釈が必要で面倒だなあ」 / Twitter
エヌユルさんはTwitterを使っています 「組み合わせ爆発を回避するために色々条件を入れて頑張ってフィルタリングした結果 4万件の間違いデータが 120件の間違いデータに減った! 正しいデータは1つもなし! クソが」 / Twitter

代数的データ型 - Wikipedia
Algebraic data type - Wikipedia
代数的データ型と初等代数学 - ryota-ka's blog
Haskell 代数的データ型 超入門 - Qiita
Scala 代数的データ型 超入門 - Qiita
代数的データ型 - ウォークスルー Haskell
何で走っているのだろう: Scalaでの代数的データ型のしくみと使い方
代数的データ型を使わないリスト - maoeのブログ
TypeClass.pdf
代数的データ型と直和型と直積型とTypeScript - Togetter
データ構造 – Haskellの代数的データ型 - コードログ
輪 (数学) - Wikipedia
代数的構造 - Wikipedia
「ADT, 直和・直積, State Machine」 - Qiita
ワンランク上の関数型技法による Command パターンの置き換え - Qiita
続くといいな日記 – type family を使って再帰的 ADT をオープンにする
D言語で,(ゴリゴリの)コンパイル時メタプログラミングでADTを実現した話 - alphakai’s tech blog
keiichiro shikano λ♪さんはTwitterを使っています 「計算機のニーズに合わせるための型宣言は人間の認知にあっていないからしたくないけど、自分で作った代数的データ型を使い始めればそれは自分という人間の認知にほかならないし宣言するのはやぶさかでないよなあ」 / Twitter
Nobuo YamashitaさんはTwitterを使っています 「もうすこし,そのあたりが一般的になることを期待します. が,Function typeがあるなら,それはもう,単なる認知云々ではなくて,プログラミングそのもの. 「型宣言できない=プログラミングできない」 といっていいと思いますねぇ. https://t.co/3MC73qO81t」 / Twitter
Nobuo YamashitaさんはTwitterを使っています 「まともな型システムがあるなら,おねがい型宣言書かせてくれるよね.という気分.」 / Twitter
06gun_03hen_04.pdf

依存型

依存型 述語論理

依存型 - Wikipedia
10.pdf
証明プログラミング入門2
nori_Coq3.pdf
logic.pdf
938.pdf
Idrisで遊んでみた (0) | 雑記帳
calculus of constructions (CoC) の勉強 - よーる
トポスと高階論理
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
20160114wba.pdf
はてなブックマーク - Prologに関するsyaminoのブックマーク
d.y.d.

様相論理 依存型理論 述語論理

「再帰的定義を可能にする述語論理の証明支援系上の実装」 - あいまいな本日の私 blog
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
新・あいまいな本日の私: 一階述語論理と集合論は循環している?

依存型 - Wikipedia
コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
依存型入門
実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
プログラミング言語 idris - wkwkesのやつ
安全かつ柔軟な依存型 -
私と型システムとポエム - The curse of λ
証明プログラミング超入門
関数型プログラミング – 依存型とは何ですか? - コードログ
2017年注目していきたい技術 | κeenのHappy Hacκing Blog
idris環境構築 | κeenのHappy Hacκing Blog
Idris入門: 数当てゲーム | κeenのHappy Hacκing Blog
イマドキと言われる言語機能について | κeenのHappy Hacκing Blog
🈚️うひょ🤪さんのツイート: "TypeScriptはちゃんとした型レベル自然数があったら楽しそうなんだけどいい感じに入らないかなあ(ぇ"
tkrさんのツイート: "型レベル文字列と型レベル自然数で闇がさらに深くなるTS #いろいろなTS"
tkrさんのツイート: "実際文字列周りは何とかしてほしいみたいなとこあるけどまじで沼になりそう ほら、 "a.b.c" みたいな事してプロパティ取得するthe 動的言語感なライブラリとか"
F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
Idris入門: 二分木 | κeenのHappy Hacκing Blog
Idris入門: リファレンス | κeenのHappy Hacκing Blog
Effective Idris: Lazy | κeenのHappy Hacκing Blog
Idrisで依存キュー | κeenのHappy Hacκing Blog
Effective Idris: Effects | κeenのHappy Hacκing Blog
Dependent Types と Refinement Types の違い - SevenColoured
Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
Idrisの話とIdris2のウワサ | κeenのHappy Hacκing Blog

Either

エラー処理を書いてはいけない
関数型の考え方: Either と Option による関数型のエラー処理
Eitherについて調べてみた - Qiita
ScalaのOption型とEither型を使う - Qiita
はじめてのOption型とEither型(Scala) - yoshikit1996’s diary
haskellのMaybeとEither理解した。気がする。 - think and error
Either 型に関数を適用する。 - sirocco の書いてもすぐに忘れるメモ
エラー処理 · Scala研修テキスト
ScalaのOptionとEitherで例外処理を行う方法 - $shibayu36->blog;
Haskell教養としての関数型プログラミング - 重城良国 - Google ブックス
すごいHaskellたのしく学ぼう! - Miran Lipovaca - Google ブックス

Haskell

Hiroyuki Miyoshiさんのツイート: "Haskellが圏論をベースにして作られたプログラミング言語であるという誤解があるようですが,次の論文にあるように歴史的にはそうとは言えません。 P. Hudak, J. Hughes, S. Peyton Jones, P. Wadler, A History of Haskell: Being Lazy With Class (2007) https://t.co/MSHszYxSO4"
history.pdf
Hiroyuki Miyoshiさんのツイート: "1980年代末頃,lazyな強い型付き関数型プログラミング言語が乱立して議論しづらいので一つ共通の仕様を決めようという動きがありHaskellが策定されました。当時のlazyのコミュニティでは言語全体の意味論には一部を除きあまり強い関心がなく,基本的には代数的意味論を採っていたと思います。"
Hiroyuki Miyoshiさんのツイート: "それとは独立に,1989年にMoggiが副作用を含む言語の表示的意味論をきれいに扱うのに,圏論のモナドが使えるに気づき計算モナドの概念を提唱しました(LICS'89)。Moggiは説明する言語としてはeagerなML系言語を用いていました。"
Hiroyuki Miyoshiさんのツイート: "Haskellの初期の仕様ではI/Oは遅延リストを用いていましたが,P. Wadlerらを中心に計算モナドを使う方がいいという意見が強くなり,Haskell1.3 (1996)で正式仕様として採用されました。Haskellに圏論を強く結びつけて言及されるようになったのはそれ以後です。"
Hiroyuki Miyoshiさんのツイート: "ついでにいうと,圏論を起源に持つという意味ではむしろCaml系言語の方が直接的起源を持っています。P.-L. Curienらにより1985年に提唱された圏論を抽象機械として使うCategorical Abstract Machine (CAM)というアイデアがあり,https://t.co/HU5JDPjcCb それに基づき実装したのがCAML言語です。"
Hiroyuki Miyoshiさんのツイート: "ただ,当然ながら実行効率が良くはなく,今でもOCamlの実装を担っているX. Leroyが,言語はおおむねそのままに実装をZincというシステムに設計し直したのが今のOCamlの直接の元になっています。"
nisizakiさんのツイート: "(・∀・)つ Chairty、Hagino's categorical programming language https://t.co/eIJiqJ8gSj… "
Charity (programming language) - Wikipedia
Hiroyuki Miyoshiさんのツイート: "ええと,Cockett & FukushimaのCharity言語は知っていますがどういう文脈で持ち出されたのでしょうか(困惑)。圏論をベースにしたプログラミング言語の例ということでしょうか? まあ萩野先生のCPLは圏論的な帰納的&余帰納的データ型を備えた最初の実装された言語なので言及すべきかもしれません。… https://t.co/qeFOUkN1SI"
nisizakiさんのツイート: "単に、圏論を(なんらかの意味で)ベースにしたプログラミング言語ということです。おさわがせいたしました。(そういえば、学生さんに「OCamlのCはcategoryのCだよ」と以前話したら  (´・ω`・)エッ? という顔をされてしまいました)… "
Hiroyuki Miyoshiさんのツイート: "了解です。まあCAMのことを知っているのは我々と同世代ぐらいまででしょうね。Curienはまだお元気なようですが。… "
Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「なんでFree AlternativeのAltFとFree ApplicativeのApって別の型にしてるんだろう https://t.co/23GlhOvPG5 https://t.co/R8l5RezwqD」 / Twitter
Control.Alternative.Free
Control.Applicative.Free
Koji MiyazatoさんはTwitterを使っています 「@igrep よく読んだら地味に違いますよこれ、AltFは Ap :: f a -&gt; Alt f (a -&gt; b) -&gt; AltF f b で、Alt f x は [AltF f x] のnewtypeです。左分配律 (x &lt;|&gt; y) &lt;*&gt; z = x &lt;*&gt; z &lt;|&gt; y &lt;*&gt; z は認めて、右分配律を認めないとこの形になるんだと思います。」 / Twitter
そろそろ線形型をかじっておくか - lilyum ensemble

blog

言語処理系勉強会に参加してきた | κeenのHappy Hacκing Blog
代数的データ型とパターンマッチの補遺: 赤黒木 | κeenのHappy Hacκing Blog
n月刊ラムダノートにパターンマッチについて寄稿しました | κeenのHappy Hacκing Blog
リソースを管理する型 | κeenのHappy Hacκing Blog
手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
Island Life - 動的型のメリットは「決断の遅延」かもしれない
OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
OCamlの型検査は決定不能
問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版
Hindley-Milner型推論をCで実装した話 - malloc(sizeof(MRM));
暗黙の型変換を嫌わないで!(暗黙の型変換がなぜ嫌われるのか、暗黙の型変換で数学的同一視を自然に表現する、暗黙の型変換もどきを自作する、暗黙の型変換で遊ぼう(BNFを表す型)) - 算術の夢の楽園

Twitter

histric-1

静的型付「き」言語(@seitekibot)さん | Twitter
Eijiro Sumiiさんのツイート: "@tenpoku1000 「静的に型付けされた言語」なら何の問題もないと思います"
市川 真一さんのツイート: "共立出版の「新しいプログラミング・パラダイム」1989 年初版1刷には「静的に型付けされた(statically typed)言語」と書かれているのですが、これは今は亡き bit 誌の連載を本にしたものです。少なくとも、この頃から「静的型付け言語」という訳語が存在していた模様です https://t.co/YHBdaSaUoH"
Eijiro Sumiiさんのツイート: "・「静的型付き言語」を誤って「静的型付け言語」という ・「部分適用」を誤って「カリー化」という の両方を踏んだ発表者が光の速さで(私より先に別の人から)つっこまれていた:-)"
まろ@関数型言語作曲機械学習勉強してないさんのツイート: "「型推論」だと型がないと思う人が出てきてしまうので、「自動バッチリ型決定機能」とかにした方が良いと思う"
Kota Mizushima(まったり)さんのツイート: "型推論をするなら動的言語という勘違いをまたひとつ、別件で検索していたら見つけてしまった。やはり、型を明記することと省略することと、型が静的/動的の区別は案外難しい、のかもしれない。あと、特にこの勘違いは、古い世代の人間に多く見られる気がする。"
Keisuke FUKUDAさんのツイート: "MicrosoftによるPythonの型チェッカー。node.jsで書かれていて、mypyより5倍高速で、常駐&インクリメンタル更新モードがあるらしい。https://t.co/tzxgoDuePF"
Microsoft/pyright: Static type checker for Python
米Microsoft、Python向けの高速な静的型チェッカー「Pyright」を公開 | OSDN Magazine
Shinji KonoさんはTwitterを使っています 「動的型付け静的型付けは、昔っから動的型付けを強力に罵る人が多くてうんざり。無限LISP地獄にでも落ちろ。そもそも型があってれば万々歳ってわけでもない。動作を規定するのは値であって型はあくまでも手助けだけ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ML系な人が静的型付けでないとみたいなこと言ってたので「その上でTuring Machine を書いたら、そのTMのプログラムには型は無力。ドメイン向けに何かを作るとだいたい同じようなことになる」と言ったら、険悪なムードになっちゃって。」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータでは型の話とエディタの話はケンカの元だからなー」 / Twitter
Miura HidekiさんはTwitterを使っています 「Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) https://t.co/UImWB5Kh5M Juliaのprimitive typeって何が嬉しいんだろう?って思って調べたら出てきた。なるほど、これは嬉しい」 / Twitter
Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) - Qiita
画力・博士号・油田さんはTwitterを使っています 「ところで “type inference” と呼ばれる問題も3種類ある: 1. * 入力: 型環境 Γ,項 M * 出力: ∃τ. Γ⊢M : τ か? 2. * 入力: 型環境 Γ,項 M * 出力: Γ⊢M : τ なる τ のうち主要型(存在すれば) 3. * 入力: 項 M * 出力: Γ⊢M : τ なる (Γ, τ) のうち主要型つけ(同上)」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「個人的にはこのうち 1 を “type inference” とか「型推論」と呼ぶのは若干違和感があるけれども,「X は型推論が決定可能」と言ったときは 1 の意味で使われていることも結構多い感じがある」 / Twitter
El Pin AlさんはTwitterを使っています 「1は型推論ではなく型付け可能性だと思っています (これ前にも言ったけど)」 / Twitter
κeenさんはTwitterを使っています 「型推論が決定可能よりも型システムが決定可能の方が言う気がする」 / Twitter
El Pin AlさんはTwitterを使っています 「必ずしも同意するわけではないし、普遍的な定義だとも思わないけど、[Rémy 2005]にこのような記述があるのを見つけた https://t.co/6fXXLc1IqB」 / Twitter
El Pin AlさんはTwitterを使っています 「Didier Rémy. Simple, partial type-inference for System F based on type-containment. ICFP 2005. https://t.co/39g8rMjJhv」 / Twitter
fml-icfp.pdf
El Pin AlさんはTwitterを使っています 「とちゅう https://t.co/JYqkAKwgLU」 / Twitter
画力・博士号さんはTwitterを使っています 「“型が嫌い” な人,「型という概念が “計算機の都合で仕方なく” 使われている」と思い込んでいる気がするので,「型とは “ヒトの直観を反映した不変条件の簡潔な記述” だ」という認識に上書きできたらML系言語と深く和解できるんじゃないかという豫感がする」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「思ったんだけど、静的型付き/動的型付き言語の区別は全ての表現式に静的型がつくかつかないかで決まるんだけど、むしろ、全ての値に実行時型情報がつくかどうかで決める区別もあって欲しい気がする。言語というより処理系の特性ではあるのだけど、多くの言語は言語仕様でだいたい決まるよね?たぶん。」 / Twitter
Miura HidekiさんはTwitterを使っています 「たしかに、その観点で分類するの面白そうだけど、実行時型情報が付かない言語って意外と少ない気がする。(DWARFがフルサポートされたC言語ってどっちになるだろう? &gt;RT」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 実行時型情報が全く付かない言語はML系とかCとかぐらいでしょうけど、「全ての値に実行時型情報が付いた」を満たさない言語は結構多いと思います。Javaのようにprimitiveな値がある言語は基本的に入ると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda デバッグ情報とかは考えないのですか?」 / Twitter
画力・博士号さんはTwitterを使っています 「ほぼ「型つきAlt​Erlangの処理系を実装したい」という動機だけでそれまであまり理解のなかったπ計算やsession typeについて半年弱くらいサーヴェイしたり自分で型システムを弄ったりしているの十分正気ではない気がしてきた」 / Twitter

Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@bd_gfngfn @a2uky 先行研究,はたまたライバル?こんなのがあります。 https://t.co/POjzybtn9O」 / Twitter
Hello, Gleam! - The Gleam Book
画力・博士号さんはTwitterを使っています 「@zacky1972 はい,Gleamの存在は認識していました.ただ現状だとメッセージの送受信に型をつける方法は言語機能そのものから提供されているわけではなかったり純粋な計算と非純粋な計算とが型で分離されたりはしていないという点で自分が欲しいものとはややギャップがありました」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn 凄い!既にFowlerの論文を辿ってご存知かもしれないのですが線形型とi/o型によるセッション型のエンコーディングは https://t.co/iKQaiHtNwL が良いです。なのでセッション型は言語から排除できるかも?OCaml での実装例は (線形型やサブタイピングは無いですが) JFP のhttps://t.co/SFdtNBsZjl とか。」 / Twitter
Session types revisited - ScienceDirect
A simple library implementation of binary sessions* | Journal of Functional Programming | Cambridge Core
画力・博士号さんはTwitterを使っています 「@keigoi はい,Fowlerの博士論文と Session types revisited は最近軽く目を通して読んでいました(ありがとうございます)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn GV系だとデッドロックフリーがあるのでいいですね。もっと古いのだと Pucella &amp; Tov の Haskell'08 https://t.co/JgDyrtFHVU の方法が単純でよいかもしれません。2つの型の duality の witness があれば特殊なエンコーディングは要らない(この論文では型クラスでwitnessを作っています)」 / Twitter
Haskell Session Types with (Almost) No Class
ホテルバルティック(クローン)@築26年さんはTwitterを使っています 「そういえば,情報系の人間が「数学は型を明示してほしい」って言うのをそこそこ観測してるんですけど,x in Xとかf:X-&gt;Yってのは彼らの言う型とは別なんですかね?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaでは何でも型があるから上限があるけど、集合には型がないからな。Agdaでは型を明示したpairしか作れないが、集合だと限定されないpairがクラスとして定義できて、それは集合にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの中で順序数を作って、それで議論するからそうなる。関数型言語の中でCを書いて、それでプログラミングするようなもの。Seg Vあり。」 / Twitter
N743327さんはTwitterを使っています 「いわゆる型とよばれるやつ、syntacticalなやつとsemanticalなやつとがあるんでは」 / Twitter
画力・博士号さんはTwitterを使っています 「プログラミング言語やプログラム検証の研究では「大体理論・手法ができてから実用上の認知度が上がるまでに20年くらいかかる」という謂れがあったりするけれども」 / Twitter
画力・博士号さんはTwitterを使っています 「それによるならそろそろ90年代半ば頃の研究成果が実用に供され始めていい頃なんだけどな,パッと思いつくものでは多段階計算とかsession typeとか」 / Twitter
画力・博士号さんはTwitterを使っています 「gradual typingとかは理論の提案から実用化が異様に早い気がする(提案が2006年で,2010年代前半のAltJS戦国時代みたいな頃にはもう実用化されていたんじゃなかったかな)」 / Twitter
4869さんはTwitterを使っています 「TypeScriptでバックエンド書くと型が間違ってても値が入ってくることを考慮しないといけない場面で急激に面倒になるな……」 / Twitter

計算ファースト vs. 型ファースト / Computation First vs. Type First - Speaker Deck
A brief introduction to type inference - Speaker Deck
PureScriptで存在型を試す - Qiita
text.pdf

証明

証明

Prolog

Prologによる自動定理証明 - Qiita
Prologは定理証明系として、健全だが完全ではない - Qiita
CiNii 論文 -  Prologによる数学上の定理証明
2014Tokuyama.pdf
(81)並列定理証明器:MGTP/G Prolog版
宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
shiryo2.pdf

利点

FadisさんはTwitterを使っています: 「ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…」 / Twitter
FadisさんはTwitterを使っています: 「バグを直すにはしばしば職人のカンのようなスキルが要求される上に修正に要する時間は誰にも見積もることができない。一方テストや証明を使ってバグが出ないことを保証しながらコードを書くのは論理的な作業だし、要する時間もあらかじめ見積もることができる」 / Twitter
FadisさんはTwitterを使っています: 「経路が膨大になるとユニットテスト的な手法は難しくなってきて、相対的に証明が便利になってくるんだよな。つまり「起こってはいけないことが起こらないか確かめるんじゃなくて、起こってはいけないことが数学的に起こりえないような作りを心がける」 #boostjp」 / Twitter
FadisさんはTwitterを使っています: 「依存型と証明の話、conceptとconstexprに篭っている限りだいたいC++で解釈できて「実行時に決まる型でコンパイルできんだろ」っていう壁を隔てて同じ事をやりたがっている感が凄い」 / Twitter
FadisさんはTwitterを使っています: 「「その数式(略」、証明の歴史、形式主義の登場、ペアノの公理が来て20世紀に突入して 「第十章 プログラミングの基本概念」 でそういえばプログラミング本だった事を思い出す」 / Twitter
FadisさんはTwitterを使っています: 「ソフトウェアに不具合がないことを証明することは理論的に不可能なんでなかったか。不具合がないことを保証するということは確率の差こそあれ本質的に博打」 / Twitter
天使恵さんはTwitterを使っています: 「@fadis_ 「不具合がない」という言葉が既に抽象的なので,多分無理なんでしょうなぁ.ある実装と,別の何か(仕様記述言語的なもの)が完全に一致することは証明できる可能性はありますが...」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています: 「@fadis_ 誤解されがちですが、証明する一般化された手法がないというだけですよ。証明する部分を限定化して証明の一部を手動にしたのが Coq とかの証明駆動ですし。まぁ一般のプログラムの性質全般なら組み合わせ爆発を起こして現実的じゃないですが。」 / Twitter
梶本裕介さんはTwitterを使っています: 「@fadis_ 停止性問題とかの話ですかね?あれは任意のプログラムに対してそれが停止するかどうかは決定不能というだけで、多くのプログラムは(ループなら例えば整礎集合に依存することで)個別に停止性を証明できます」 / Twitter

型付きラムダ計算

言語実装

基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
Elm で作る TaPL のラムダ計算(その2)
C++で型なしラムダインタプリタを書いた - Qiita
型無しラムダ計算学習用ステップ評価器 Mogul を作っている話 - Qiita
自作ラムダ計算処理系「らむだフレンズ」 - Qiita

意味論

論理と推論・証明

Wikipedia

自動定理証明 - Wikipedia
数学基礎論 - Wikipedia
証明論 - Wikipedia
モデル理論 - Wikipedia
公理的集合論 - Wikipedia
再帰理論 - Wikipedia
操作的意味論 - Wikipedia
推論規則 - Wikipedia
シークエント計算 - Wikipedia
自然演繹 - Wikipedia
演繹定理 - Wikipedia
推論 - Wikipedia
公理 - Wikipedia
ペアノの公理 - Wikipedia
一階述語論理 - Wikipedia
原子論理式 - Wikipedia
Well-formed formula - Wikipedia
自由変数と束縛変数 - Wikipedia
論理的帰結 - Wikipedia
シークエント - Wikipedia
命題論理 - Wikipedia
古典論理 - Wikipedia
直観主義論理 - Wikipedia
様相論理 - Wikipedia
Structural proof theory - Wikipedia
部分構造論理 - Wikipedia
適切さの論理 - Wikipedia

PDF

第4回「証明」
gentzen-NK.pdf
lecture5.dvi
PowerPoint Presentation
lecture5-dist.pdf
3-print-nk.pdf
temporary.pdf
kikuchi1
kikuchi
ja

プログラマー向けの(?)数理論理学(1)数学的言明 - Qiita
プログラマー向けの(?)数理論理学(2)証明と推論規則と仮定 - Qiita
小学生でも分かる論理計算 (A22P11) - (保存用) 檜山正幸のキマイラ飼育記 メモ編
推論規則と定理、公理は違うもの? -推論規則というものがイマイチ何な- 数学 | 教えて!goo
ソフトウェア科学特論: 命題論理の推論体系
推論規則 | 命題論理 | 論理 | 数学 | ワイズ
推論規則
村上・泉田研究室 AI (人工知能)
4. 推論規則と証明
推論規則と証明
論理体系の解剖-1.3- ゲンツェン流とヒルベルト流 - 知識は永遠の輝き
論理学
Introduction to Mathematical Logic

公理的意味論

PowerPoint Presentation
Microsoft PowerPoint - MItoku2-04-hoare.pptx
Microsoft PowerPoint - PLT12.ppt

Wikipedia

プログラム意味論 - Wikipedia
操作的意味論 - Wikipedia
シークエンス - Wikipedia
Simulation preorder - Wikipedia
双模倣性 - Wikipedia
合同 - Wikipedia
再帰的定義 - Wikipedia
推論規則 - Wikipedia
シークエント計算 - Wikipedia
演繹定理 - Wikipedia
命題論理 - Wikipedia
カット除去定理 - Wikipedia
亀がアキレスに言ったこと - Wikipedia
ラムダ計算 - Wikipedia
抽象機械 - Wikipedia
SECDマシン - Wikipedia
CiNii 論文 -  SECDマシン再訪

PDF

H28-hasegawa.pdf
untitled
untitled
https://researchmap.jp/mu03gtcsf-1774112/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=68269&metadata_id=39541
NKNJ.pdf
https://researchmap.jp/muxqtr6ru-1787519/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=29962&metadata_id=48743
(PDF) 証明論的意味論入門 | Shunsuke Yatabe - Academia.edu
コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介
プログラム言語論 意味論
「論理学入門」講義ノート - abelard.flet.keio.ac.jp / abelard-flet-keio-ac-jp.pdf / PDF4PRO
https://researchmap.jp/?action=cv_download_main&upload_id=37475
Microsoft PowerPoint - proglang_09_semantics.pptx
Microsoft PowerPoint - 2017-L06-Syntax and Semantics-20170518.pptx
PowerPoint Presentation
Microsoft PowerPoint - PLT12.ppt
untitled
Introduction.pdf
resume5.pdf
j-1-2.pdf
_pdf
_pdf
ppl4-2.pdf
nyumon_logic.pdf

2018年度 | ソフトウェア検証論 - TOKYO TECH OCW
Introduction to Mathematical Logic
プログラミング言語の規則の書き方と読み方 - Qiita
誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita
突発簡単チュートリアル2:λ計算の操作的意味論 - sumiiのブログ
操作的意味論 vs 表示的意味論 - sumiiのブログ
プログラムの3つの意味論のまとめ - 射撃しつつ前転 改
プログラミング言語を形式的に取り扱う – ゴミ箱
なぜ僕は操作的意味論に傾いたか - 檜山正幸のキマイラ飼育記 (はてなBlog)
操作的意味論と、不純な表示的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
評価シーケントの論理計算と操作的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
TAPLを読む会(~7章) - 忖度
CiNii 博士論文 - 言語Rubyの操作的意味論と型解析
スモールステップ意味論 - mrsekut-p
tapl ch 1 - 3
命題論理について
プログラミング言語として考えたTensor flow
ja

型なしラムダ計算

H25-hoshino.pdf

PDF

計算機ソフトウェア工学
計算機ソフトウェア工学
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
5.pdf
typed.pdf
stlc.pdf
typedlmd.pdf
lambda.pdf
sou19.pdf
Computersoftware 20-2
intro-lambda05.pdf
selfref2006.dvi
cs2015_hoshino.pdf
lambda.pdf
2.pdf
lambda
dependent.pdf
5.pdf
RelevantTheories
main.pdf
_pdf

カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
カリー=ハワード同型対応 - Wikipedia
型付きラムダ計算 - Wikipedia
ラムダ・キューブ - Wikipedia
二階述語論理 - Wikipedia
System F - Wikipedia
型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きラムダ計算 構文論 再入門 2/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きλ計算と単純な拡張 – ゴミ箱
Stlc_J: 単純型付きラムダ計算 — ソフトウェアの基礎 1.0.2 documentation
MoreStlc_J: 単純型付きラムダ計算についてさらに — ソフトウェアの基礎 1.0.2 documentation
ラムダ計算ABC - Sendai Logic Homepage
不動点定理 - Wikipedia
不動点コンビネータ - Wikipedia
不動点とfix演算子 - 一歩前進
論理と計算のしくみ 5.3 型付きλ計算 (前半)

tkrさんのツイート: "false→Aは ¬false∨Aより常に真だからfalseの仮定をすると任意の命題を証明可能まじかすげえ"
ミドリムシ+さんのツイート: "1=2から全ての命題が導けるわけです… "
tkrさんのツイート: "1=2の力すげえ… "
Fadisさんのツイート: "ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…"
Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|若手Webエンジニアのキャリアを考える!
証明最高! じゃあテストは糞なの? ― テスト談義 - プログラムモグモグ
証明プログラミング超入門
自動定理証明の紹介
Coq と定理証明
第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
自動定理証明 - Wikipedia
Basics_J: 関数プログラミングとプログラムの証明 — ソフトウェアの基礎 1.0.2 documentation
構造化プログラミングと データ抽象
定理証明支援の紹介 - Qiita
直観主義論理 - Wikipedia
環境スタック 定理証明 - Google 検索
ホールドリブンで探索 定理証明 - Google 検索
定理証明支援系と依存型プログラミング勉強会 - PukiWiki
_pdf
モデル生成型定理証明系MGTPの要素技術
mizutani07222007-30.pdf
FLOPS2014報告 – DSS Tech Blog
en
en
圏論とプログラミング読書会#2 資料
圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
hatsugai@PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールの力を借りずに数学的帰納法を使うのは難しい.仮定が弱いとか前提が足りないとかいつも落とし穴に落ちるのだけど,それはツールを使っているから気づけるので,紙上の証明では見落としてしまいそう.ツールの支援は自動証明だけでなく証明管理とチェックの面もとても大きい.」 / Twitter

証明(直観主義)

https://twitter.com/shinji_kono/status/1308575213785763840
https://twitter.com/shinji_kono/status/1308575483680833536
https://twitter.com/shinji_kono/status/1308576073110544384
https://twitter.com/shinji_kono/status/1308576530474303488
https://twitter.com/shinji_kono/status/1308577332232216576
https://twitter.com/shinji_kono/status/1308577520174784512
https://twitter.com/shinji_kono/status/1308577921750065152
https://twitter.com/shinji_kono/status/1308578429663506433
https://twitter.com/shinji_kono/status/1308578857176293379

論理式の証明

j-1-2.pdf
記号論理学と情報科学の研究集会'97の開催のお知らせ
148784513.pdf
4.pdf
main.pdf
エルブランの定理 - Wikipedia
DPLLアルゴリズム - Wikipedia
充足可能性問題 - Wikipedia
ユニフィケーション - Wikipedia
導出原理 - Wikipedia
冠頭標準形 - Wikipedia

仕様を「定理」とみなし、「公理」と「推論規則」を使って証明

入門!論理学 - Heat-Hazeの日記
Prologで自動定理証明? - atoprolの日記
_pdf
数理言語
lecture19-dist.pdf
20051018_agent3.dvi
resolutionprinncipleの応用(東芝RM).iml
104-koukyuroku.pdf
untitled

証明図・証明木・探索木

digidepo_8559157_po_r6-2-7.pdf
0716-06.pdf
Microsoft PowerPoint - logic05-Chap3-1.ppt
1539paper.pdf
直観主義命題論理におけるタブロー法による定理証明器
3-print-nk.pdf
2008grad13.pdf
述語論理知識を扱う全解探索仮説推論の高速化

証明探索

@keigoi

Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば https://t.co/HJZq4qeoti の p.13 にある含意の推論規則は、変数や型環境を加えればそのまま関数適用の型付け規則であるように見えてくる。例えば P -&gt; (P-&gt;Q) -&gt; Q の型付けの導出木を書こうとすると、この型をもつ fun x f -&gt; f x というラムダ項(プログラム)しかあり得ないことに気づく」 / Twitter
gentzen-NK.pdf
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep この導出木は証明木と同じ形をしている。一方、型がつくプログラムを書くと導出木ができる。つまり、型のついたプログラムを書けば証明ができたことになる。その逆に、証明ができればそこからプログラムを抽出することもできる。例えば Djinn https://t.co/j0EdLg0Tts は、型を書くと、」 / Twitter
Djinn
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep その型がつくプログラムを自動生成してくれる。これは、その型に対応する論理式を自動証明して、その証明からプログラムを取り出すような動きになっているはず。タプルは「かつ」、Either は「または」、関数型は「ならば」に相当するので色々やってみるとよい」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば fst :: (a,b) -&gt; a は、A /\ B =&gt; A に、left :: a -&gt; Either a b は A -&gt; A \/ B に相当する。 Djinn に型を入れれば実装が出てくるはず。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep CH対応の考え方は多相型や依存型だけでなく線形論理-線形型、古典論理-継続渡し計算などに適用されているのが面白いです。上のも雑な説明なのでもしわからなかったらまた気軽にオンラインやローカルで聞いてください。」 / Twitter

情報系彼女botさんはTwitterを使っています 「論理型言語Prologは、深さ優先の探索をするから定理証明系としては不完全よ。 それに、実行速度のために単一化のOccures Checkを省いた場合は健全性も失われるわ。」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「.@ksuenaga 「深層学習によるプログラム生成の高速化」はディープラーニングを使って直観主義命題論理の証明を効率的に探索する話.(すなわちプログラム生成を効率的にやる話.)@asi1024 と @skymountain_ と @nushio との共同研究.#PPL2017」 / Twitter
市川雄二/New 3 RsさんはTwitterを使っています 「論理って、多分、命題作成能力が重要だと思う。 フェルマー予想も1つの命題作成。 手割りも1つの命題作成。 これができると、自動証明をくっついて解ける命題については結論が出せる。探索が省略できる。」 / Twitter
戸次大介/Daisuke BekkiさんはTwitterを使っています 「@ytb_at_twt (承前)ようになったのですかね。そして単なるパラメータ最適化ではない問題は相変わらずどう解いて良いか分かってないと思います。一方、碁のような問題でも、探索の過程で論理的というか証明探索に近い推論をしてるわけで、発見と正当化の区別は自明ではない気がします。」 / Twitter
市川雄二/New 3 RsさんはTwitterを使っています 「証明というのは、距離空間の中で生成される多発的なシークエンスをつなぎ合わせる探索努力という気がする。 命題に対して良い距離空間を持って、長いシークエンス(論理展開)を出力できて、不断の探索努力をする人が人類の叡智となる定理を証明する。」 / Twitter
ytbさんはTwitterを使っています 「推論主義的な古典論理の証明論的意味論を持っているとき、そこからどのように「指示」概念が自然に生まれてくるかと言う問題、ようは ①古典論理の証明論的意味論 ②証明探索木で論理式の極大無矛盾集合をつくる ③スコーレム化して「指示対象」をつくる(個別化する) という流れでいいのかな。」 / Twitter
HiroshiさんはTwitterを使っています 「これはあくまで物理学の中で扱う数学的な手法であって、数学それ自体とはまた異なる。数学の営みは、数学的概念に対する性質を探索する、と言える。また、論理のギャップなく証明することが求められる。」 / Twitter
ytbさんはTwitterを使っています 「これ、面白い話で、述語論理の証明探索樹のによるモデルの構成とかは、まさしくモデルの「無限の長さの証明」で、モデルだから偶然的真理についても語ってる訳だよね。」 / Twitter
KojimaさんはTwitterを使っています 「論理と計算のしくみ、シーケント計算が証明探索を意識した作りになってて、述語論理のカット除去にエルブランの定理使っててびっくりした」 / Twitter
tenthsublevelofsuicideさんはTwitterを使っています 「こっから2ヶ月は論理学ちゃんとやりたい。述語論理の完全性証明を探索法でやるのがわからなくて挫折した。ヘンキンモデルはわかった」 / Twitter
てけてけ坊主さんはTwitterを使っています 「新幹線乗れた 遅刻しそうで気が気出ないけど、でも午前中のセミナーは出てよかった イメージとしては証明探索木による完全性定理の証明を述語論理の場合にも拡張するにはWKLぐらいで十分だよねって話をしてて、全てはチェックできてないけどちょっと納得した 完全性定理は選択公理より真に弱い」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Automated Theorem Proving in Intuitionistic Propositional Logic by Deep Reinforcement Learning https://t.co/S1heVqRruM 深層強化学習で直観主義命題論理の証明探索する論文(@ir5 さん @skyrunner_01 さんとの論文。自分の貢献はあまりないけど)。 昨年の https://t.co/9J3HOxRAvw の続きです。」 / Twitter
あきやま🐾さんはTwitterを使っています 「@kz_suzuki 探索的テストは広いからどちらもあると思うけど。 経営者は『販売を開始して良いか』の可否判断をする必要があります。その可否判断を演繹的にできるかというと、できません。帰納的に動くしかなくて、『それでいいんだよ』というのが、帰納法だと思います。 数学的帰納法は論理的に証明しているので。」 / Twitter
КазяさんはTwitterを使っています 「g3cの証明探索がかけてしまった(古典命題論理なので簡単なのはそれはそう)」 / Twitter
ytbさんはTwitterを使っています 「今日の論理学補講は古典論理の完全性定理と健全性定理。証明探索樹はやっぱりいい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
大妖精botさんはTwitterを使っています 「証明探索木、いろんなところで見るが命題論理の真理の木と違うのだろうか」 / Twitter
p進大好きbotさんはTwitterを使っています 「@Alwe_Alwe ↑の定義は論理式のゲーデル数しか取ってないです。ZFC等が矛盾する際のルール違反を避けるために、述語|-をゲーデル数上限付き証明探索に変えればOK的な話でした。」 / Twitter
Masaki HaraさんはTwitterを使っています 「まあ実態としては、ちょうど直感主義命題論理の証明探索のことを調べていて面白かたから実装しただけで、さらに追加の工数をかけて古典命題論理の証明探索を実装するほどでもなかったからですね (必要なら ~~P を証明させればだいたい所望のものが得られるので)」 / Twitter
AlweさんはTwitterを使っています 「@uu7t_u 私の言葉ではないのであれなんですが、古典論理の定理の多くが証明探索的なことで示せる事だからだと思います」 / Twitter
足跡45(羃等)さんはTwitterを使っています 「いや証明が探索できるとか表現能力とか何を対象とする論理かとかあるけど」 / Twitter
ytbさんはTwitterを使っています 「本日の非常勤授業論理学は古典命題論理の完全性定理と健全性定理について。証明探索樹を使ったけど、まあタブローだよね。」 / Twitter
p進大好きbotさんはTwitterを使っています 「命題論理の方の完全性って実際に意味論側で真理値全探索するより統語論側で証明探索する方が優位に高速になるのか知らないんですけど、やっぱり早いんですかね? 漠然と「命題変数が少ないけどめっちゃ長い論理式」とかは意味論の方が強そうな気がしちゃいます。」 / Twitter
ℕ𝚒𝚔𝚘𝚜𝚊𝚒: unit → tweet listさんはTwitterを使っています 「#w2019progLang そもそもFLとPolymorphic FLは別の言語なので、 FLのプログラムの型に関する証明木を作りたいときはFLの型体系の推論規則・公理を、 Polymorphic … 続きは質問箱へ #Peing #質問箱 https://t.co/FOIRuR1ceM」 / Twitter
スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
底灯天徐嶺依さんはTwitterを使っています 「あと推論と逆方向(公理に向かう方向)に証明木を伸ばす操作を英語で何と言うのでしょうか。reduntion?」 / Twitter
底灯天徐嶺依さんはTwitterを使っています 「reduntion ってなんだよ reduction」 / Twitter

証明木生成の停止性

画力・博士号さんはTwitterを使っています 「「命題Aから命題Bを証明しなさい」と入力して,実際には証明できない場合でも,証明木生成プログラムは必ず停止するのだろうか」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 古典命題論理はco-NP完全.直観主義命題論理はPSPACE完全.つまり,解けることが知られている.古典一階述語論理や直観主義一階述語論理は決定不能.線形論理については https://t.co/Vuyn0MG2fT」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy 有難うございます! まだまだ無学なので精進します……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy ほぉぉぉ巧く置き換えられるんですね!」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn そういうこと.で,その戦略の第一歩となるのが,シークエント計算とそのカット除去定理.シークエント計算は除去則がないのが特徴.つまり,A/\BからBを導出するというような推論規則は線の下より上のほうが大きいので使いたくない.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn その代わりに,シークエント計算では左導入則というのが使える.これは目的の式ではなく仮定側の命題を分解する.このため,自然演繹のように目的の式だけを表示するのではなく,「仮定 |- 目的の式」の形で書く.これをシークエント(推件式)という.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 自然演繹では,(下から上に進むときに)仮定が増えるのは含意の導入則と選言の除去則だけで,仮定が減ることはなかった.シークエント計算では左導入則で仮定が減ったり増えたりする.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 具体的には,連言の例で考えるとわかりやすいだろう.「A /\ B |- G」 の形のシークエントは,「A, B |- G」の形のシークエントから導出できる.つまり,下から上に進むと,仮定A,Bが増えてA/\Bが減っている.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn こうすると「A, B |- G」は「A /\ B |- G」よりも「小さい」.そういう点でシークエント計算は良い性質を持っている.しかし,一般的な直観主義シークエント計算(LJ)ではまだ不足で,縮約規則とカット規則という鬼門が残っている.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn で,それをてんやわんやしてうまく取り除いて,結果として単調減少(無限降下列を持たない)であるような推論規則を作れると勝利というわけ.」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy なるほど…… 華麗だ……」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero ちなみに直観主義論理でもcut除去は成り立っていて、これを使うと直観主義で排中律を証明出来ない事の証明が出来たと思います。cut除去は証明論の基本定理みたいなもので、これがあると色々出来ます...色々...cut除去出来ない論理もあってこれをやっている人達もいます」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 確かcut除去する度に枝が3倍くらいになるのでcut除去の個数回冪乗した3^...^3倍くらいの大きさの証明図になったと思います。正直証明図は読むためのものではないし、何より縛りプレイなので証明は排中律を認めるモノより難しくもなりますね。実装を視野に入れるなら構成的にやるべきですが...」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 要するに証明図の上に行くと必ず小さい論理式になるというやつで、これより証明図を上に辿るという操作は必ず停止します。なので出現する排中律を全部調べることは可能で、与えられた排中律が直観主義で証明可能であるかどうかを判定するアルゴリズムがあれば可能です。あるかは知りませんが...」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 変換アルゴリズムがあるかは知りませんがcut除去定理というのはあります。証明図からcutという規則を除去した証明図を得るアルゴリズムがあるよって定理で、その証明図では“AからB”が証明されたらAはBの部分論理式になっているという性質があります。」 / Twitter

公理と推論規則

公理 - Wikipedia
推論規則 - Wikipedia
命題論理 - Wikipedia
一階述語論理 - Wikipedia
推論 - Wikipedia
論理式 - Wikipedia
原子論理式 - Wikipedia
論理演算 - Wikipedia

推論規則

h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「二重否定除去が使えても、Coqerには非常に証明しにくいので、最初に二重否定を(除去規則を使って)つけてしまったほうがCoqでは楽。本来の古典論理の推論規則に基づく証明木に比べると冗長になりがちではあるけれど・・・」 / Twitter
あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
病気の美少女さんはTwitterを使っています 「∧∨ってそんなに覚えにくいのかあ。特別な覚えかたとかはしたことないけど、∧のほうが閉じてる感じする(逆さまのコップみたいな)。あと今思い付いたけど、推論規則的には∨なんて分かりやすいんじゃないのかなあ。そのままの形で証明木が別れるし」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
画力・博士号さんはTwitterを使っています 「新しい証明木の記法を考えてみた(とりあえず推論規則だけ) http://t.co/FQ2slKencN」 / Twitter
もすさんはTwitterを使っています 「式木で論理式書いて推論規則を適用して変形していくとか考えたけど、 ⇒(ならば) が書けないという問題が」 / Twitter
友利奈緒ちゃんさんはTwitterを使っています 「証明木を作る問題、こうゆう状況だったらこの推論規則を使うというのが決まってる感じがする。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「α等価の推論規則の形成。λの引数を複数にして、その形に関してのみ議論(0でも可)。このとき、α等価なものの示す証明木がα等価な項全体を代表する元として扱える。 #TPP2014」 / Twitter
h_sakuraiさんはTwitterを使っています 「推論規則を使えば導出のルールを決めることが出来て、導出木が書ける。 評価規則はプログラムの動きを決める推論規則だ。 型付け規則は型を決定する動きを決める推論規則だ。 評価規則も型付け規則も推論規則の1つなので、導出木が書ける。」 / Twitter
トビーネットさんはTwitterを使っています 「読書してたら抽象構文木という単語がでてきたので、思わず推論規則に沿って導出してしまった」 / Twitter
かーや (kaya)さんはTwitterを使っています 「ラクエンロジックは、命題カードと推論規則カードを組み合わせることで、自分だけの最強の証明木を作って戦うカードゲームです。」 / Twitter
Masaru HITOMIさんはTwitterを使っています 「したがって、例えば人間関係においても経験的に正しかろう原則と経験的に正しかろう推論規則さえあれば、論理の木というのは構築しうる。」 / Twitter
nisizakiさんはTwitterを使っています 「結局のところ、法律や大学が制定した規則に基づいて、ゴールを入力して、推論木を構築している感じ。変なローカルルールがキャッシュにたまってて、奇妙な推論木を構築することがあるし、場合によっては制定された法律・規則の目的の斜め上を行っちゃう感じ (´・ω・`)」 / Twitter
soujiさんはTwitterを使っています 「会社で少しアジャイル開発についての勉強会に参加した後、自宅最寄駅に最近出来たスタバで型システムの勉強中 公理やら推論規則やら木やら帰納的定義など懐かしい言葉たちと再会出来て楽しい」 / Twitter
画力・博士号さんはTwitterを使っています 「ウオー推論規則や導出木を書くマクロが定義できるようになった #SATySFi https://t.co/dz80AUVD9l」 / Twitter
浅瀬さんはTwitterを使っています 「型の導出木の推論規則と述語論理の推論の対応ってことよね」 / Twitter
kodai (▶)さんはTwitterを使っています 「LaTeX の ebproof パッケージを使う練習も兼ねて、CoPL に載ってる導出システム Nat の推論規則を使って判断『S(S(S(Z))) times Z is Z』の導出木を書いてみた コマンドの使い方がだんだん分かってきた https://t.co/z6lOSq0ZFf」 / Twitter
kodai (▶)さんはTwitterを使っています 「キタ━━━━(゚∀゚)━━━━!! ペアノ自然数の加算・乗算・複数回簡約をする導出システム ReduceNatExp の推論規則(1,2枚目の写真)に従って、判断 S(Z) * S(Z) + S(Z) * S(Z) -*-&gt; S(S(Z)) の導出木(3枚目)を自力で記述できた!! https://t.co/d6XwKOztAF」 / Twitter
kodai (▶)さんはTwitterを使っています 「推論規則E-Appお前絶対許さんからな… 導出木がクソでかくなるのだいたいお前のせい https://t.co/oaurdZD1q8」 / Twitter
チェシャ猫さんはTwitterを使っています 「Deep Neural Network を利用して、最小論理の論理式に対する自然演繹による証明を生成する研究。ただし対象となる論理式が証明を持つこと自体は仮定。証明木全体を一度に生成させるのではなく、各ステップごとに適用する推論規則を DNN に当てさせる。 #jssst_ppl2019」 / Twitter
kentoさんはTwitterを使っています 「ってやれば、 ・ 規則の各適用段階での型推論の木の状態を見ながら ・ 各規則が本当に正しく動くかを確認する ってのができそう」 / Twitter
AlweさんはTwitterを使っています 「PAの順序数解析(の上限)を簡単に纏めるとPAの証明を無限の長さを持つω論理に埋め込む。埋め込むと、超限帰納法を証明できると仮定するとω論理上でも当然証明できて、それに関する推論規則を導入できる。その上でcut除去を行い、証明木の高さがわかるため、木の高さで順序型が抑えられればよい」 / Twitter
sp4ghet@すぱげっとさんはTwitterを使っています 「どうでも良い話なんですけどゲーデルの不完全性定理とかで出てくる論理学とか型理論で出てくる推論規則/導出木とかそういうやつって「論理学」というキーワードで勉強進めていけば全体観が見えてくるんでしょうか」 / Twitter
はかりさんはTwitterを使っています 「型付けの導出って推論規則の定義から導出図が一意に定まっちゃう~ってことあると思うんですが、こういうやつを計算量に気を付けつつ求めたい~とかなったらどうするんですかね。結局導出木を上るしかないのでは??みたいな話」 / Twitter
cutsea110さんはTwitterを使っています 「siteswapの証明木は下から上に展開されてて、証明と思うと向きが逆になるもんだからモヤモヤしてたけど、推論規則によって元々はどういう状況だったか、この状況を説明する証拠が下に来ていると思えば分かった気になれる。」 / Twitter
尾形学士さんはTwitterを使っています 「こっちが推論規則から導出木をつくるやつ。 https://t.co/dSrsJQQ82o」 / Twitter
EvalNatML1.hs
振込さんはTwitterを使っています 「推論規則をたくさん用意して気合で推論木を構成するのか」 / Twitter
ケ゜ンミジンコさんはTwitterを使っています 「@LDScell この本自体は大学院でやりました ただ学部の頃に似たようなことはやってました、推論規則の木を作ったりという」 / Twitter

ソフトウェア検証・論理・計算・帰納

07gun_01hen_02.pdf
記号論理学
y-slide-ss06.pdf
4.dvi
kk-ieice02.dvi
https://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/50090/3/000000272912.pdf.txt
論理と計算 講義ノート
Theorem Prover in Java
TRonso33_Kukita.pdf

定理証明 木構造 - Google 検索
プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
きけんぴんさんはTwitterを使っています 「健全性・完全性って、証明とか判定する体系自体についての話という認識。別のツイートのリプライツリーの例を借りれば、「単純型付きラムダ計算の項であるか」を判別することで「計算が停止するかどうか」を判定するというシステムならば、停止性を判定するシステムとして健全と言えそう。」 / Twitter
ytbさんはTwitterを使っています 「LL Toyという証明支援ツール、ゴールとなる証明したい論理式を入力すると、そこが結論となるような推件計算の証明図を生成してくれるんですが、ゴールとして証明できない論理式(たとえば直観主義論理上で((A→B)→A)→A)を入力すると挙動が面白いですね。無限後退。 https://t.co/5hoTti0pzm https://t.co/bZCHKUB3Ej」 / Twitter
LL Toy
ytbさんはTwitterを使っています 「直観主義論理上の二重否定除去の「導出」に挑戦したのはこちら。見事な無限後退。 https://t.co/oDasR54fna」 / Twitter
slide.pdf
general4-3.pdf
sakigake03.pdf
コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介 - zengakuKyoutsu2014-07-18-2.pdf

Refinement Types

Dependent Types と Refinement Types の違い - SevenColoured
Refinement type - Wikipedia
型をさらに拡張するーーRefinement Typesについて - Line 1: Error: Invalid Blog('by Esehara' )
Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
refinement_types_for_haskell.pdf
abstract_refinement_types.pdf
MSR-TR-2009-147-SP1.pdf
Refinement Types
Programming with Refinement Types
refinement-2-bengtson08.pdf
Liquid Haskell で普通の型システムの上を行け #NGK2017B
main.pdf
Dependent type、refinement typeおよびHoare Logicの違い
LiquidHaskell 入門 その1 - 存在と一意性の証明
LiquidHaskell 入門 その2 - 存在と一意性の証明
LiquidHaskell 入門 その3 - 存在と一意性の証明
LiquidHaskell 入門 その4 - 存在と一意性の証明
monochromeさんはTwitterを使っています 「Refinementsってグローバルメソッドキャッシュにとっては迷惑でしかない気がする」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「形式検証されたコード、refinementのがまだ早そう」 / Twitter

effect system

Notions of Computations and Effects - Just $ A sandbox
Freer Effectsが、だいたいわかった: 12 OpenUnionを型によって安全にする - Qiita
Cats Effect の7つの型クラス - Qiita

THE KYOTO
THE KYOTO

SPIN・Promela

SPINによるモデル検査-1 - S2-a-material-nonaka.pdf
0.PROMELAの基本文法
Microsoft PowerPoint - RS2010-spin1.pptx - RS2010-spin1.pdf
xv6から始めるSPIN入門
猫でもわかる! モデル検査器 SPIN 入門
31_4_40.pdf
UMLとモデル検証 | オブジェクトの広場
B_020.pdf

継続

限定継続・CPS・EPS・停止性

浅井研

sakaue09.pdf
masuko09.pdf
kitani09.pdf
kitani10.pdf
ppl10.dvi
tsushima10.pdf
ueda10.pdf
masuko13.pdf
kaneko13.pdf
sou14.pdf
ueda15.pdf
sou15.pdf
sou17.pdf
ishio18.pdf
CPS 変換の正当性の Agda による証明
sou18.pdf
sou19.pdf
uehara17.pdf
ishio19.pdf
hirota13.pdf
限定継続処理の抽象機械導出のためのプログラム変換
情報学広場:情報処理学会電子図書館
限定継続命令をもつ依存型付き言語の設計

typedlmd.pdf
研究会 - 継続渡しスタイルの関数型プログラミング言語における分散処理の記述
CB-002.pdf
Implicitly-Typed Deadlock-Free Process Calculus
技術者/プログラマのためのラムダ計算、論理、圏 第3回に行ってきた
第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
構造化プログラミングと データ抽象
_pdf
d.y.d.
Asai Laboratory, Ochanomizu University
shift/reset と control/prompt の違い - まめめも

限定継続

限定継続 | κeenのHappy Hacκing Blog
examples/README.md at master · krdlab/examples
限定継続でモナドを後付けする - Qiita
sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
SMLで継続を使ってprintf/scanf | κeenのHappy Hacκing Blog
36_2_47.pdf

型付きラムダ計算・CPS

型付きラムダ計算 CPS - Google 検索
sou17.pdf
sou19.pdf
B-021.pdf
ppl5-3.pdf
KAKEN — 研究課題をさがす | λμ計算の表示的意味論に関する研究 (KAKENHI-PROJECT-14540119)
1569jabstract.pdf
jssst2000.pdf
ラムダ計算 - herp-technote
ppl2005.pdf
_pdf
MSJ20120328Fujita.dvi
0992-24.pdf
saika_21_3-nakazawa-takuji.pdf
PPL 2019カテゴリ1,2,4採択論文・発表リスト
Suzuki.pdf
マイポータル - researchmap
プログラミング言語理論・設計|法政大学シラバス
「計算論」を(中途半端に)読んだ
d.y.d.
継続とかの話題サーベイ | κeenのHappy Hacκing Blog
「ソフトウェア基礎論」講義計画 佐藤、亀山 - Programming Logic Group

CPS・再帰

【関数型言語】CPS(継続渡し)と末尾再帰最適化 - kzono's diary
継続渡しスタイル - Wikipedia
再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~
6-3. Continuation Passing Style
ppl8-2.pdf
なんでも継続
evaluatorの再帰実装→CPS化→Continuationのde-functionalize→ループ化 - ラシウラ
Javaでフィボナッチ数を求める関数を末尾再帰最適化する
Asai Laboratory, Ochanomizu University

CPS

継続渡しスタイル - Wikipedia
継続渡し形式(CPS)
データ型のCPS変換について - Just $ A sandbox
CPS というプログラミングスタイルの導入の話 - ゆずとみかんといちご
お気楽 Scheme プログラミング入門
なんでも継続
cps.pdf
CPS.pdf
時の羅針盤@blog: CPS変換
情報科学実験II資料 (4) CPS変換のアルゴリズム
CPS変換と二重否定のカリーハワード対応の話 - Togetterまとめ
Haskell で継続渡しスタイル (CPS) | すぐに忘れる脳みそのためのメモ
非同期処理の「その後」の話。goto、継続、限定継続、CPS、そしてコールバック地獄。 | κeenのHappy Hacκing Blog
CPS変換 カテゴリーの記事一覧 - にわとり小屋でのプログラミング ブログ
トランポリン化でStackOverflowの回避 - Qiita
BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - 近&況
chikoskiさんのツイート: "https://t.co/J93pxgLT47 「CPSとはコールバックのファンシーな呼び名だ」"
RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog
hatsugai@PRINCIPIAさんはTwitterを使っています: 「並行 amb を実装した.amb に出会うと引数の分だけ VM が分裂して並行に実行する(かっこいい).(amb) に出会った VM は消滅する(かっこいい).これだと CPS 変換は必要ない(以前作ったものは CPS 変換してスレッド化した). https://t.co/jRsberSc3z」 / Twitter
hatsugai/Finesse: Tiny Scheme implementation
hatsugai@PRINCIPIAさんはTwitterを使っています: 「最近 LISP 成分が不足ぎみだったので作った.例はいつもの N-Queens.VM の足並みがそろうのですべての解が出る(たまたま).まー実質コンパイラが CPS 変換相当のことをしているじゃないかという話もなくもない…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドをサポートし call/cc で取得した継続を別スレッドからも起動できるようにして(ここポイント高い),並行 amb をマクロ,call/cc,スレッドで実装する形にした.よりかっこよく整理された(amb 専用命令は廃止).apply や call/cc はトランポリンで対応できるけど thread-exit はいまいち.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「amb を手続きにすれば apply できてうれしこともあるけど,別に並列オペレータがなくて簡便に並列化したい場合はこの方がいいかな.そもそも目的はなんだって話だけど.書いてたら並列オペレータ作ればいっかという気持ちになってきた…」 / Twitter
ジェネレーターを簡易的にCPS変換してみた - Qiita
kontlang-shift-reset-lisp - Speaker Deck
zehnpaard/kontlang: Language with Clojure-like syntax and semantics based on EoPL + Shift/Reset
継続モナドについて - Qiita
CPS変換はじめてみた - Arantium Maestum

Algebraic Effects

Algebraic Effectsであそぼう / lilyum ensemble
Yosuke FURUKAWAさんのツイート: "Facebook の人は3年くらい前からどうやって Algebraic EffectをJSで書くか検討してたみたいなんだよなー / “one-shot-delimited-continuations-with-effect-ha…” https://t.co/RKWE8n20CL"
One-shot Delimited Continuations with Effect Handlers

CbC

Kono's paper list
継続を基本とした言語CbCのgcc上の実装
Continuation based Cを試す - Qiita
Shinji KonoさんはTwitterを使っています 「CbCは巨大なswitch文として実装する方法もあり得るので、当時やるならそれだったかもな。ただ、今でもプログラミングには苦労してるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「先祖返りなんだよな。今までの方法論が使えないっていうか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Susman はHewittのActorを見て「Lispじゃん」で片付けたらしい。もっとも、その時に並列処理のいろいろがどうなるのかはよくわかってなくて…」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあでも、Smalltalkの実装を見てる時にもLispじゃんと思ったので、そんなもん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CbCは a → ( b → t ) → t の形のみでプログラミングする言語だとも言える。これはCurry Howard対応的には否定に相当するような構造らしい。Actorの並列化で欲しかったのはそれってこと。自動的に並列処理を抜き出すみたいなのとは相性はよろしくない。まったく優しくない。」 / Twitter
Monad と OS
Shinji KonoさんはTwitterを使っています 「@wtakuo @miura1729 Apertosには入れなかったんじゃないかなぁ。なのでApertosのドキュメントはないかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Muse/ApertosをやるはずでソニーCSLにいたのだが、まぁ、あんまり手伝えず。T先生が「CS界で相対性理論に相当するようなものを発表したい」というので考え出したのがCFMだった。そういうの嫌いじゃないし、そういうのを期待されていたのだろうし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「その時には今のCbCの基本はあったのでメタ計算的な感じで計算場みたいなものがあるのだろうなという感じ。その頃はまだクラウドはなかったのだが… 90年でしょ? ノートPCクラスタみたいなの作ってた人もいたし、それほどはずれではなかったのだが… まぁ、残念な方向に。」 / Twitter

StackThreads

Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages | Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
PowerPoint Presentation - DNaward.talk.jp.final.pdf
StackThreads
Top
spaghetti stack - Google 検索
ppl5-1.pdf

Twitter

Shiro KawaiさんはTwitterを使っています: 「@hatsugai GaucheはSchemeスタックがCスタックと別管理なので、「CからSchemeを呼び出している」箇所に戻らない限りは別スレッドでの継続起動は可能です。ネイティブスタックを共用する実装だと厳しそうですね。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「Chez scheme 9.5.2 で,call/cc で取得した継続を fork-thread で 起動したスレッドから呼び出したらなにやらおかしくなった.最近どこかで実装についての解説を見かけたが,スレッドをまたぐのは難しそうな作りだと思ったっけ.他の処理系はどうなんだろ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「Gauche で call/cc とスレッドを使った並列 amb を作ってみた.今回は手続きとして実装したので apply が使える. https://t.co/D1leRJfUxY」 / Twitter
parallel-amb-callcc.scm
hatsugai@PRINCIPIAさんはTwitterを使っています: 「手続きということは eager 評価になるので,以下のような書き方はできない. (define (req p) (if (not p) (amb))) (define (an-element-of items) (req (not (null? items))) (amb (car items) (an-element-of (cdr items))))」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「@anohana ありがとうございます.やってみました. https://t.co/q8Qmip3JUA」 / Twitter
Miura HidekiさんはTwitterを使っています: 「https://t.co/wkfp0gEcK8 懐かしい、修論で作った言語がこんな感じで実装した。当時は、トランポリンを apply like functionって呼んでいた。こうすると、継続が常に取れるので軽いグリーンスレッドを作るのに有利で、これで並列オブジェクト指向言語を実装した。」 / Twitter
Niyarin's blog
Toru HisaiさんはTwitterを使っています 「https://t.co/SwdVuy6QDn Scheme で継続を使って非同期の API を同期呼び出しっぽくするラッパーを書いてみた。」 / Twitter
async.scm
monochromeさんはTwitterを使っています 「async/await、コルーチン、継続、ジェネレータ、統一的に概念を理解したい」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理の方では Skolem化のところで継続を使うと良かった。いろいろ発見があって面白い。」 / Twitter
https://twitter.com/shinji_kono/status/1308052561576906753
https://twitter.com/shinji_kono/status/1308052219183247362
ふ''れいすさんはTwitterを使っています 「akkaというかactor modelはつまるところ継続だな、となったので取っつきやすかった。そういうたぐいの解説を読んだ記憶がないんだけど、みんなactor modelはどう理解しているんだろう。ステートマシン?」 / Twitter
ふ''れいすさんはTwitterを使っています 「CSPというかgoroutine/channelはアレは結局よくわからん。いくつかイディオムちっくなものを覚えれば応用もできるようになるんだけど、actor modelのように腑に落ちる何かではないんだよなぁ」 / Twitter

継続 - Wikipedia
めざそう言語処理系の沼 カテゴリーの記事一覧 - Arantium Maestum
chap11.pdf
chap12.pdf

様相論理・時相論理

線形論理と時相論理

情報学広場:情報処理学会電子図書館
30_2_83.pdf
jssst01k.pdf
PowerPoint Presentation - modal-temporal.pdf
B-028.pdf
1966paper.pdf
lambdaCB-PPL05.pdf
ai_03_001.pdf
07gun_01hen_02.pdf

制約充足問題・LTL

リアクティブシステム仕様を実現可能にするための環境制約の抽出
平均利得時間論理とそれを用いた検証・最適化手法
充足可能性判定を利用したモデル検査
UMLに基づくRTOS設計検証のための環境自動生成法
Formal Method Europe (FME) 2001 参加報告
抽象化を用いた検証ツール
制御システム分野におけるモデル検査の応用
IEICE Trans - モデル検査の実行順序制約の図式表現と試験ケースの自動生成
IEICE Trans - 記号モデル検査によるスマートオブジェクトの近接連携シナリオの効率的な検証
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
千葉商科大学学術リポジトリ
http://t2r2.star.titech.ac.jp/rrws/file/CTT100667201/ATD100000413/
1-FPAI107-20180807-B801_01-06.pdf
2-FPAI101-20160807-B504_07-14.pdf
Honbun-t3606u021.pdf
KJ00005931319.pdf
tanabe_dsw06.pdf
147691361.pdf
235184037.pdf
3635paper.pdf
90001267.pdf
ippan4-5.pdf
ppl9-2.pdf
paper.pdf
紀要34号片山3(校了).indd - KJ00010099963.pdf

時相論理

時相論理 - Wikipedia
線形時相論理 - Wikipedia
計算木論理 - Wikipedia
様相論理 - Wikipedia
クリプキ・モデル - Wikipedia
可能世界論 - Wikipedia
Modal μ-calculus - Wikipedia
model-checking.ppt - model-checking.pdf
プロセス論理 時間 - Google 検索
μ計算 - Google 検索
12gun_02hen_07.pdf
0902-10.pdf
自作言語の型システムの話 - Qiita
オートマトンの概要
時相論理 排他制御 - Google 検索
時相論理 ベクタークロック - Google 検索
時相論理 ベクトルタイムスタンプ - Google 検索
時相論理 デッドロック - Google 検索
時相論理 ロック - Google 検索
時相論理 入門 - Google 検索
時相論理 モデル検査 - Google 検索
ロックコンボイ - Google 検索
レースコンディション - Google 検索
レースコンディション 時相論理 - Google 検索
ロックコンボイ 時相論理 - Google 検索

様相論理

IPSJ-MGN300607.pdf
14_61.pdf
Introduction_to_Modal_Logic.pdf
afreeSat050215.pdf
入門・様相論理(第1回目)|山口尚|note
入門・様相論理(第2回目)|山口尚|note
入門・様相論理(第3回目)|山口尚|note
入門・様相論理(第4回目)|山口尚|note
入門・様相論理(第5回目)|山口尚|note
入門・様相論理(第6回目)|山口尚|note
入門・様相論理(第7回目)|山口尚|note
入門・様相論理(第8回目)|山口尚|note

5分でハイデガー『存在と時間』|山口尚|note
チェシャ猫さんはTwitterを使っています 「何らかの充足可能性問題になりそうだというのはわかるけど、なんで LTL になるんだろ?」 / Twitter
Tomonori SHINDOHさんはTwitterを使っています 「形式手法(モデル検査)などで使う、時相論理のLTL記述からロボットアームの動作を生成する技術について日経Robotics 最新号で書きました 《日経Robotics》NEC、形式的記号論理でロボットが行動を「考える」技術、時相論理のLTLから知的な把持手順生成 https://t.co/3WGQLcxcAX」 / Twitter
NEC、形式的記号論理でロボットが行動を「考える」技術 | 日経クロステック(xTECH)

ラムダ計算・CPS変換・π計算・線形論理

型消去

Simply typed lambda calculus - Wikipedia
Type erasure - Wikipedia
type erasure typed lambda - Google 検索
type erasure - Google 検索
LangSpec2.8-ja_JP.pdf
types23.pdf
TaPL9

ラムダ計算・書き換え

Lambda calculus - Wikipedia
How is Lambda Calculus a specific type of Term Writing system? - Theoretical Computer Science Stack Exchange
REWRITE SYSTEMS AND LAMBDA-CALCULUS
() - 1208.0515.pdf
[0904.4120] On Constructor Rewrite Systems and the Lambda-Calculus (Long Version)
On Constructor Rewrite Systems and the Lambda-Calculus | SpringerLink
final.dvi - open-final.pdf
Term rewriting systems | Programming languages and applied logic | Cambridge University Press
The Origins of lambda-calculus and term rewriting systems - Inria
The Lambda Calculus, General Term Rewriting and Food Nutrition | Beckman Meijer Overdrive | Channel 9
Rewriting - Wikipedia
lambda_en.pdf
syntax.pdf
hor-fct.pdf
LNCS 4098 - A Terminating and Confluent Linear Lambda Calculus - rta06.pdf
148675853.pdf
PII: S0304-3975(96)00173-9 - 82509885.pdf
lambda.pdf
syntax.pdf
H8-garrigue.pdf
IPSJ-TPRO4416006.pdf
21_73.pdf

CPS・並列

Continuation Passing Style 並列処理 - Google 検索
コールバック不要:Javascript に逐次プログラミングを取り戻す StratifiedJS
Javaの非同期処理を,シングルスレッドのようにシンプルにコーディングするための設計パターン (並列処理を逐次処理にする) - 主に言語とシステム開発に関して
継続渡しスタイル - Wikipedia
CPS - mrsekut-p
非同期と継続と私 - 技術日記@kiwanami
JSDeferred Sample
JSDeferred -> Promise 置き換え方法 | tech - 氾濫原
JSDeferredで,面倒な非同期処理とサヨナラ:特集|gihyo.jp … 技術評論社
言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
Scheme 入門 16. 継続
並行プログラミングと継続モナド
CB-002.pdf
B-021.pdf
cps.pdf
6J-05.pdf
ppl8-2.pdf

線形論理 π計算

π計算

スライド

π計算
PI-calculsu
pi-calculus.ppt - pi-calculus.pdf
other-calculi.ppt - other-calculi.pdf
concurrency.ppt - concurrency.pdf

プロトコル記述

IPSJ-TPRO4308019.pdf

エージェント

CiNii 論文 -  π-計算を用いたエージェントのプランの形式化に関する研究
IPSJ-JNL4209002.pdf

分散オブジェクト

CiNii 論文 -  π計算からJavaへの変換系を用いた分散システム開発手法
IPSJ-Z67-1S-03.pdf
abst062.dvi - IPSJ-TPRO0101009.pdf
IPSJ-TPRO4711012.pdf

リアルタイム・オブジェクト

IPSJ-JNL4506002.pdf
CiNii 論文 -  時間付きπ計算における有限プロセスの時間動作抽象化 (計算機科学の理論とその応用 RIMS研究集会報告集)
CiNii 論文 -  π計算に対する時間拡張と合同的性質

GUI・視覚化

CiNii 論文 -  π計算に対する視覚化システム
CiNii 論文 -  π計算に基づくプログラミング言語Nepi のためのGUI機能
IPSJ-TPRO4512011.pdf

Haskell

k9694.pdf
IPSJ-TPRO4716003.pdf

仕様検証・論理体系

IPSJ-TPRO4611006.pdf
CiNii 論文 -  線型論理・π-計算による構成的プログラミング・システム

pi calclusを学ぶにあたって参照したドキュメントとその紹介その一 - けいぞうのメモ帳
A Very Brief Introduction to the Pi-Calculus (in Japanese)
CiNii 論文 -  M-pi計算 : モジュール記述を持つ計算体系
CiNii 論文 -  π-計算の名前制限の名前生成による実装の正しさ
KAKEN — 研究課題をさがす | π計算の圏論的意味論と論理的解釈 (KAKENHI-PROJECT-19K20211)
06gun_03hen_05.pdf
Parallel and Distributed Systems: Winter Semester 2013
Foundation of Software: Winter Semester 2006
授業ホーム | 並行分散計算特論 | 情報科学研究科 | 名大の授業 (NU OCW)
54-2-3_特集_06-1.qxd - 0601.pdf

PowerPoint Presentation - DNaward.talk.jp.final.pdf
IPSJ-TPRO4611006.pdf
07gun_01hen_01.pdf
j-1-1.pdf
j-1-2.pdf
j-1-3.pdf
j-2-1.pdf
j-2-2.pdf
j-2-3.pdf
okada.pdf
Computersoftware Vol.20, No.5 - 20_502.pdf
コンピュータソフトウェア18巻1号 - 18_195.pdf
ipsjPRO01.pdf
21_74.pdf
30_2_83.pdf
001_16.pdf
print-3-phase.pdf
kenkyu0290100690.pdf
other-calculi.ppt - other-calculi.pdf
π計算 - 数学とプログラミングとくだらないこと
A Very Brief Introduction to the Pi-Calculus (in Japanese)
π計算
PPL7-4.pdf
IPSJ-TPRO4716003.pdf
resume8.pdf
resume9.pdf
process-pi-calculus - process-pi-calculus.pdf

ラムダ計算・System F

ラムダ計算

Prologでラムダ計算

Koromo/Prolog-lambda: ラムダ計算のインタプリタみたいなの
prologでラムダ計算 - 計算機と戯れる日々
Prolog Advent Calendar 2016 - Qiita
Prologよいよ - Qiita
TAPL5-3. 型無しラムダ計算(λ) - Qiita
_pdf
ラムダ計算はHOAS - Google 検索
インタプリタ · shiatsumat/wiwinwlh-jp Wiki

証明木・ラムダ計算

ahuさんはTwitterを使っています: 「論理式が型ってのはわかるけど、証明がプログラムってののイメージがわかない」 / Twitter
gentzen-NK.pdf
sakurai10.pdf
20191109_C-3_resume(Tsunoda_Kentaro).pdf
ppl3-4.pdf
ch.pdf
ppl1-3.pdf
パースの法則 - Google 検索
Glivenko の定理の代数的証明 - 論理とか計算機とか数学とか
パースの法則 - Wikipedia
排中律、二重否定の除去、パースの法則 - Qiita
命題論理の自然演繹 : 定理 [数学についてのwebノート]
パースの法則 - Skinerrian's blog
3. Peirce - airoboの日記
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
Introduction_to_Modal_Logic.pdf
継続 | haskell
vol1.indb
84jGENP2.pdf

項書き換え・ラムダ計算

98ss_intro_trs.pdf
agora-2005s-cd-b.pdf
IPSJ-TPRO4416006.pdf
21_73.pdf
ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
正規化 (項書き換え) - Wikipedia
Jacques Garrigue : Home Page
lambda.pdf
H8-garrigue.pdf
trs.pdf
23_3_35.pdf
51237311.pdf
IPSJ-MGN240207.pdf
クヌース・ベンディックス完備化アルゴリズム - Wikipedia
合流性 - Wikipedia
コンビネータ論理 - Wikipedia
SKIコンビネータ計算 - Wikipedia
04mm004.pdf
agora-2005s-cd-b.pdf
研究の紹介

項書き換え・操作的意味

3aa6257094ed385200cd3c7cd7f1a277622a.pdf
ppltut.pdf
116_103.pdf

形式仕様 操作的意味

Miura HidekiさんはTwitterを使っています 「本来はアプリケーションごとにDSLが作られてその上でアプリケーションが作られるべき」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そしてDSL毎にそのための言語VMとIDEが作られて然るべきなのですキリリ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda さすがにこの辺は自動生成にしてほしい...」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 でしょ?カタログから命令セットを選択して、少数のカスタム命令の動作を MUL reg1, reg2, reg3 : reg3 ← reg1 * reg2みたく操作的意味を書いたら、各命令の前提が相互矛盾しないかとか、定義に穴がないかチェックした上で、自動的にVMを生成して欲しいでしょ?で、現状それに近いのって、形式仕様。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。 * の操作的意味って自明じゃない気がしますが、どうなんでしょうか?」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そうなんですよ。*は仕様記述言語側の意味論に帰着させるわけですが、bignumとかしんどいわけですよ。さらに割り算で泥沼ですよ。VMが提供する他の操作セットによって最適な定義もきっと変わるので、色々な*の操作的定義が必要になるかもしれません。こういう体験を積み上げている途中なんです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 割り算は泥沼ですね。CPUの定義によるでは形式的な検査もあったもんじゃないでしょうし。確かに、このあたりの最適解は机上では分からないでしょうね。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 何度Nan-boxing教に入信しようと思ったことか。実際、IEEE754なfloatをVDMのrealに帰着させて定義したので、比較的簡単にNan-boxingな仕様を書けるはずです。そのうちこれもやりたい。いろんな数表現をポチリと選択してVM合成できるようにしたい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 数のビットパターンもそうですけど、割り算だと負の場合の丸め方とか言語によって仕様が違うところをどうするのか気になります」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 ので、仕様記述言語が定義する演算を組み合わせてそのDSLでの割り算を一意に定義し、それを実行する命令を実装を生成するという皮算用です。もちろんホストCPUやホスト言語が提供する割り算によって最適な実装は異なるので、適切なものを自動的に導出可能にする、または選択可能にする必要があります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。なかなか茨を感じますが面白そうです」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 autoconfのようにネイティブ/ホスト言語の演算のセマンティクスを自動検出できたら面白いかなと、今思いました。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda それいい研究テーマかも」 / Twitter

λ-lifting

Lambda lifting - Wikipedia
ラムダ計算から Grass へのコンパイラ作ったったwWWwwwwWWww - Object.create(null)
Lambda lifting とは – 計算機科学Word
Implicitly-Typed Deadlock-Free Process Calculus
ヒビルテ(2006-09-12)
amylase/コンパイラ課題メモ - IS2011 Wiki

Twitter

muratakさんはTwitterを使っています 「Curry-Howard 同型対応、「論理と計算の間に対応がある」という説明をされると非常に非自明なことだけど、たとえば核となる(と思われる) 単純型付きラムダ計算と直観主義命題論理の間の対応は、シンプルすぎて当たり前というか、単にデカルト閉圏の具体例を2つあげただけという気もするんですよね。」 / Twitter
🌙さんはTwitterを使っています 「単純型付きラムダ計算を導入するためにラムダ計算を書いたのか」 / Twitter
🌙さんはTwitterを使っています 「あ、あと無名再帰のためによく使われるYコンビネータですが、再帰型の概念のない単純型付きラムダ計算では型付け不可能でしたねやっぱり」 / Twitter
🌙さんはTwitterを使っています 「単純型付きラムダ計算が正規化可能(停止性が保証されている)ってのはすごかった」 / Twitter
🌙さんはTwitterを使っています 「というか、単純型付きラムダ計算だと再帰関数が定義できないわけで、再代入もなければループすらかけないのだから停止性保証はある意味当たり前だわな」 / Twitter
かすてらふぃさんはTwitterを使っています 「実は単純な型付きラムダ計算みたいな簡単な言語だと関数の引数の型だけ書けば良かったりするんだけど、型システムを拡張すると完璧な型推論は計算不能な問題になってしまうらしい」 / Twitter
戸次大介/Daisuke BekkiさんはTwitterを使っています 「研究室合宿で那須塩原に来ている。今年はゲーデルの不完全性定理、型付きラムダ計算の停止性、シーケント計算の証明探索の三本立て。」 / Twitter
h_sakuraiさんはTwitterを使っています 「e(Γ,i)::=integer|e(Γ,i)+e(Γ,i)|e(Γ,i)*e(Γ,i). e(Γ,b)::=true|false|e(Γ,i)&lt;e(Γ,i). e(Γ,T)::=if(e(Γ,b),e(Γ,T),e(Γ,T)) | λ(x:e([x:T1,Γ],T2)),{T=T1-&gt;T2} | x,{x:T∈Γ} | e(Γ,T1-&gt;T) $ e(Γ,T1). と単純型付きラムダ計算の文法及び型付け規則を記述可能だ。」 / Twitter
粗製伍長さんはTwitterを使っています 「純粋な型付きラムダ計算 GCありきだし参照としてのポインタを剥き出しにすると阿鼻叫喚の地獄絵図になりそうという気づき」 / Twitter
gatetogoさんはTwitterを使っています 「一階論理で量化子のドメインが非空であるとみなしてよくて(i.e. 「(∀x. P) → P」が導出可能)、一階論理を表現できるはずの依存型付きラムダ計算でそうみなせないのはどういうこと?」 / Twitter
あわねずみさんはTwitterを使っています 「wikipediaにλPωのことλΠωって書いてあったが依存型付きラムダ計算のPってΠ(Pi)のことだったのか 前から気になってた」 / Twitter
watcherさんはTwitterを使っています 「やべこれ「Lispは値渡しが基本なものの、 quoteマクロで名前渡しを実現しています。違いは何でしょうか」で済む話でしたorz 50年代にラムダ計算をモデルに実用言語として拡張されたLispと、 80〜90年代、型付きラムダ計算や純関数型言語の重要性が認識された後の、ラムダ計算処理系は何が違うんだっけ」 / Twitter
小林聡@京都産業大学さんはTwitterを使っています 「ほほう、命題論理の implicational fragment の話か、それとも単純型付きラムダ計算の話なのかな(なんでやねん」 / Twitter
kannkyoさんはTwitterを使っています 「昔勉強したカリー・ハワードの対応と型付きラムダ計算がここに来て役立つ日が来るとは・・。 JavaScriptのカリー化について味見してみる https://t.co/AcYz1vun6x #Qiita」 / Twitter
kentoさんはTwitterを使っています 「ソフトウェアの基礎では単純型付きラムダ計算が実装されてるんですが、依存型を追加するにはどうすればいいかわからない…」 / Twitter
kentoさんはTwitterを使っています 「具体的には 単純型付きラムダ計算→ソフトウェアの基礎で定義されているのでパクる 依存型→がんばる 単純型付きラムダ計算の型チェックの関数→ソフトウェアの基礎で定義されているので、各規則にわけてパクる 依存型の型チェックの規則たち→↑の関数を参考にしてがんばる」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn primitive type algorithmっていうなら単相型の型付きラムダ計算に(メタ的に)多相性を導入できることを指しますから、その言い方は誤解がある気がします…」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn えーと、型注釈なしの単純型付きラムダ計算においてtypableなラムダ式につけうる型(これは無数にある)のうち、出現するatomic typeに他のtypeを代入することでつけうる全ての型を表現できるものをprincipal typeとして、これを先に言った構文木の解析(とunification)で求めるものを指しています」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn これが可能な事は、単純型付きラムダ計算が明示的には単相であるにも関わらず、型注釈がない場合にはメタ側からはあたかもオーバーロードしているかのように見える、ということなのかと思っていました」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn ちょっと復習かねて時間取ってました。やはりその言い方は語弊があるのでは?(少なくとも(単相な)単純型付きラムダ計算の元では)aをconcrete typeとして具体化したらもう他の型として具体化できないですよね?それだと恒等関数を表現できていないのでは?」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn それは同名の関数が同じ型をもつとは限らないというだけでは? そもそもラムダ計算には名前をつける文法はないので名前はあくまで略記であって、「ラムダ式の略記」と「型付きラムダ式の略記」を別々に用意しておけば問題はなさそうです?」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 考えてみましたが、やはり無理なような。型推論をしようが、単純型付きラムダ計算上の型式だと適切な型を与えられないと言うか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 示唆する、というのは明確ではないですが、単純には無理というしかないような。ちょっとここから先は実際の型付きラムダ計算の体系と、その上の特定のラムダ式を例にして議論した方がいいような気がしてきました…(Twitter上だとつらひですが)。」 / Twitter
黒澤亮二さんはTwitterを使っています 「「プログラムの実行と定理の証明が対応する」というカリーハワード対応を理解したかったが、最後の章の内容で全然到達しなかった。とりあえず「圏論の歩き方」も読んでカルテシアン閉圏と型付きラムダ計算が対応するという事がわかったつもりになれたのでいいことにしたい・・・」 / Twitter
kentoさんはTwitterを使っています 「実は論理式として型付きラムダ計算の型が使えるんだけど、なんで使えるかはカリー・ハワード同型対応でググってネ!と言ってしまえば証明論の話も回避できるので便利(?)」 / Twitter
ayustateさんはTwitterを使っています 「ラムダ計算に型付きから入門した人は「プログラムをラムダ式で表現してラムダ抽象式は関数だから関数型A→Bを持つということにして関数適用はA→Bの型を持つ式とAという型を持つ式との間でしかできないとすると、そういったプログラムは必ず停止する」ことの感動を味わえないという煽りを思いついた。」 / Twitter
ayustateさんはTwitterを使っています 「今は「ラムダ計算の入門書は何がよいですか?」という質問にTAPLとか大堀本とかが答えに挙がるんだなぁ。そんなに最初から型付きがよいのだろうか。昔は(世界の多くの人がイエローブックやクリーニ本で勉強している一方)母語が日本語である偶然に感謝して高橋本を読めといったものだが。」 / Twitter
緑に戻りたい!さんはTwitterを使っています 「@_Iwancof 型の安全性の照明とかに使われるらしい。 例えば型付きラムダ計算を理解すると一定の条件下で無限ループ判定が出来るので無限ループをしないソースコードをかける」 / Twitter
ねこむらこねこさんはTwitterを使っています 「@_nabbe 単純にS x T x U → Vという型は、単一の引数しか扱わない(扱えるとしたら、それはカリー化しているから)型付きラムダ計算では取り扱えないでしょ。 だから、単純に理論上の取り扱いが楽になるからS x T x U → VとS → T → U → Vを同一視して欲しい。 さらにプログラマーも部分適用できるおまけつき」 / Twitter
╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「ラムダ計算のチャーチエンコーディングされた整数は全部型が違うから型付きラムダ計算では使えないのか」 / Twitter
重城良国さんはTwitterを使っています 「HaskellのCore言語は、だいたいSystem FCだということ。僕はいまのところ(数学的にではなく感覚的に)untypedなラムダ計算は、わかる。つぎは単純型付きラムダ計算を学び、多相性を取り込んだSystem Fを学び、さらに「型変換をあらわす型」を明示的に引数にとるSystem FCを学ぶ必要がある。」 / Twitter
重城良国さんはTwitterを使っています 「あ、あと(たぶん)単純型付きラムダ計算だと再帰が表現できなかったと思うのだけど、そのあたりはSystem FCだと解決されているのだろうか。」 / Twitter

ユーザーブログ:Hexirp/(2020-05-03) 計算可能関数と型付きラムダ計算 | 巨大数研究 Wiki | Fandom
基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
ラムダ計算 述語論理 - Google 検索
項書き換え系 述語論理 - Google 検索
ラムダ計算 文字列 - Google 検索
チャーチ数 sub - Google 検索

resume4-rev.pdf
resume5.pdf
resume6.pdf
main.pdf
de bruijn ラムダ - Google 検索
alpha 変換 ラムダ - Google 検索

線形論理 停止性

summer1.pdf
birth.dvi - birth.pdf
IPSJ-TPRO4611006.pdf
toyama-final.dvi - toyama-final.pdf
07gun_01hen_02.pdf
1875paper.pdf

時間付きπ計算

IPSJ-JNL4506002.pdf
1554-01.pdf

プルーフネット 線形論理

jssst01k.pdf
ipsjPRO00t.pdf
paper.pdf

不動点コンビネータ

std::variantと不動点演算子 - in neuro
In C++, how to make a variant that can contain a vector of of same variant? - Stack Overflow
不動点コンビネータ - Wikipedia
コンビネータ論理 - Google 検索
TypeScriptで不動点コンビネータに型をつける - Qiita
d.y.d.
不動点コンビネータで無名再帰を作る流れをおさらい - 無駄と文化

8_1_34.pdf
lambda.pdf
5.pdf
cs2019muroya.pdf
私を SKI に連れてって
cormoran's note - LazyK HelloWorldを目指す
SKIコンビネータ AGAIN
combinatory logic in nLab
sou19.pdf
66_0661078.pdf
MSJ20120328Fujita.dvi - MSJ20120328Fujita.pdf
画力・博士号さんはTwitterを使っています 「値呼びの型なしラムダ項をTeX言語コードにコンパイルし,それをTeX言語上に構築したVMで完全展開で評価できるようになった: https://t.co/OKy0aEYXXC 1枚目: 入力 2枚目: 処理の様子 3枚目: 出力コード 4枚目: LaTeXで処理した結果出てくるPDF https://t.co/Ufm4L1A0RX」 / Twitter
IPSJ-SE93097013.pdf
完全展開形 ラムダ - Google 検索
stlc.pdf
sakaue.pdf
ラムダ計算インタープリタ : tnomuraのブログ
ラムダ計算 : tnomuraのブログ

項書き換え

ppl2-3.pdf
26_2_76.pdf
32_1_179.pdf
0833-08.pdf
KJ00000218634.pdf
KJ00003124054.pdf
TRS_prec.pdf
ieicej07.pdf
JAIST Repository: 項書き換えに基づく計算量解析の自動化

停止性問題

停止性問題

停止性問題

停止性問題 - Wikipedia
ゲーデルの不完全性定理 - Wikipedia
ゲーデル数 - Wikipedia
カントールの対角線論法 - Wikipedia
カントールの定理 - Wikipedia
濃度 (数学) - Wikipedia
連続体仮説 - Wikipedia
パラドックス - Wikipedia
ラッセルのパラドックス - Wikipedia

電子情報通信学会知識ベース

電子情報通信学会知識ベース |トップページ
06gun_02hen_ab.pdf
06gun_02hen_01.pdf
06gun_02hen_02.pdf
06gun_02hen_03.pdf
06gun_02hen_04.pdf
06gun_02hen_05.pdf
07gun_01hen_ab.pdf
07gun_01hen_01.pdf
07gun_01hen_02.pdf
07gun_01hen_03.pdf

バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
停止性問題について考える。Halting Problem - Unityでインディゲーム道!
20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
【コナハン】「人と機械の停止性問題」/「tbn*echo」の小説 [pixiv]
マンガ6.b「停止性問題」 | ラビリンス人工知能
停止性問題 - 人工知能について調べながらラノベみたいなの書くよ - CRUNCH MAGAZINE(クランチマガジン)
停止性問題は決定不能→バグのないソフトウェアは作れない? - sumiiのブログ
高階差分にもとづくループ停止性証明方法
「バグのないプログラム」と「バグのないプログラムは作れない」と停止性問題について - noopな日々
正当性理論 | ITの基礎知識|ITパスポート・基本情報
Magic: The Gatheringのルールが本質的に不完全であることの証明|Memeplexes
ライスの定理 - Wikipedia
チャイティンの定数 - Wikipedia
無限ループ - Wikipedia
モデル検査 - Wikipedia
二分決定図 - Wikipedia
充足可能性問題 - Wikipedia
抽象解釈 - Wikipedia
SPINモデルチェッカ - Wikipedia
制御フローグラフ - Wikipedia
決定問題 - Wikipedia
コラッツの問題 - Wikipedia
Shinji KonoさんはTwitterを使っています 「ゲーデルの不完全性定理とチューリングマシンの停止性の問題は、両方とも自己参照命題と対角線論法の二つの証明があり別物。後者は番号付けを通して自己参照する感じ。」 / Twitter

機械学習

機械学習 停止性問題 - Google Scholar
AI研究における「ブラックボックス問題」とは何か | Forbes JAPAN(フォーブス ジャパン)
Ceron - 機械学習によって解決できるかどうかが証明不可能な学習モデルが発見される - GIGAZINE
アラン・チューリング「人工知能の “考え方” は我々とは異なる」 | and AI. – 人工知能のwebメディア
いまさら不完全性定理と人工知能について - 再帰の反復blog
AIは数学者にとってかわれない、これはチューリングが既に証明済み - 団塊亭日常

PDF

20800022 研究成果報告書
_pdf
_pdf
encoding.dvi
termination.pdf
typedlmd.pdf
www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/termination.pdf
www.fc.inf.kyushu-u.ac.jp/~kawamura/t/joi/H290320_yoyogi.pdf
paper.pdf
general4-3.pdf
1205_29.pdf
bachelor.pdf
ieicej07.pdf
100229.pdf
Microsoft PowerPoint - 03np.ppt [互換モード]

Aritalab:Lecture/Algorithm/Halting Problem - Metabolomics.JP
yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想
PFIセミナー 2013/02/28 「プログラミング言語の今」
バグのないプログラムと不完全なこの世界: Architect Note
バグのないソフトウェアの作れない理由 - Qiita
ハッカーの遺言状──竹内郁雄の徒然苔第44回:複雑さを利用する? | サイボウズ式
決定不能問題から始める計算可能性理論入門
計算可能性理論 講義ノート
d.y.d.
El Pin AlさんはTwitterを使っています 「OCaml、このコードの型検査も停止しない。 applicative functorがあって、かつpathベースのモジュールシステムだと、再帰モジュールを上手く扱うのは難しいよね https://t.co/CAcIS33dZj https://t.co/lb7w5a4aoJ」 / Twitter
unterminating type checking for recursive modules · Issue #3674 · ocaml/ocaml

error-tolerant parsing

井山梃子歴史館さんはTwitterを使っています 「Lossless Syntax Tree構築できて盛り上がっている https://t.co/dtqrtUWGtQ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「∀y. (fun x -&gt; y) = fun z -&gt; y のパース結果」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「参考文献: https://t.co/ENSRkFmgZB https://t.co/6vwxnPwhlj」 / Twitter
rust-analyzer/architecture.md at master · rust-analyzer/rust-analyzer
Persistence, façades and Roslyn’s red-green trees | Fabulous adventures in coding
井山梃子歴史館さんはTwitterを使っています 「repo: https://t.co/4ofcm40Y8T」 / Twitter
pratt/lib.rs at abec6651daf21d2a081c3d9026b08bd0c44b3dd1 · pandaman64/pratt
井山梃子歴史館さんはTwitterを使っています 「error-tolerant parsingで盛り上がっていけ https://t.co/SJoiUI5XYO」 / Twitter

デザインパターン・DI

NAKAMURA AtsushiさんはTwitterを使っています 「DIコンテナを使う理由はそうなんだけど、なんでDIするか?の答えにはなっていないような 個人的には依存の解決はPullするかPush(Injection)するかしかないと思っていて、PullはStaticなリポジトリへ依存しないといけなくなるからDIするんだけど 前にこの辺にかいた https://t.co/LCSUv3Yzrm」 / Twitter
Service LocatorとDependency InjectionパターンとDI Container - nuits.jp blog
Takuto WadaさんはTwitterを使っています 「依存の注入はコンストラクタでやろう ↓ 依存と生成知識がシステム中に散らばる ↓ 生成知識をファクトリーで隠蔽しよう ↓ 今度はファクトリーがシステム中に散らばる ↓ ファクトリーはシステム中にDIコンテナひとつでよくね? ↓ DIコンテナが依存と生成知識を一括管理し、秩序と調和が訪れる(完)」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「この流れで考えたら、唐突に「プリミティブ型の断片的な設定パラメータをinjectする」ことへの違和感と抵抗感の理由がわかった。 それだと整合性の担保や変更時のレビューが大変になるから、Abstract Factory相当のオブジェクトがほしかったんだ。」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「diconファイルをモジュール化すれば自然にそういう単位になるけど、GuiceやDaggerで同じことをやるにはもう少し工夫が要る」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「という発想が、デザインパターンを知ってるとできるようになるって話を書いた気がした。 https://t.co/R7mwTo9YDA DIコンテナでこの問題を解くときの実装はGoFのAbstract Factoryとはぜんぜん違う形になるはずだけど、状況と問題設定は同じ。」 / Twitter
一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?に対するYuki Sonodaさんの回答 - Quora
Kazuho OkuさんはTwitterを使っています 「そうなんだよね。結局、GUIフレームワークプログラミングで「発見」されたAbstract Factoryパターンをサーバサイドのフレームワークプログラミングで「再発見」したのがDIというか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「で、IoCについては、設定ベースではなく規約ベース(convention over configuration)でやる手法もあって(libcが呼ぶユーザプログラムの関数名がmainと決まってるのが端的な例)、サーバサイドフレームワークでも後々、規約ベースの手法も取られるようになった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「IoCが、規約ベースなのか、コードベースなのか、専用言語を使うのか、という点はそれぞれ得失がある(クライアントサイドGUIでもしばしば専用言語を使う)けど、規約ベースやコードベースでやることの敷居が高い言語ほど、ごついDIになりがちなのはしょうがないよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「デザインパターンについては Pree のメタパターンについての本が一番記憶に残ってるし、いい本だと思う。Amazon 見ると2009年に買い直してるから、部屋のなか探せば出てくるかな。 https://t.co/nuMeSzv5hX 内容については https://t.co/HTDBSCXQOd が参考になると思う」 / Twitter
オブジェクト指向におけるデザインパターン

関心の分離

関心の分離 - Wikipedia
関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita
責任(関心)を意識したアプリケーション設計 - Qiita
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
ryoheyさんはTwitterを使っています 「MVVMでモデルを頑張って分けすぎてモデル間の依存が多くなって良くない感じになるのと同じことが起きそう。最初のうちはあんまり分割しないで素直に書くのが良いかもな」 / Twitter

イベント

CQRS

DDDで設計するならCQRSの利用を検討すべき - Qiita
CORSまとめ - Qiita
Cutting Edge - CQRS とイベント: 強力なコンビ
Cutting Edge - 一般的なアプリケーション向けの CQRS
CQRS + ESについてのまとめ - Output!!
CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | プログラミング | POSTD
CQRSとイベントソーシングでシステムを構築する
ドメインストーリテリングを使ってコンテキスト境界を見つけ出す
Living Documentation by design, with Domain-Driven Designを読んだ | Web Scratch
#teppeis_sushi でクライアントサイドDDDについて発表した | Web Scratch
CQRSとイベントソーシングのフレームワークであるAxonの基本概念と今後について
リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
松岡@DDDブログ書いてますさんはTwitterを使っています 「#peingddd CQRSのよくある誤解で、導入したら参照系と更新系それぞれのモデルしか使ってはいけないというのがあります。(続) #Peing #質問箱 https://t.co/B2NSJ5ZhbW」 / Twitter
松岡@DDDブログ書いてますさんはTwitterを使っています 「しかし、そんなことはありません。 こちらの記事に書いたのですが、CQRSは「必要な部分だけ導入する」でOKです。 https://t.co/qHdB1EvQyy 今回のご質問だと、いくつかのテーブルを参照したような複雑なクエリ部分だけ、そこに特化したクエリモデルを使用して検索するぐらいで良いと思います。」 / Twitter
CQRS実践入門 [ドメイン駆動設計] - little hands' lab
松岡@DDDブログ書いてますさんはTwitterを使っています 「ただ、そのあとに更新処理を行う時には、リポジトリから取得したドメインオブジェクトを通じて行う方が良いでしょう。」 / Twitter
松岡@DDDブログ書いてますさんはTwitterを使っています 「なぜなら、重要なドメイン知識(ルール/制約)をドメインオブジェクトで表現し、そのコードを見ればドメイン知識が理解できることを目指したいのに、その他の部分に知識が分散してしまうとそれが見落とされてしまうことにあるからです。」 / Twitter

イベントアーキテクチャとイベントストリーミング
イベントソースシステムにおけるイベントのバージョン管理
イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より
イベントは開発者の第一級ツールであるべきだ
イベントソースシステムにおける過去と未来のイベント
O'Reilly Software Architecture Conference NYで発表されたイベント駆動型マイクロサービス
AxonDB - イベントストアの新たな実装
DDD、イベントストーミング、アクターモデルを使用したリアクティブシステムの設計
イベントは分散システムの将来を変えるか - Jonas Bonér氏のQCon Londonでの講演より
data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表
QCon London: 非同期イベントアーキテクチャにおけるアクタ導入の可否
RSpcket - SpringOneで発表された、リアクティブアプリケーションのための新たなアプリケーションネットワークプロトコル
簡単なリアクティブシーケンス - Faith and Brave - C++で遊ぼう
リアクティブシーケンスのフィルタ - Faith and Brave - C++で遊ぼう
マイクロサービスからワークフローへの移行
フレームワークは善か悪か,その両方か?
イベントファースト思想はなぜ重要か
イベント駆動システムに対する批判的見解 - Bernd Rücker氏のQCon Londonでの講演より
アーキテクチャと設計 InfoQトレンドレポート - 2019年1月
イベントストリームKafkaとワークフローエンジンZeebe
JavaScripr言語にリアクティビティを実現するフロントエンドフレームワークSvelte 3 - 作者のRich Harris氏に聞く
イベント駆動からイベントソーシングへの移行 - MicroCPHのFangel, Ingerslev両氏の講演より
C# 8の非同期ストリーム
Kotlinの新しい非同期処理 - QCon SFでのRoman Elizarov氏の講演より
IAsyncDisposableとIAsyncEnumeratorの更新
Badooのデータエンジニアリング:1日あたり200億のイベントを処理
イベントソーシングシステム開発時の間違いとリカバリ
高可用性ワークフローエンジンZeebeが実運用対応に
オープンソースのCNCF CloudEvents仕様、バージョン1.0のマイルストンに到達
ワークフローにイベント駆動型の自動化を提供するPuppet Relay
2020年8月5日 Linux 5.8がリリース,コーディングスタイルに"inclusive terminology"適用:Linux Daily Topics|gihyo.jp … 技術評論社
マイクロソフトが買収した「ThreadX」あらため「Azure RTOS」はまだ実体がない (1/3) - MONOist(モノイスト)
CNCFが策定するクラウドイベントの標準仕様「CloudEvents 1.0」が登場。サーバレスのクラウド間互換を促進するか? - Publickey
Amazon EventBridge Schema RegistryがAWSで一般向けに提供開始される

意味論・直観主義

圏論

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうのに「関数型の基礎」というタイトルを付けるのは全力で止めていただきたいのだが、説得力のあるよい例えはないものか。 / 1件のコメント https://t.co/lv2uzQCf9k “【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita” https://t.co/YlfvhA1JdH」 / Twitter
【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そりゃ遠い繋がりはあるけど、遠すぎるんだよなぁ。強いていうなら「プログラミングの基礎」だよ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「うーん、やっぱたとえ話はこういうときよくないな。 そもそも例えが適切かどうかで話が発散してしまう。」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「違います &gt; 結論からいうと圏は集合です. https://t.co/DHGlZvpIWG」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏自体はほとんど集合を意識した構造を持たないので、圏を集合というのは語弊が大き過ぎる(cf. 集合圏の性質)。 圏は一般にかなりデカいので、扱いやすい小ささに収めるために Grothendieck universe を持ち出して議論してるという印象だった。」 / Twitter
⿻あいや⿻ 技術書執筆「せつラボ」さんはTwitterを使っています 「大きい圏(対象の集合(と|か)社の集合がユニバースな圏)の話かー。 ユニバースが集合なのか集合でないかという問題に依存しそう🤔✨ (明示的に言及されてない限り、ユニバースは集合ではない……という曖昧な感覚があります)」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏論はプログラミングという営みからも遠くて、プログラミング言語の意味論の基礎の基礎という感じがしますね」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏だけ使うなら圏論は要らない?」 / Twitter
[2010.05167] A Categorical Programming Language

表示的意味論

圏論

トビ🍷ペンギン村さんはTwitterを使っています 「圏論、無秩序な世界に”特定のルール”を課すことで、”同じ構造とみなせる”モノ達ができ、それによって”同一のルールで扱える”、って点ではプログラミング言語における”型”や”プロトコル”とかと似たようなモチベーションなんだろうなって思った。 いや、知らんけど。」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「言い換えると、すべての数値に対応する関数を f(1), f(2), f(3) ・・・って全部定義するより、 "Int"って型を用意して f(Int) な関数を1つ用意するようにしたいとか、List&lt;Int&gt;, List&lt;Bool&gt;, List&lt;String&gt; って個別のリストを用意するより、 "List&lt;Element&gt;" を1つ定義するようにしたい、とかとか。」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「たぶん、圏論はその扱う対象の抽象度が極めて高いから、難解に感じるだけで、モチベーション自体は極めてシンプルなんだと思う、”同じようにみなせるようにしたい”っていう。 そういう意味では、”ポリモーフィズム”みたいなものだ、って説明もありなのかもしれない。OOP ユーザには。」 / Twitter
Kosuke YOSHIMOTOさんはTwitterを使っています 「@tobi462 Haskell、モナドのインスタンスになれば、do記法を使って「命令型で記述ができる」ようになるっていう仕組みが不思議ですよね。(do記法を実現する方法としてモナドが導入されたのでしょうが。)」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「@ysn551 んー、私も詳しくないので断言は避けたいのですが、”モナド”という文脈を保って計算する仕組みが先に存在して、バインド関数?(==&gt;)のシンタックスシュガーとして”do記法”が用意された、という順ではないですかね・・・? Haskell はモナドがなければ I/O すら扱えないわけですし。」 / Twitter

圏論と型付きラムダ計算

PDF

RelevantTheories
5.pdf
H28-hasegawa.pdf
wakimoto3.pdf
intro.pdf
https://www.sci.kagoshima-u.ac.jp/mcs/archive/116-abst.html
20500010 研究成果報告書
jabstract.pdf
052.pdf
2009w202.pdf

職業プログラマが圏論をスルーすべき理由
圏論とプログラミング読書会#2 資料
圏 論 に よ る プログラミング と 論 理
圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
デザイナーに憧れて: 型付きラムダ計算を関数型プログラミング言語と見做す
Modegramming Style: 関数型プログラミング技術マップ2015
なぜ、プログラムは書けるのか:計算論からゴールによる様相論理、意味論まで俯瞰してみる - ウィリアムのいたずらの開発?日記
typed lambda calculus型付きラムダ計算 ←・← (型を持たない「ラムダ計算」を改良したもの?! ・・・) | 隠れ家 - 楽天ブログ
yuwki0131-blog: ラムダ計算の使い方
技術者/プログラマのためのラムダ計算、論理、圏第2回
2017年振り返り - The curse of λ

d.y.d.
d.y.d.
katsumata.pdf
並列論理和の続き - sumiiのブログ
表示的意味論に基づくパターンマッチングコンパイル方式の構築と実装
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「圏論の「圏」はなんで「圏」なんだろうとずっと思ってたけど可換図式が輪っかを描くからだってことに最近やっと気づいたよ」 / Twitter
nkamlさんはTwitterを使っています 「型付きラムダ計算とカルテジアン閉圏の対応は理解できた(と思う)ので他の例を見てみたいなど...」 / Twitter
OddieさんはTwitterを使っています 「型付きラムダ計算から得られる圏C(λ_→)は基底型(基本的なデータ型のこと)の集合Xから自由生成されたカルテジアン閉圏になっており、任意のカルテジアン閉圏Cがに対し基底型の対応する対象を指定することで、カルテジアン閉圏の構造を保つ関手C(λ_→)→Cが唯一つ決まる(ラムダ計算の意味論)」 / Twitter
https://twitter.com/shinji_kono/status/1307988467096326144

ホーア論理・意味論

Incorrectness Logic

Masahiro SakaiさんはTwitterを使っています 「Incorrectness Logic https://t.co/DUWxMRaaeT ホーア論理は「QはPのもとでのCの実行後の状態の過大近似である」という関係 {P}C{Q} の導出に関する体系なのに対して、Qが過大近似ではなく過小近似である [P]C[Q] という関係の導出に関する体系 incorrectness logic の提案。 #POPL2020」 / Twitter
Incorrectness logic | Proceedings of the ACM on Programming Languages
Masahiro SakaiさんはTwitterを使っています 「ホーア論理(correctness logic)は不具合が存在しないことを証明する体系なのに対し、この incorrectness logic は具体的な(特に不具合を表す)実行例の存在を証明する体系になっていて、テスト、記号実行、バグ発見ツール等で使われている概念を捉えている。 動画: https://t.co/P4ef3AwSuk #POPL2020」 / Twitter
Incorrectness Logic - YouTube
Masahiro SakaiさんはTwitterを使っています 「過大近似と過小近似で双対的なんだけど、意外と直観が 働かなくて、でもテスト、記号実行、バグ発見ツール等で使われている概念をうまく捉えることができるよう形式化されていて、面白いな。 #POPL2020」 / Twitter

main.pdf
prg.pdf

ミーリーオートマトン・意味論

2019-5-4-4.pdf
ムーアマシンとミーリーマシン - Google 検索

直観主義論理

summer2013.dvi - summer2013.pdf
jms.dvi - jms.pdf
cm_of_mell.pdf
直観主義論理入門 - resume.pdf

直観主義論理 停止性

summer2013.dvi - summer2013.pdf
直観主義論理 - Wikipedia
4.pdf
40_1.pdf
62_0621115.pdf
msj07.dvi - msj07.pdf
ko0307.pdf
ppl2020.pdf
winter05.pdf

情報学広場:情報処理学会電子図書館

情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館

CiNii 論文

CiNii 論文 -  線形論理と論理プログラミング
CiNii 論文 -  線形論理に基づく計算モデルの理論概説
CiNii 論文 -  上流設計からモデル検査プロセスまでの一貫設計検証環境 : UML記述からSPINモデル検査器用プロセス定義及び線形時相論理式への自動変換手法
CiNii 論文 -  ペトリネットモデルに対する線形論理の完全性
CiNii 論文 -  型付きλ計算の古典線形論理の計算的解釈への埋め込み
CiNii 論文 -  名前通信プロセス計算の並行コンビネータ

英文

重点項目

Linearity and the pi-calculus | ACM Transactions on Programming Languages and Systems

An exact correspondence between a typed pi-calculus and polarised proof-nets - ScienceDirect
On the π-calculus and linear logic - ScienceDirect
Linear Logic Propositions as Session Types
Session Types as Intuitionistic Linear Propositions | SpringerLink
The π-calculus as a theory in linear logic: Preliminary results | SpringerLink
DROPS - Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication
Linear Logical Relations for Session-Based Concurrency | SpringerLink
A New Linear Logic for Deadlock-Free Session-Typed Processes | SpringerLink
On linear logic planning and concurrency - ScienceDirect
"The Pi-Calculus as a Theory in Linear Logic: Preliminary Results" by Dale Miller
The Pi-Calculus as a Theory in Linear Logic: Preliminary Results - fulltext.pdf

blog

κeenのHappy Hacκing Blog

Rustで作るインメモリキャッシュ | κeenのHappy Hacκing Blog
Rustでインメモリキャッシュ作った話 | κeenのHappy Hacκing Blog
言語自作を通して学んだRust | κeenのHappy Hacκing Blog
依存型のあるHaskellことIdrisってどんな言語? | κeenのHappy Hacκing Blog
自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
SMLでバッククォート記法を実現する | κeenのHappy Hacκing Blog
κeenさんはTwitterを使っています 「Standard MLのwithtypeの挙動 https://t.co/tv2kGfi26c」 / Twitter
Standard MLのwithtypeの挙動
Summary of proposed changes · SMLFamily/Successor-ML Wiki
F-ing Modules, yabaitech.tokyo vol.5
κeenさんはTwitterを使っています 「Erlangの歴史を紐解きつつJIT導入への道程を示している。過去に高速化の話はいくつかあったがそれぞれ問題を抱えていた The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP. https://t.co/f1z09Cijsk」 / Twitter
The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP.
Idrisの基本文法 | κeenのHappy Hacκing Blog
Idrisのインストール | κeenのHappy Hacκing Blog
Idrisの型とデータ型 | κeenのHappy Hacκing Blog
REPLでIdris小旅行 | κeenのHappy Hacκing Blog
Idrisのインタフェースとモナドなどなど | κeenのHappy Hacκing Blog

井山梃子歴史館

『トポスと高階論理』を読んでいる - 井山梃子歴史館
どうしようもなくnaive realism - 井山梃子歴史館
数学に正解は一つしかないのか? - 井山梃子歴史館

yhara.jp

vtableを用いたOOP言語の実装 - yhara.jp
Go Language Specification輪読会に参加した - yhara.jp

FPGA開発日記

コンパイラのための新しい中間表現 MLIR の論文を読む - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(1. Getting Started) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(2. MLIRに関するコード生成を試す) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(4. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(6. MLIRに関する発表資料を読む) - FPGA開発日記
QEMUが分岐命令を処理する仕組み(Relocationによるラベルの解決) - FPGA開発日記

はてなブログ

CloudNative Days Tokyo 2020 で CockroachDB と TLA+ について話してきました - チェシャ猫の消滅定理
効率的な正規表現エンジンを Coq で検証する - fetburner.core
ML のサブセットの型推論器を Coq で検証する - fetburner.core
クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog
monochromeさんはTwitterを使っています 「Rubyの多重代入、辛すぎだろ。 最後の評価順の話は、現在のCRubyとは異なるようだ。 多対多の代入の場合、右辺を並び順に評価した後、左辺を順に評価している。 以前のYARVは左辺は逆順で評価していたようだ。(その気持ちはVMを自作すると痛いほどよく分かる https://t.co/djYeYkyScp」 / Twitter
NODE_MASGN / 多重代入 - ひとり勉強会
自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
プログラミング言語Egisonの型システムを設計するインターンをした - a_kawashiroのブログ
Pony言語を触ってみよう前編 - 虎の穴開発室ブログ
Rust製のパーサコンビネータnomを解剖する(v6.0.0) - Explore cs in depth!
新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だったのか?』の草稿を公開します - まめめも

クックパッド開発者ブログ

Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
Ruby 3 の静的解析ツール TypeProf の使い方 - クックパッド開発者ブログ
Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ

スライド

CockroachDB から覗く形式手法の世界 #CNDT2020 / CloudNative Days Tokyo 2020 - Speaker Deck
形式手法による分散システムの検証 #builderscon / builderscon tokyo 2019 - Speaker Deck
RustでつくるRubyのFiber - Speaker Deck

セルフホスト可能なCコンパイラを書く – GitHub 出張所 – プログラム関係のブログはここに
自作コンパイラ基盤の内部構造を書くところ - uint256_t's blog
FStar Tips | teqblog
形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
Leaving OCaml
OCaml で書かれた Python のサブセット実装 ocaml-minipy のソースを読む - DEV
Rust に様々なスクリプト言語を組み込む - Möbius Flyer
大統一 Node ツールチェイン Rome の野望 現状の実装 - mizdev
A New Backend for Cranelift, Part 1: Instruction Selection - Mozilla Hacks - the Web developer blog
min-caml を Mac で動かす
マイクロソフト、マイクロサービス開発を容易にする「Dapr」をオープンソースで公開。サービス間呼び出し、ステート管理、サービス間メッセージングなど提供 - Publickey
定理証明支援系とは何か、何ができるのか|森北出版|note

PDF

Microsoft PowerPoint - esci.pub.ppt [互換モード] - e-sci111122-4.pdf
computer software Vol.22, No.2 - 22_2_22.pdf
untitled - 21_3.pdf
ppl2-2.pdf
hirai-thesis.pdf
26_doc3.pdf
CB-002.pdf
ambient-calculus.ppt - ambient-calculus.pdf
IPSJ-MGN270905.pdf
25_3_49.pdf
IPSJ-MGN300605.pdf
game_and_set_theory.pdf
現代論理学の諸問題 | 慶應OCW|
講義一覧 | 現代論理学の諸問題 | 慶應OCW|
JOKIHY-14_22117.pdf - 13_ishii.pdf
Formal languages and Pervin spaces - JEP.pdf
Agda 上でのZF集合論の構成
06gun_03hen_05.pdf
01gun_08hen_02.pdf
untitled - semantics.pdf
Microsoft PowerPoint - 04SyntaxSemantics.ppt - 04SyntaxSemantics.pdf
www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf
<4D6963726F736F667420576F7264202D20834D838A8356838395B68E9A82CC93C782DD95FB>
paper.dvi
170221_yoshizoe.pdf
26411.dvi - 26_462.pdf
chap13.pdf
コンパクト開位相と写像空間の位相
dd_nat_jp.pdf

Qiita

その他

Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
ウワサのBlawnを触ってみた - Qiita
25年前の未来の言語の話 - Qiita
最近見つけたおもしろ自作言語の紹介 - Qiita
自作言語でセルフホストしてみた - Qiita

Rust

C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
Rust から C++ のメソッドを呼ぶ方法をまとめてみた - Qiita
WSL2 (Ubuntu) で Rust のインストールがうまくいかない - Qiita
Rust でグラフ(petgraph) - Qiita
Rustで自己参照構造体が作れない理由と解決法 - Qiita
本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita
XbyakをRustから使ってみた - Qiita
『みんなのデータ構造』を読んで Rust で実装した - Qiita
no_stdのRust on LinuxでHello, world!する - Qiita

Julia

Juliaという速くて書きやすい言語をちょっとだけ覗いてみたんだが、なにやらワクワクするものがあったので報告しようと思う - Qiita
dc1394さんはTwitterを使っています 「このQiitaの記事のC++(Eigen使用)のコードを、Juliaに移植してみたら、かなり速くなった。具体的には、 C++(+Eigen): 166.81(秒) Julia: 14.240(秒) で、C++よりJuliaの方が12倍くらい速くなった。Julia優秀すぎる。今後もC++のコードをJuliaに移植していきたい。 https://t.co/SuUxyxGCoL」 / Twitter
水素原子に対するSchrödinger方程式を有限要素法で数値的に解いてみる(C++のソースコード付き) - Qiita
電子計算機の沼さんはTwitterを使っています 「面白がって最適化してみたけど,Julia版のコードが上がってないので比較はできない ただ調べた結果,固有値ソルバが全体時間の99%(それ以外は0.1秒)で,「速い固有値ソルバをコールするコンテスト」なので,言語の話じゃなくてリンクしてる物の違いとかだったんだと思います なので私はもう撤退.」 / Twitter
dc1394さんはTwitterを使っています 「@Hishinuma_t Julia版のコードはGitHubのこちらにあげています。 https://t.co/DVf0gUicD8」 / Twitter
dc1394/hydrogen_fem_julia: FEMで水素原子に対するSchrödinger方程式を解くコードです(Julia版)
nkさんはTwitterを使っています 「実はよくわからない押しつけがましい人がよくわからない主張を繰り返すのでjulia使うのうざくなってきた」 / Twitter

Ruby・Elixir

RubyVM::AbstractSyntaxTree::Node 詳細 - Qiita
Ractor超入門 - Qiita
Elixir Wizards Dojo について - Qiita
なぜ僕の中でElixirが一番であり続けるのか - Qiita

2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
DI って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
プログラマーを惑わせる3種類の委譲(委譲・Delegation/転送・Forwarding/.NET Delegates) - Qiita
デバッグは「うまく動かないピタゴラ装置の原因調査」だと考えてみよう - Qiita
ロジバンでPrologプログラミングしてみた! - Qiita
Windows環境でのStackのアンインストール - Qiita
TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
再帰的多相バリアントそぞろ歩き - Qiita
形式言語理論における3つの『密』概念 - Qiita
TypeScriptの型レベル連結リスト活用術:型を変えられるコンテナを作る - Qiita
Deno触ってみた - Qiita
Denoの登場でNode.jsの時代は終わるのか? - Qiita
Linuxカーネルにおけるstrn系関数の挙動のまとめ - Qiita

Wikipedia

論理

述語論理 - Wikipedia
様相論理 - Wikipedia
古典論理 - Wikipedia
非古典論理 - Wikipedia
様相論理 - Wikipedia
時相論理 - Wikipedia
計算木論理 - Wikipedia
線形時相論理 - Wikipedia
義務論理 - Wikipedia

宣言型プログラミング - Wikipedia
制約プログラミング - Wikipedia
項書き換え - Wikipedia
第五世代コンピュータ - Wikipedia
Guarded Horn Clauses - Wikipedia
KL1 - Wikipedia
Concurrent Prolog - Wikipedia
並行論理プログラミング - Wikipedia
論理プログラミング - Wikipedia
量化 - Wikipedia
存在記号 - Wikipedia
全称記号 - Wikipedia
カリー=ハワード同型対応 - Wikipedia
ボトム型 - Wikipedia
垂直記号 - Wikipedia
Haskell/Denotational semantics - Wikibooks
自明性 (数学) - Wikipedia
プロセス計算 - Wikipedia
アクターモデル - Wikipedia
セル・オートマトン - Wikipedia
コラッツの問題 - Wikipedia
決定問題 - Wikipedia
ゲーデルの完全性定理 - Wikipedia
コンパクト性定理 - Wikipedia
コンビネータ論理 - Wikipedia
クワイン (プログラミング) - Wikipedia
値 (情報工学) - Wikipedia

Twitter

その他

histric-1

ICHIRO SATOHさんはTwitterを使っています 「pi-calculus自体は同期通信ですが、メッセージをプロセスでモデル化すると非同期メッセージも書けます。ただpi-calculus自体は副作用あります。基本的に名前渡し通信というのはポインタと同じなので。@ashigeru 同期やメッセージング関係を直感的に書けると言うのは…」 / Twitter
ぬるぽへさんはTwitterを使っています 「障害って単体のソフトウェアのバグだけじゃなくて、むしろ全体のシステムのアーキテクチャの分散設計とかの負荷許容範囲越えで起きることも多いわけだけど、そこの部分をがんばって形式手法なり証明なりで保証する手法ってコストを度外視したとしても何かあるんだろうか」 / Twitter
ぬるぽへさんはTwitterを使っています 「単体ソフトウェアのバグは、お金が無限にあれば仕様を決めて全部coqで書けばまぁ理論上撲滅できそうだが、全体のシステムのアーキテクチャってなんかお金が無限にあっても無理そう」 / Twitter
Masaki HaraさんはTwitterを使っています 「システムの正しさを還元主義的な部分と量的な部分に分けるという見方は重要そう。たとえばループなら不変条件とループ変量の2つの道具に分けられる。量的な問題として他にわかりやすいのはメモリリソース(スタックを使い切らないこと、ヒープを使い切らないこと)」 / Twitter
Masaki HaraさんはTwitterを使っています 「前者は余帰納的な証明、後者は帰納的な証明と対応してるとか考えられそう。」 / Twitter
ぬるぽへさんはTwitterを使っています 「量的な問題に関する手法何も知らねえ、素朴に空間計算量で抑えて保証する以外はどんな手法があるんだ」 / Twitter
ぬるぽへさんはTwitterを使っています 「そもそも定数も良くわからいしいい感じにリソースを見積もれる形式手法あるのかな」 / Twitter
島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
重城良国さんはTwitterを使っています 「たとえばimmutableな話で、配列の一部を変更するような場合、もとの配列がGCされるような状況であれば、安全に「破壊的な変更」に置き換えることができるはずだし、それができればパフォーマンスが大きく向上すると思うのだけど、GHCとかでそういう最適化はあるのかな。あるいは技術的な困難があるか。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@YoshikuniJujo 線形型はまさにそれを確実にやるための機能ですよ。 「元の配列」を必ず一度しか使わない、という制限を加えることで実現しています。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「setq を実装したので不動点コンビネータを使わなくても再帰が書けるようになった。 https://t.co/etuQiP3pD2」 / Twitter
29さんはTwitterを使っています 「Promiseについて、端的な解説をみつけた。 https://t.co/jwm29dvU5R https://t.co/byS58dc6GE」 / Twitter
Promiseを使う - JavaScript | MDN
Kota Mizushima (on a diet)さんはTwitterを使っています 「未だに、形式論理での証明が苦手だけど、(カリー=ハワード同型対応的に)型付きラムダ計算を使った「証明」だったら、多少はかけるのはなんでだろうと思う。日常の「論理」との混同が起きにくいので、すんなり頭に入ってくるんだろうか。」 / Twitter
yutakang_jpさんはTwitterを使っています 「帰納法の自動化についての論文をTACAS2021へ提出しました。原稿はarXivで入手可能です。大雑把に説明すると、FMCAD2020で発表したソフトウェアと比べ、精度を90%向上させつつ、しかも計算に必要な時間が62%短縮できました。https://t.co/VMwi96gngJ https://t.co/IRvqUGIXME」 / Twitter
[2009.09215] Faster Smarter Induction in Isabelle/HOL
nemさんはTwitterを使っています 「数学書読んでてCoqで形式化したいときに集合論を自分で形式化していないと不便なので今日から夜は松坂集合位相を形式化をしていきたい。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「最近の言語は何らかの形で静的な型を持つのが当たり前になってきているし[要出典]、これからは「動的な配列・行列のサイズを型で管理できる」みたいなのがセールスポイントになる(ほんまか)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「真面目に依存型をやると大変だけど、サイズ不一致を全部コンパイル時に検出するのは諦めて「型レベル自然数の等価判定は実行時に行う」みたいないい感じに手を抜ける落としどころがあったりしないかな https://t.co/DVPa7XevGo」 / Twitter
ドッグさんはTwitterを使っています 「Swift の並行性周りのロードマップが出てる.2段階で,まずは async/await や内部でキューを持って状態管理する actor class の導入.次にデータに特定の actor しかアクセスできないようにする actor isolation | 'Swift Concurrency Roadmap' https://t.co/C8cCzi5F5h」 / Twitter
Swift Concurrency Roadmap - Evolution / Discussion - Swift Forums
Ryoma Sin'yaさんはTwitterを使っています 「文脈自由言語、こういうふう(→を⊃)に書くと完全に代数やってる感じ. https://t.co/teGhe6QxrK」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ほんと,こんな単純なメカニズムで文脈自由文法は定式化されているのに普遍性が決定不能なのヤバいよな.」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「存在量型が欲しくなった時点で、あるいはもっと遡ってそもそも型クラスにしたくなった時点でrecord of functionで大概いいんじゃないかと考えるべきだと思うんだけど、確信を持って説得できない #haskell」 / Twitter

histric-2

ふみ(𓆑𓅱 𓅓𓏭𓇌𓅱𓄿𓂋)さんはTwitterを使っています 「コマンドラインオプションの定義をYAML形式で読み込んで与えられた引数をパースし、シェルスクリプト向けにevalできる形で出力する、単体で動作するclapのラッパーを作った(要するに超豪華なgetopts) https://t.co/POoZ8bP1UP #Rust https://t.co/Odg4tW2hRd」 / Twitter
fumieval/urgeopts: getopts (shell) replacement
PG_MANA@帰省中さんはTwitterを使っています 「goto failより、Zenのdefer/errdefer の方がわかりやすくて良い(Cにもほしい)」 / Twitter
zen defer - Google 検索
ドキュネオさんはTwitterを使っています 「Go言語のスライス、使う側としてはめちゃくちゃ便利だし、実は裏側のコンパイラ/ランタイム実装もわりと簡単なので(2-3日で作れる)、これぞイノベーションという感じがする。」 / Twitter
go スライス - Google 検索
7594591200220899443さんはTwitterを使っています 「Rubyではまさにその処理の名前が決まらずに4年くらいも名前で揉めた結果ごくごく最近になってtallyという名前で採用者された https://t.co/i8PC7V13xl」 / Twitter
chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「意外と名前が付いているテクニックもあって、「重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える」みたいなのって、名前がついてるはずなんだよね。自分も思い出せないし言っても多分伝わらないけど。」 / Twitter
Feature #11076: Enumerable method count_by - Ruby master - Ruby Issue Tracking System
Shiro KawaiさんはTwitterを使っています 「Scheme (R7RS-large) だとbagですね。自明でないかもしれませんが、内部的にデータ⇒個数で持ってます。特定のデータの個数を得るのはbag-element-count https://t.co/RGSFeDKmUp https://t.co/pozyzYhz12」 / Twitter
Gauche ユーザリファレンス: R7RS large
尾崎隆大さんはTwitterを使っています 「% Prolog だとここまで。 '重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える'(_重複のあるデータ列,_データ名_個数ならび) :- findall([_データ名,_個数],( bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数)),_データ名_個数ならび). https://t.co/BLPYNBBU2b」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性に解を得るので構わなければ、 '重複のあるデータ列が与えられた時に、データ名:個数のペアを得る'(_重複のあるデータ列,_データ名,_個数) :- bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数). 'これだとbagofが表に出てきます。'.」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援ツール Isabelle で多重集合(multiset, bag)を表現するときは、要素から自然数(入っている個数)への関数を使ってる。関数の update f(a:=e) で追加・削除等の操作が表現できる。 f(a:=e)(a) = e f(a:=e)(x) = f(x) ... x≠a 空の多重集合は λx. 0」 / Twitter
Keigo ImaiさんはTwitterを使っています 「ピボットテーブル… https://t.co/ZWEeJs2xkX」 / Twitter
高卒工員プログラマーさんはTwitterを使っています 「数学の弊害は数式の記述法と10進数かな もし数式が16進数逆ポーランド記述だったら数式=操作だからプログラム言語の制御構造と数式の違和感がなくなったという妄想。」 / Twitter
FadisさんはTwitterを使っています 「linuxカーネル、コードの1行を80文字以内に収めるコーディング規約を「強く推奨」から「推奨」に変更。1行80文字固定のターミナルを使っている開発者はもはや殆ど居らず、80文字に収めるために無理に改行する事でgrepabilityが低下する事の方が問題になっているとの判断から https://t.co/Y30xao4YoE」 / Twitter
The Linux Kernel Deprecates The 80 Character Line Coding Style - Phoronix
α改さんはTwitterを使っています 「setjmp/longjmpでユーザーコンテキストを切り替えるのうまく行かなかったけど、ucontext_tと{get,make,swap}contextをつかったらうまいこと実現できた。 https://t.co/LFy8OTWfGV」 / Twitter
context switching using ucontext_t and context family functions
ぽんこつさんはTwitterを使っています 「再帰が問題なのは読みづらいではなく末尾最適化されなかったときに、意図せずStackOverflowする可能性がある方で、そこでScalaのtailrecでコンパイラに末尾最適化を保証させる手法が(単なるScalaのステマ」 / Twitter
uint256_tさんはTwitterを使っています 「N(符号付)がn bitで表現できるかってビット演算で確認できるんでしょうか」 / Twitter
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「@uint256_t Nがすでにmビット整数として表現できている場合は、左にm-nビットシフトしてから右に同じ数だけ算術シフトしたものが元の数と一致するか確認する、でどうですかね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二重開放・開放済み領域の利用・開放漏れは防げそう。 オーバーフロー系は無理かな。 ポインタの代わりに「ポインタ+確保サイズ」をポインタ代わりに扱うCライブラリもあったっけ…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近の言語は、初期化時に開放コードを紐づけられて、早期returnしやすくなった。 (あと複数returnに「構造化違反」と言う人も居なくなった) 昔は複数リソース確保時は、goto END(ERR): みたいなのを作って開放処理を担わせる、とかよくあった。 (今もC言語とかでは良くある?)」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「C++から半年ぐらい離れてErlangをやっている。いつ戻ってこれるかな。とりあえずC++にはネイティブtupleリテラルとパターンマッチがほしい。」 / Twitter

histric-3

phenanさんはTwitterを使っています 「構文解析で印象深いのは * Adaptive LL(*): 先読みテーブルを実行時に作ればテーブルサイズが発散しないという神の発想。目から鱗だった。 * Valiant parsing: CYK parsing って行列積の冪乗だよねから始まり、最終的には行列積の計算量まで落としてしまう変態アルゴリズム。騙された気持ちになる」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「早期リターンしやすい言語(=golangのdefer的な機能がある)で、一括リソース解放の場面なら、早期リターンの方が好ましいですね。 (C++だと scope_exit搭載まではキツいかな…解放のためだけにクラス作成はシンドイ) https://t.co/0pM9VdrHe5」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「Rustは良い書籍がすでにあるけど、それらはネイティブ英語話者に対して書かれてるので、それ以外の人には難しい。今では多くの国の人たちがRustを勉強しているので、これはそういう人達に向けた単純な英語での入門書 / “GitHub - Dhghomon/easy_rust: Rust explained using…” https://t.co/JOj4osnqzr」 / Twitter
Dhghomon/easy_rust: Rust explained using easy English
mr-csceさんはTwitterを使っています 「偶にPrivateの関数をテストしたい時があるけど(テストがないコードのリファクタリング中に、ある関数の振る舞いを変えていないか確認したいなど)、Clojureなら#'付けるだけで良いのでこれもちょうどいい感じ。」 / Twitter
Ryuji FuchikamiさんはTwitterを使っています 「M並列でNサイクル計算するとMxNの計算ができる。 ある問題を解くとき、Mが固定でNが減るようにアルゴリズム(計算量)を改善するのが普通のプログラミング。 Nが固定されていてMが減るようにアルゴリズムを改善するのがリアルタイムプログラミング。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Ryuz88 Mをハードウェアで可能な最大値にするようにして,Nを減らすようにするのが並列プログラミング さらにNを減らすにあたってボトルネックになっているMを解消するようにするのが,ハードウェアによるアクセラレーション支援」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「フォーマットでなく、ソフトウェア設計でこんな話を思い出した。 B.メイヤー先生曰く、「データ構造こそ最も不変な要素(意訳:拡張はあるが既存実装が全無駄になる変更は滅多にない)。だからオブジェクト指向は、データ構造中心のパラダイム(手続きと並置ではない)」」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「元ネタは C vs C++なコンテキストだと思うけど、並列処理に関しては50歩100歩では感(笑) (最近のSTLにstd::threadやatomicが追加されたとはいえ、、、)」 / Twitter
すぱすぱさんはTwitterを使っています 「第一段階できた感 #mercari_intern https://t.co/wXvBj9jOMZ」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 いや、どちらもDynabook系ではあるけど、MVCの原発明者はSmalltalk-80の実装は「チョット違う」とのことです。 https://t.co/kUDzJ7zABV」 / Twitter
Trygve/MVC
わいさわ 澤 良弘さんはTwitterを使っています 「Pythonいいなと思う点は、標準で集合(set)を実装していることかなって最近思う。差集合 {1,2,3} - {3,4} =&gt; {1,2} が数学で使うリテラルと演算子だけで定義されているだけで素晴らしい。そして、適切に使うことで条件式や繰り返しが減るし読みやすい。」 / Twitter
AzubnerさんはTwitterを使っています: 「母からのLINE。 卒論の研究でナンプレを扱っていた私が言えることはこれしかない。 「空いてるマスに変数x₁, x₂,...を対応させて、変数が満たすべき条件から連立方程式を構成し、各方程式の右辺を0としたときの左辺の多項式が生成するイデアルのグレブナー基底を求めればできるよ!」 https://t.co/5ARtN8qoXX」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++テンプレートだと、新たな型と関数の組み合わせ時に、初めてコンパイルエラーになったりする…テンプレートの網羅的な事前テストは難しそう。」 / Twitter
yohさんはTwitterを使っています 「並列データ構造は本質的にテストできないと思うので 実装可能なテストだけ実施なのかなぁ 真面目にやるなら形式的検証を頑張るか あとはもう人力レビューなんじゃないかなー」 / Twitter
白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「インターフェイスは継承して良い、データ構造は継承してはいけない、データ構造の継承に相当する処理はデリファレンスで実装しても良い なんだRustじゃん」 / Twitter
yoh2さんはTwitterを使っています 「上手い委譲の仕組みがあればホントに継承要らなくなってくるんだよなぁ (Lombok の @ Delegate を四苦八苦しつつ使いながら」 / Twitter
retrageさんはTwitterを使っています 「Rust、Cほどではないにしろstructとかがどう配置されるか想像しやすいし、値の参照とコピーが明示的なのでどこでコピーがされるかがわかるのでやっぱりシステムプログラミングに向いている」 / Twitter

SODA NoriyukiさんはTwitterを使っています 「.@EzoeRyou 氏がJulia民の逆鱗に触れておるgkbr (Juliaは数学・数値計算方面が大ユーザなので添え字の下限が 0 じゃなくて 1 の方が自然」 / Twitter
ラジオ2さんはTwitterを使っています 「任意の密着空間への写像は自動的に連続写像であり、連続写像は当然写像なので、忘却(位相空間→集合)と密着位相(集合→位相空間)は互いにそれぞれ左随伴と右随伴 https://t.co/a98TeSYaxL」 / Twitter
κeenさんはTwitterを使っています 「パラドックスという言葉、理論的には正しいんだけど直感に反するものにも、理論的に正しくないんだけどマズいところをわかりにくくして上手くペテンしてるやつにも、直感に反するけど証明も反証もされてない未解決問題にも使われててカオス」 / Twitter
MathWills運営事務局さんはTwitterを使っています 「位相空間って、学習したての頃は、こうやってお絵描きしながら学ぶもんなんだと思います。 そして、お絵描きして視覚的に理解できるというのが、現代数学を、集合論を基礎に組み立てる事の1つの大きな利点なんだと思います。 https://t.co/XRGNwGVkZE」 / Twitter
3元集合における29の位相 - MathWills
κeenさんはTwitterを使っています 「SMLのbefore演算子はe1 before e2のように書いて、e1を計算したあとe2の処理をして、e1の結果を返すんだけどこれOCamlだと定義できないことに気付いた。SMLは引数の評価順序保証があるけどOCamlはないからダメだ。」 / Twitter
チェシャ猫さんはTwitterを使っています 「今ふと思い付いたんだけど、configuration language のモジュール分割は最小カット問題として定式化できるんじゃないだろうか?」 / Twitter
チェシャ猫さんはTwitterを使っています 「世の中で言われる「コンピュータサイエンス」って異様に実装寄りな気がする。」 / Twitter
akiraさんはTwitterを使っています 「ニューラルネットワーク(NN)は確率的にモデルのフィッティングを行うが、決定木系は決定論的にフィッティングを行う。画像のように0/1で表現できないものや自然言語のように曖昧で例外が多いものはNNが強いが、多くの事象はYes/Noで処理できるため決定木系が強い、と提議 https://t.co/P9c9odkGxA」 / Twitter
When and Why Tree-Based Models (Often) Outperform Neural Networks | by Andre Ye | Towards Data Science
suzakiさんのツイート: "Concurrency二つ目。プログラミング言語GoではShared Memoryではなく、Communication (GoRoutine, Channel)を基本とするが、Concurrency Bugが起きやすい。この状況は調査されておらず、Goが使われているDocker, Kubernetes, gRPCを調べて171個のConcurrency Bug(Misusing Chanelなど)を見つけた。"
suzakiさんのツイート: "GoのConcurrency Bug調査のHP https://t.co/k9epibXBTT"
system-pclub/go-concurrency-bugs: Collected Concurrency Bugs in Our ASPLOS Paper
yukiさんはTwitterを使っています 「すごい全部盛りだ😳 動画を見てみたけど、IOの有無を効果に基づいて制御して副作用のない関数のみ受け取れるよう工夫した言語になっていた。/Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ https://t.co/gtQSP39i6E」 / Twitter
Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
yukiさんはTwitterを使っています 「IOの制御が重要なのは、セキュアワールドにある機密情報を守るため、あるいはノーマルワールドへの不正アクセスから守りたいから。副作用を制御できると、ここを守ることができる。これを効果系を適用して解決している。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「その辺のプログラミング言語で無名関数/ラムダ抽象が「ラムダ式」と呼ばれるようになった経緯を調べようとしたときのログです https://t.co/Fflu2snbVy」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/VE8797qkKB」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「ラムダ式」問題、以前話題になった時に調べた感じでは「元ネタはScheme周辺で、Schemeの場合は無名関数の表記に "lambda" という文言を使うのでまだ正当性があった。後発の言語ではソースコード中に "lambda" が登場しないのに『ラムダ式』を名乗っているからダメ」という認識に至った」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptではFunctionExpressionに名前を与えられるので「無名関数」と呼ぶのはアレ」 / Twitter
κeenさんはTwitterを使っています 「「無名」オブジェクトをデバッグプリントすると名前が表示される話?」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/A2GeJ7CfzQ 抽象化はプログラム等価性。抽象化により実装が異なっていても等価になるので、その等価性が完全に保存(full abstraction)されない限り(されることは極めて稀)、チューリング同値な言語同士でも意味論は異なる。#いつもの我田引水だけど本当」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「あれ、「プログラミング言語はチューリング完全でも抽象化によって異なる意味論を持つので等価とは言えない」話をしたLL Futureのスライドがサイトごとなくなった?」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「なので「プログラミング言語はチューリング同値ならみんな等価」は(よくある)誤解。」 / Twitter
トデス子'\さんはTwitterを使っています 「TypeScriptの異様なときめきがある型システムがデファクトな選択肢として受け入れられている状況が直感に反するというのはある。ああいうことしてもユーザはついてくるという事実に勇気づけられる」 / Twitter
msyksphinz_devさんはTwitterを使っています 「除算が乗算に置き換わる話、LLVMを勉強したときに出てきた。b%12をllcが 0x2AAAAAABの乗算とシフト演算に置き換えたときは本当に頭が狂いそうになった。https://t.co/C0WeVzHRYS」 / Twitter
Arithmetic and logic instructions — Tutorial: Creating an LLVM Backend for the Cpu0 Architecture

users

@shinji_kono

2020-10

2020-10-26

Shinji KonoさんはTwitterを使っています 「田中先生の公理的集合論で学んだのに、あの頃は順序数定義可能集合の重要性に気がつかなかった。残念過ぎる話。自然演繹も学んでいたのに…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODは今でもあんまり納得してないけどさ。bounded ODとして扱ってるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「pairからordered pairを導出するのは煩雑なのだが、Agdaは割とそのまま形式化できる。当時は、その必然性が良くわかってなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部生の頃は数学をまったくわかってなかったと思うよ。そして、それは集合論の古典的な構成ではわからないのが当然だとも思う。推移集合モデルで理解したのもかなりあと。VでもUnionとか使うので怪しいんだよな。それは公理で保証されていると言われても。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ガロア理論の五次対称群の交換子群が三次対称群を含むってのもアルティンあるいは他の本でも、わりとさらっと書いてあってさ。でも実際にはそれなりの計算が必要。まぁ、手で計算しなかったのがあほだったが。ガロアも計算しまくってたはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論も登場する概念のレベル合わせがかなり大変。多分、証明しまくってるうちに頭にAgda的な回路ができる感じ。教科書見てても、そういう記号的な処理、特に、Unifucationが導入されてる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「合同則 x ≡ y → f x ≡ f y はSets以外では自明ではなくて、証明が必要とかはAgdaでないとわからない。これは選択公理にも関係してて、同値類が自明に取れるなら不要になる。なので、選択公理や同値類の構成に疑問を持ってると、そこで落ちてしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部の数学(数学科のって意味だが)でも落ちる要素はたくさんある。チコノフの定理、まだ、片付けてないし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数や機械学習にはそういう集合論的、証明論的な問題はない。なので、そっちからやるのが良いね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論的アプローチというよりは、直観主義論理で数学を構築していけば、選択公理や集合論は不要で、排中律や二重否定に気を付けて、非構成的な仮定を明示して議論するだけになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そうすると選択公理と集合論は廻り道に見える。もちろん、それは時代的に必要な廻り道だったわけだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「KunenにはODは極めて非構成的で得られるものがないと書いてある。田中先生の本ではODと順序数の準同型をゲーデル数を使って導入してるが、それは厳密にやる必要がある。まぁ、いろいろ面白い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも集合はUnionで上界を取ってこれるので、極めて非構成的。集合の選択には任意の方程式を使えるから… なのにODが非構成的と文句を言うのは面白い。シェーンフィールドもそうなんだけど、どうも、集合をかなり具体的な既に存在するモデルとして認識しているみたいなんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「物理学者も数学者も普段は実在論者としてある方が便利だからそうなる。」 / Twitter

2020-10-27

Shinji KonoさんはTwitterを使っています 「これはちょっとあるな。何人かこのタイプを見た気がする。自分でないものになろうとしてる。コミュニケーションやコネクションを持ってる人がなりやすい感じ。プログラミングは極めて内向的な仕事なので… QT プログラマーになろうとしている時点で向いていない https://t.co/GJFYXN7TuD」 / Twitter
文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|note
Shinji KonoさんはTwitterを使っています 「プログラミングは操作的意味論を理解する作業があるのだが、それがなんなのかがわかってない。なにがプログラミング言語やAPIを理解する時のゴールなのかがわからない。そうすると、それらは無限に異なるものを覚える賽の河原になってしまう。そういう人がPythonを覚えてもすぐ使えなくなるとかいう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語の操作的意味論がわかれば、大抵の言語は皮層的に違うだけなので、すぐにわかる。そういう人が初心者から、わからないと言われても「なんでわからないの?」ってことになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、いっぱしのプログラマでもHaskell/Prologをやってみれば、その「操作的意味論がわかってないと、さっぱりわからない」感覚はわかるかも。1週間、触ったくらいでは、まったくの謎でしかない。そんな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ところが、その手の言語を学んだばかりの人から手解きを受けると、これが信じられないくらい高速に習得できる。ほげほげnativeな感じ。そして、その人は他の人がわからないのが何故かさっぱりわからない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミングがまったくできない人に「まずなにをどういう手順でやるか日本語で書いてみて」といって、それをプログラミング言語に翻訳してみせる。ほとんどは関数に置き換えることになる。そうすると「あ、そういうことですか」ってことになる場合がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語は言語なのだが、それがわかってないわけね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskellの操作論的に意味論を聞いてみると、ある人はβ簡約とか言い出すかも。僕は計算のきっかけはcase文による分解から始まるとかいうだろう。それを知らないでプログラミングするのはかなり難しいのだが、雰囲気でなんとかなることもある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HaskellのMonadを自分で書いてみた時の「まったくわからない感じ」は久しぶりだったな。Haskellは表示できない項とかあるし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologは最初のネックはBacktrackとcutで、それから単一化による差分リストの嵐に突入する。無限に巨大なリストの一部だけをみてプログラミングやデバッグしていく感覚は手続き型とはかなり違う。Stream型なわけなのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologで、どこにバックトラックするか聞いてみて、最も最近のチョイスポイントと答えればわかってることになる。そして、 p :- q, !, r. で、r が失敗した時にqのチョイスポイントはどうなるというのに答えられれば。 めんどくさいから全部の選択肢に!を一つ付けるというのはプロっぽい。」 / Twitter

2020-10-30

Shinji KonoさんはTwitterを使っています 「(可算)無限個の集合のUnionは、実は集合論の公理にはない。クラス、つまり述語ではかける。なので、それが集合であるかどうか(=集合論の公理から構築できるかどうか)を調べる必要がある。例えば順序数全部のUnionは集合じゃない。それはVだから。ℵωまでなら集合になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「上限が集合で抑えられれば集合になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このクラスで書いて集合かどうか調べるってのは集合論の本では良くある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合でないクラスはProper Classとかいうのだが、最初に上がる例は順序数全体かな。ODとかLも全体は集合じゃない。その要素は集合。」 / Twitter
Shinji KonoさんはTwitterを使っています 「クラスと集合の区別はOD(順序数方程式)で考えるとわかりやすい。解に上限があれば集合、なければProper class。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってわけなので集合論の本に{x| ...}と書いてあっても集合とは限らない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「その部分にODを写像すると、ODはある順序数以下になるので集合になる。この時、外のODと中のODの二つがあるが、それはもちろん同型にできる。これが集合で作った集合論のモデルになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、非可算ちゃんとやってないので、その辺りで矛盾が出る可能性がほのかにあるな。可算順序数の中で非可算順序数を定義する的なことをするので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「順序数は公理的に定義して良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微妙に順序数を公理的に扱うのを避けてるんだが意味不明。ここに出てくる性質を公理にして、可算順序数を構成してみせるので十分だと思うんだけど。ただ、注意しないと非可算を作れなくなるかも知れない。 https://t.co/ZBxpWyRbUa」 / Twitter
順序数 - Wikipedia
Shinji KonoさんはTwitterを使っています 「順序数は直後順序数ってのは出てくるんだが、直後極限順序数ってのは出てこない。いや、そういくのあるだろとは思うけど。直後順序数を無限個含む順序数があれば、それ以下の順序数は順序数の公理(性質)を満たす。なのて順序数の部分で順序数に対応するものがある。無限なんだからおかしくない。」 / Twitter

2020-11

2020-11-02

Shinji KonoさんはTwitterを使っています 「型検査はメタレベルでやるべきというしごく当たり前のことが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「構文に型を入れるなってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「スローガンとしては良いかも」 / Twitter

2020-11-05

Shinji KonoさんはTwitterを使っています 「超速って、超実数な速度だよな」 / Twitter
Shinji KonoさんはTwitterを使っています 「超実数は無限小と無限大だけではなくて、普通の実数+無限小とかもある。なんと .99999... と 1 を区別できる。見かけが違うから違うと主張できる。なので、普段見てる速度と超速な可能性が。いや、見てる分には実数と変わらんのだが。」 / Twitter

2020-11-07

解答略さんはTwitterを使っています 「代数構造を習った時はハイハイそういう議論はやるべきですよねって思ったし、順序構造もまぁせやなって感じやったけど、位相構造は極めて奇異なものに感じられた。開集合を決めるだけで、近さとか連続性とか収束の概念がええ感じに定まるというのが、どうにも非直感的に思えた。今も怪しいと思っとる」 / Twitter
Shinji KonoさんはTwitterを使っています 「位相構造ねぇ。基本的には極限の概念の延長だけど… 今は圏論的な理解の方が普通?」 / Twitter
Kazunori ANDOさんはTwitterを使っています 「@shinji_kono 結晶として対称性を論じるなら空間群の話になる。X線結晶構造解析はそのまま3次元逆フーリエ変換なんで超格子構造なんかは衛星反射として見える。まぁ位相構造だわなw」 / Twitter
Shinji KonoさんはTwitterを使っています 「@ando_Tw 固体は量子力学的な扱いもあるからなぁ。フォノンとかバンドとか。」 / Twitter
Kazunori ANDOさんはTwitterを使っています 「@shinji_kono BE凝縮とか近藤効果とかもねw」 / Twitter
Shinji KonoさんはTwitterを使っています 「@ando_Tw 力学と数学で位相空間がぜんぜん違うのなんとかして欲しいです」 / Twitter
Shinji KonoさんはTwitterを使っています 「coinductionは全然勉強できなかった。構文的な問題だけだと思うんだが。Fresh Listには合うはずなんだが。」 / Twitter

2020-11-12

Shinji KonoさんはTwitterを使っています 「真偽にSetを使う方法、automaton はちょっと変くらいだったが、languageとNFAになって、level hellを食らってる。状態が Q → Set nなので levelが上がってしまうんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Bool でできるんだが、Bool 演算とその推論をいろいろ入れることになるのがあれ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ証明の意味がわからない。DFA/NFAのtrace書かないとだめだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「automaton の trace (じゃないよな、状態の履歴)は一発で書けたが、NFA側が自明じゃないな。(Q → Set) → List Q が必要なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「trace が自明じゃないのは気まづい。間違ってるかも。」 / Twitter

2020-11-13

Shinji KonoさんはTwitterを使っています 「昼間の証明はあれで良いってのが降ってきた。Automatonの有限性は (Q → Set) → Set という決定性。NFAを Automaton に変換した時 ((Q → Set)→ Set) → Set になるんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年は有限性をData.Finでやってたんだが、かなり煩雑。欲しいのはdecidabilityなので。で、→ Set を増やしても同じもので良いらしい。謎過ぎる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか良くわからん。まだ、NFAのtraceが書けない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、そうか。subset construction して DFA として trace を出すのは簡単なんだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに出力は出たが、しかも正しそうだが、これはなんなの。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり逆順だな」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そんなことはないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec を引数で持ち歩くってのが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで、できそうだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「正確にはDecじゃないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「NFAのtraceはあともう少しだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「恥ずかしいことに、subset construction してtraceするコードをNFAに書き直した。だって、合わないんだもの。subset construction という言い方は正しくなくて、状態集合のautomatonへの変換だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あとは二重リストに変換すれば良いのだが、それにはDecが必要。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec やっぱり、微妙に合わないな。割と良くある。」 / Twitter

2020-11-14

Shinji KonoさんはTwitterを使っています 「かなり、型が合ってきた。結果は簡単なんじゃないかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「だいぶ進んだ。しかし、まだ、どうすれば良いかわからん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「coinduction と違ってindictionは automaton のお尻から構築する感じになるのだが、traceは最初から辿る方が簡単。もっとも、まだ、Decが書けてない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一応、できた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Set にすると、状態をリストで表すには Dec を書かないとだめで、しかも、前の状態に依存するのでかなりしんどいことがわかった。 List (Q → Set) を見たいだけなのに。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、subset construction の正しさの証明が少し微妙。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このSetは実行時に指定してるので、それを工夫することができるかも。not empty な List Q とか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「継続で書くと良いのかも。」 / Twitter

2020-11-15

Shinji KonoさんはTwitterを使っています 「NFAは教科書では Automaton を言語/正規表現の結合に対応できないという理由で導入してる。NFAが結合に対して閉じることの証明は去年やったのだが、Data.Finでやったので、かなり煩雑。今回はどうなんだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Bool ではなく、Q → Set なので、Data.Boolのめんどくささは消えてる。しかし、それはDecに押し付けられてる。Data.Finの代わりに (qs : Q → Set) → (q : Q ) → Dec ( qs q ) を定義する必要がある。Qが有限なら qs q の真偽を決定する手続きがある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年の証明だと、Aだけ、AとB混在、Bだけみたいな状態にわけてた。作るのは簡単なんだが、それが結合になってるのを示すのがしんどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Listを二つに分割する組み合わせを全部生成するのはData.Fin抜きでできる。NFAからData.Finを落とせたので、簡単になる可能性はある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「教科書ではNFAの結合が言語の結合に対応するのは自明扱いなんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaのcoinduction はrecordの構成構文を使う。 p : AB → AB p ab = record { a = ? ; b = ? } の代わりに p : AB → AB a (p ab) = ? b (p ab) = ? という構文。」 / Twitter
Shinji KonoさんはTwitterを使っています 「induction だとデータ構造を分解して[]なったら終了。coinductionだと、[]から始めて、recordを大きくしていって、欲しい大きさで終わりな感じ。終了条件 Termination はAgdaの推論の外にあって、 あるデータ構造が常に小さくなってる なのだが、余帰納だと常に大きくなってるになるわけだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これをFresh Listに使うって話なんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いきなり二重否定しか証明できない的な直観論理丸出しの話をもってきて欲しくはなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、一応、正規言語の結合に閉じるのは、少し簡単になるっぽい。でも、本質は変わらんな。そこそこ長い。しかし、かなり、わからなくてびびりました。Set で受けるのは良し悪しなんだよな。そこに触れないので、何か作るしかない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「予想通り、Bool 代数関連の細かい推論は全部吹っ飛ばせた。Data.Finも出てこない。素晴らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それを少し簡単になったというのは、あれだが、その分、個別の証明する自明なのが増えてるので… まだ、十分に複雑だしな。」 / Twitter

2020-11-16

Shinji KonoさんはTwitterを使っています 「terminatingで書いて、あとからterminationを付け加える方法があれば。」 / Twitter
Shinji KonoさんはTwitterを使っています 「こんな議論があるな https://t.co/yT86zAan9R」 / Twitter
functional programming - Assisting Agda's termination checker - Stack Overflow
Shinji KonoさんはTwitterを使っています 「やっぱりcoinduction 使え的な」 / Twitter
Shinji KonoさんはTwitterを使っています 「正規表現のderivativeは書けたが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「dfaからregexは「状態を一つとって」みたいなことをするんだよな。微分の逆だから積分できないの? accept dfa q [] を調べて accept dfa q t ⇔ regex t → ∀ x → accept dfa q (x :: t) ⇔ (add1 regex) (x :: t) で、無限にやるんだが、add1が変更なくなったら終わりとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「状態を取り除いていく方式は遷移関数を毎回手直しだからなぁ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、結局、すべての状態についてやるので、おんなじようなものだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分は正規表現を状態とする automatonを作るが、積分はautomaton の状態に正規表現を付加していく感じか。 add1 : (Q → Rex) → (Q → Rex) かな。 sumup : (Q → Rex) → Q → Rex sumup f q with dec f (add1 f) ... | yes _ = f q ... | no _ = sumup (add1 f) q 停止が見えない。」 / Twitter

2020-11-17

Shinji KonoさんはTwitterを使っています 「DFAからRegex変換はあんなのではできないので、Regexで遷移するNFAにして状態減らす方式なのだろうな。手計算ではやったことがあるが… 状態をListにして減らしていくのが良さそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「遷移先の一つを融合するのだが、遷移関数を新しく作ることになる。 q1 → a → q2 → b → q3 を q1 → ab → q3 するみたいな。 q1 → a → q2 → b → q1 だと (ab)* が出てくる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「遷移条件がregexだから排他にはならないからNFAになる。でも状態は一つまで減らすので問題ない。遷移関数の書き換えのイメージがわかないが… (Q → Regex → Q →Set) → (Q → Regex → Q →Set) だよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「隣でないとだめ、関係ないものを一緒にしてはいけないってのがあるが… どうせつながってる部分しか意味はないから。 t : ( Q → Regex → Q → Set ) → Q → Regex → Q → Set t qs q1 ( a * ) q2 = qs q1 a q3 みたいに直接書き換えできるように見える。でも、q1は変数になるから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「(Q → Regex → Q → Set) というdataを作るのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そうではないな」 / Twitter

2020-11-18

Shinji KonoさんはTwitterを使っています 「え、それ? 資源管理と同期が見えないHaskellの並列処理は結構厳しい。 Haskellによる並列・並行プログラミング」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔書いたHaskell/MultiThreadなDB。今はどう書くんだろ。 https://t.co/xzca7Z4JeN」 / Twitter
Members/toma/Jungle-haskell: log
Shinji KonoさんはTwitterを使っています 「来週はNFA。」 / Twitter

2020-11-21

Shinji KonoさんはTwitterを使っています 「Boolで対角線論法やると面白いな。見つかった反例を加えて、もう一回とやりたくなるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「N→BoolはNのPower Setでℵ1なのだが、これと濃度が同じな順序数があると仮定する。Power Setは公理で存在が仮定されている。この二つの仮定には差がない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとなく、超実数のモデルをやりたい気分もある。選択公理仮定することになるので構成的ではないけど。Nat → Nat → Bool に順序を決定する公理を入れれば良いだけ。これは超自然数になるけど、小数点と考えれば0から1の超実数に同相なの? 集合的にはℵ2でしかないが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年は集合論散々やったので、だいぶわかった気になってる。ただ、標準的な方法とはだいぶずれてしまった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法やるには、双射をちゃんとしないとだめなんだな。散々やっただろと思うが… ℕ と ℕ → Bool の双射が矛盾することを示せば良いんでしょ。 ℕ → Set でもできるのかな。 これは集合の濃度の問題そのものだからな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ途中なんだよな。集合の濃度。 https://t.co/uoRLnPh2NA」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b cardinal.agda
Shinji KonoさんはTwitterを使っています 「AgdaのBijectionはPermutationでも使ってる。それとは別だが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの標準のをそのまま使って問題ないはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「⟨$⟩ˡ とか inverseˡ を使うんだよな。上添字のrとlは厳しい。いや、標準を使うべきだというのはあるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Permutation で散々やったので、もはや問題ないと思われる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「順序数は可算モデルを持つので無矛盾なのはわかる。極限順序数ももちろん。そのrecord、つまり公理系で定義される数学的構造物が ℕ → Bool にBijection を持つというのは要請だが、Power Setがあるという公理があれば許される。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それは自分のだと、順序数内のSupの存在になる。もちろん、それは構成的なものではない。けど、それは可算順序数に埋め込まれるわけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算順序数自体はℕ→Boolを含むことはできない。含むのは公理的に定義された順序数で、しかもそれは仮定だ。順序数は超限帰納法を公理として持っていて、それは可算順序数モデルで恒真。なので無矛盾。それはℕの整合性の証明に使って良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ℕ→BoolはAgdaでは構成されるものだけを表す。それは可算なので可算順序数に含まれる。構成されないものは二重否定で言明できる。」 / Twitter

2020-11-22

Shinji KonoさんはTwitterを使っています 「で、レーベルハイムスコーレムはAgdaで書けるの? というか、Agda自体がレーベルハイムスコーレムの定理そのものなんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「¬ (Bijection ℕ (ℕ → Bool))を示せば良いのだな。 Turing : (Σ : Set) → List Σ → Bool で Bijection ℕ (Turing Σ) はUTM Bijection ℕ (List Σ) は数え上げ で halt : Turing Σ → Bool が Turing Σ だとすると、停止問題になるはずだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「UTMはこれなんだが、入力が0/1なので、任意の入力文字を受け入れるようにしないと自分自身を食えない。 https://t.co/sEh1bELmRA」 / Twitter
Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/utm.agda
Shinji KonoさんはTwitterを使っています 「この辺りのTuring Machineの拡張は難しくはなくて、状態遷移を増やせば良いだけ。しかし、それを、証明する必要がある。この証明はHoare logicでやる必要がある。なので、継続形式にした方が良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけなので、Automaton は継続形式で書き直した方が良いんじゃないか説。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record Turing ( Q : Set ) ( Σ : Set ) : Set where field tδ : Q → Σ → Q × ( Write Σ ) × Move tend : Q → Bool なのだが、 tδ : {t : Set} → Q → Σ → ( Q × ( Write Σ ) × Move → t) → t みたいな感じで。」 / Twitter
Shinji KonoさんはTwitterを使っています 「fresh list を sized にするのは簡単だったが...」 / Twitter
Shinji KonoさんはTwitterを使っています 「あれ、別にsize いらないんじゃないの?」 / Twitter

2020-11-23

Shinji KonoさんはTwitterを使っています 「a &lt; a' を要求しているのに a' &lt; a が出てきて、そもそも a = a' ならしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「別な方をやって、問題点が別なことがわかった。取り尽くしたことを確認して⊥を返さないとダメなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「文系な人は、ちゃんとチェックすれば大丈夫みたいな信仰があるみたいなんだよな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限二分木で定義して、それを深さ優先で取り尽くすみたいな。間になかったらおかしい的な。」 / Twitter

2020-11-25

Shinji KonoさんはTwitterを使っています 「普通に作ってソートされて、間に割り込まれない。なので、全部入ってる。それを示したいだけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Natとのbijectionはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも問題なのはAnyの型変換なんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyなのにthereって書くと文句言ってくるのひどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「n で再帰ですか? すでにやったはずだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、0からnまで含んでることを示せば良いのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型の段階でhere/thereがわからないとだめってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Listを二段に展開してるな。それか。」 / Twitter

2020-11-26

Shinji KonoさんはTwitterを使っています 「まだ、証明が終わってない部分があるけど、計算部分はできたから良いかな。(良くない) できる自信がないが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、もっと劇的に簡単になるはず。CommutatorをFLで計算するとか。計算した結果をstaticに変換するとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyが簡単に示せないのも変なんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「1234をPermutationしたのを見てFLを生成とかできないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLだけで群を作ってそこで計算する方が速いが、計算表を生成して、計算させないことはできるのか?」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ疑問はあるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Fresh ListからAnyを作れない理由もよくわからん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLがCommの生成について閉じてるのを示すのはFLが群を構成してることをしめせばすむはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、もう時間切れなのでわからないままでいいか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、Anyが示せてないので、割と残念なことになってるのがなぁ…」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと、AnyのListを持ち歩くなんてのが降ってきたが… Anyを返す関数なら、まぁ。 x f&lt;?y → Any x L みたいな感じか。だから、時間切れなんだって。」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLを順列として0123を置き換える関数のinjectionを示せば良いだけなんだ。それでFLから順列へのinjectionが一発ででる。しかし、簡単に示せるとは言ってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「しかも、それができてもAnyとは関係ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「五次はそこそこ時間かかった。五次が可解でないのをFLのListが不変から導出しても良い。良くわからないが可解でないという証明になる。不可解な証明だな。(ここ笑うところなので」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLからList N 割と簡単そうな気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、やってないとは考えにくいんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かにめんどうなみたいだな。」 / Twitter

2020-11-27

Shinji KonoさんはTwitterを使っています 「今までで一番まともな気がする。どうせ Any の型変換の問題はでるだろうが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一昨年のOS9は結構楽しかったが、今年のTL/1 Self Compiler は、盛り上がりに欠けるまま放置中。」 / Twitter
Shinji KonoさんはTwitterを使っています 「定義おかしいじゃんと直してみたら、元のが正しいことを確認して終わった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ g , h ] = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ h でしょ。 [ g , h ] [ i , j ] = g ⁻¹ ∙ (h ⁻¹ ∙ g ∙ h ∙ i ⁻¹ ∙ j ⁻¹ ∙ i) ∙ j = g ⁻¹ i ⁻(¹ j i h ⁻¹ g ⁻¹ ) h j = [ g , i ] [ j , h ] になるのか。でもそれでは足りないが…」 / Twitter

2020-11-28

Shinji KonoさんはTwitterを使っています 「[[a,b],[c,d]]は含まれてる。これは [b,a][d,c][a,b][c,d] のこと。これから前半を消すのは簡単だ。 [a,b][c,d]= [c,d][a,b][[a,b],[c,d]]ってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これでも足りんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[a,b][c,d]=[x,y]なx,yを見つけるのだが… 本見れば載ってるとは思う。対称群の場合をやれば良いけど、一般的に可能なのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ g , [h ,i]] = g ⁻¹ ∙ i ⁻¹ ∙ h ⁻¹ ∙ g ∙ h ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ h ⁻¹ ∙ g ∙ i ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ i か。交換子だからi ∙ i=i。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そういうことではないのか。欲しいのは [a,b][c,d]=e なので、[a,b]=[c,d]=eならそうなる。逆にその時に限るってのは必要なのか。いや、要らんのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってことは手直しが必要なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もしかして、単純に積を落とせば良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「交換子群は積が必要なんだが、交換子群が単位元になるのを示すには積は不要ってことね。なるほど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、Any の型の問題にぶちあたった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、リストを最後まで取り尽くさないと何が戻ってくるのか確定しないのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので見つけた後も最後までたどる必要がある」 / Twitter

2020-12

2020-12-02

Shinji KonoさんはTwitterを使っています 「TMはUniversalityがあんまり自明じゃないんだが、もっと自明なものってあるのかな。あ、非構成的なものはかんべん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「むしろCPUの方が自明だよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「LISP 1.5 もそれほど自明じゃない。SKIはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「これだな https://t.co/SecYyDYSJC」 / Twitter
不動点定理が結ぶ ラッセルの逆理とYコンビネータの関係 - Qiita
Shinji KonoさんはTwitterを使っています 「対角線論法、今回も少し挑戦したんだが、あんまりよろしくなく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「SKIだとSKI食ってSKI返す感じか。Y combinator でいいの? Agdaで即座に書けそうだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Y combinatorはAgdaでは型が合わない。合うと矛盾をくらうので。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Nat → SKI → Nat があるとY combinatorが構成できて矛盾みたいな感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「SKIは大雑把にSystem Fなので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、そもそもAgdaのUniversalityが使えるはずだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Nat → Set → Nat で良いってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、NFAのSetは諦めるべきだな。Bool の方がまし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Set で受けると、bool 代数のめんどくささは避けられるが、そのかわり、Dec の嵐が降ってくる。おそらく、bool 代数のめんどくささを避けつつ工夫するのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法はできた。でも、List BoolとNatの対応は割とめんどいのだった。上位に1を足したバイナリで良いのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「たしか、finite作ったな。あれはList Boolだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Vec Bool n だな。ゲロゲロに複雑だ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「List はexp 計算してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、そうか。足し算を定義して、それから作ってるんだな。勉強になるな。自分が昔書いたものだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「isoも足し算でやってしまうのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これをコピれば良い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
Shinji KonoさんはTwitterを使っています 「TMは数え上げができるのでNと一対一になるのだが、それは対角線論法には引っかからない。その中に、TMの白黒を全部識別できる奴がいると引っかかる。でも全部白とか黒なら引っかからない。Bijectionだと、その条件は要らないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法経由と自己参照経由と両方の証明があり、異なるのだが、対角線論法は自己参照から導出できる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltとutmからBijection示すの面倒そう…」 / Twitter
Shinji KonoさんはTwitterを使っています 「片方で良いかもしれん」 / Twitter
Shinji KonoさんはTwitterを使っています 「複雑なのは Fin からBoolへの関数を作る方だった。List Boolはそれほどでもない。」 / Twitter

2020-12-03

Shinji KonoさんはTwitterを使っています 「NFAのSetにいろいろ入れてって思うがうまくできない。やっぱり、継続かcoinductionなのだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Data.Fin は扱いがあれなので、Bijectionを使うのだが、∨とかBoolへの関数とかのを作るのが結構大変。まぁ、できてるので良いのだが。でも、Subset construction では使わない。UTMのはFinじゃない。安易に書いたらTerminationくらったが、なんとかならんのか、あれ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Manna先生の本にdeductionがあって、Terminationばっかり書いてあった。そういえば実家に置いてきた。まだ、残ってるかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Size型の引数を追加して、それが単調減少していれば、止まるとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、そうか。 TM : List Bool → Bool tm utm : TM encode : TM → List Bool で utm (encode tm ++ x ) ≡ tm x は言えるんだが、encode (utm x) ≡ x にはならない。しかし、 halt : TM ∧ List Bool → Bool を入れると、その違いが吸収されてしまってBijectionになるのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「というのをAgdaで、ちゃんと書こうという話」 / Twitter
Shinji KonoさんはTwitterを使っています 「x ─── + z x + y ってのを定義できるパーサってのが降ってきたが。(実在するらしい」 / Twitter

2020-12-04

Shinji KonoさんはTwitterを使っています 「あ、なんかFLinsertから始めるってのが降ってきたよ。」 / Twitter

2020-12-05

Shinji KonoさんはTwitterを使っています 「Coq はintros がかなり許せなくてな… まぁ、変数名考えなくて良いってのはあるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaはプログラミング言語なので良い。ホールも良いアイデアなんだが、いかんせん、それにあうUIがな。」 / Twitter

2020-12-06

Shinji KonoさんはTwitterを使っています 「Agda 、なんだこれ。 _430 != section of type」 / Twitter
Shinji KonoさんはTwitterを使っています 「なるほど。Any _ Q で there とかやる時には Q を cons に分解しないとだめっていうあれか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ということは、めどがついたってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか今のを片付けて、抽象化すると、もう一つも片付くらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Zipは内積みたいなものだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか、片付いたと思ったが、かなり微妙な感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「くそ、独立に書き出してみたが、やっぱり通らないじゃん。 Cannot instantiate the metavariable _491 to solution section since it contains the variable section which is not in scope of the metavariable when checking that the inferred type of an application」 / Twitter
Shinji KonoさんはTwitterを使っています 「何言ってるんだか、わからないんですけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ相談すると、internal parametricity だと言われるパターンだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ほぼ同じなんだが、通る時と通らない時がある。入力の型を明確にするとむしろ通らない。謎過ぎる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「workaround で良いんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとかなるのかな、これ。割と致命的なんですが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いったん関数はさむと通ることがある」 / Twitter
Shinji KonoさんはTwitterを使っています 「この差か。 anyc07 : (x b : FL n) → (L : FList n) → Any (x ≡_ ) L → Any (x ≡_ ) (FLinsert b L) anyc07 a b L any = insAny L any anyc06 : (x y : FL n) → ( z : FList n ) → Any (_≡ x) z → Any (_≡ x) (FLinsert y z) anyc06 x y z anyz = insAny z anyz」 / Twitter
Shinji KonoさんはTwitterを使っています 「間違えてもいいのかと思ってたが、だめなのか。」 / Twitter

2020-12-07

Shinji KonoさんはTwitterを使っています 「57箇所以上なおしたところで力尽きてる。x ≡_ と書くのが正しいらしい。λ y → x ≡ y の意味。」 / Twitter
Shinji KonoさんはTwitterを使っています 「他に _≡_ x と ≡_ x の書き方があって、適当に書いてたので混在してた。一緒だろと思ったのが間違いだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「問題なく通るやん...」 / Twitter
Shinji KonoさんはTwitterを使っています 「順調だが、ここどうやるんだったかな。ちゃんと処理したはずだが。」 / Twitter

2020-12-08

Shinji KonoさんはTwitterを使っています 「また、振り出しに戻るをやってるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、劇的に簡単になった。どうせ、そんなこったろうと思ってましたよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここまで、一直線なはずなのに何故廻り道した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「今日は進捗した気がする」 / Twitter
Shinji KonoさんはTwitterを使っています 「あと、もう少しでてきるはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、確かに A x B だとBの方が攻めとみえるな。加群でしょ。」 / Twitter

2020-12-09

Shinji KonoさんはTwitterを使っています 「三ヶ月もかかったが片付いた。ガロア理論、むしろ、正規拡大とかの方がAgdaでは楽かもね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この三ヶ月かかった話はオンラインのプロシンで話します。」 / Twitter

histric-1

Shinji KonoさんはTwitterを使っています 「_⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set m _⊆_ A B {x} = A ∋ x → B ∋ x なので ⊆ の方が直観主義論理的に扱いやすい。真部分集合にすると等しくないという条件を追加する必要がある。フィルターの定義も⊆を使う方が自然。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ホモロジーは学部のどっかで少しやった。が、集合論/位相空間論に自信のない頃だったから。数学科の同期に「どこで選択公理使ってるかわかる?」とか言われてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「学部の頃のいくつかの本にも選択公理は非構成的な概念だと言われていたのだが、その頃はまだわかってなかった。チコノフの定理の証明の難しさは乗り切れてなかったし。でも、まさか排中律のことだとは思わないじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理抜きでやるのがどういうことかもよくわかってなかった。排中律なしの数学がどう言うものかは、やってみないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、当時も大学の数学の厄介さは、量化記号のスコープがはっきりしてないことだとは思ってた。今の学生はそこをプログラミング言語として突破できるのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「整列定理から選択公理を導くのは排中律があればいけるのだが、使うのは一箇所じゃない。 ∀-imply-or : {A : Ordinal → Set n } {B : Set n } → ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B この微妙な命題に排中律がいる。避けられるかも。 https://t.co/khuE8t4kPf」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b LEMC.agda
Shinji KonoさんはTwitterを使っています 「OD baseだと、集合と順序数の対応は仮定してしまうので、選択公理から整列定理はやらない。排中律は選択公理から出るけど対応を使ってるので、それなしだと厳しい。選択公理から排中律抜きで整列定理が出るとは思えないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合の整列には∈と⊆の二種類の順序数が入る。片方にできると良いが… x と {x} の関係によるか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「∈と⊆の二種類の順序の調整は、なんかトライした記憶がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}がxの直後順序数に対応するってのを入れると⊇だけで良いらしい。こっちの方を公理にする方が良いかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}は (x,x) なので構文的な問題でしかないのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「data/datum だから axia/axiom みたいにならないの? axioms って書いちゃったりするけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}とxの対応からはPower xとxの対応は出ないのでなんか仮定する必要がある。それが連続体仮説。少なくとも何かで抑えられるとしないとPower x自体が集合にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Power ω は集合ではないでも良いんだが世間が許してくれない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで可算順序数がPower ωを含むっていうあほなことになるわけで… 可算順序数の可算性は中からは見えないので問題ないけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「pairを直後順序数にすると、そこに他のものが割り込めない。pairの上界と個々のpairの間には無限の隙間があるから、そこに順番に入ってしまうイメージだな。それは制限が強過ぎる気もするが問題ない気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとなく、malloc的なイメージを持ってしまうので、型が違うものの配置が入り混じる方が自然な気がする。まぁ、あんまり関係ない。絶対アドレスはわからないから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「V=Lや連続体仮説あるいは選択公理は、集合と順序数の対応、そして集合の要素に対応する順序数の上界に帰着されるようなので、あんまり制限を入れたくない。Filter抜きでもいけそうな気がするんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Automaton 普通にSetを返すように書いて行ったら、バッチリ行き詰まった。いや定義は書けるんだが、acceptを証明にいかないとダメなので厳しい。acceptがBoolを返すようにする方が簡単だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「TL/1 compiler はtranslator が思ったよりもめんどくさい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型整合はプログラムの正しさの一部でしかないのに、なんで偉そうにしてるの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラムでヤコビ行列というとベクトル可算システムってのがあって、ペトリネットとかに使われてたが… 実用的かどうかと言うと。でも、今の深層学習はそういうものかも知れないな。」 / Twitter

Shinji KonoさんはTwitterを使っています 「掛け算の対称性を示すのに、長方形を縦に足しても横に足していっても同じってのがあるのだが、それらは記号論理的には別物。それが同じ値になることを示すのは容易なのだが、それでは対称性を示したことにはならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「無無矛盾は、直観主義論理だと、無矛盾を構成的に証明できたら矛盾な意味になる。それはなんと証明可能なんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可換環って、そんなにやることあったっけ。有限ならいろいろあるだろうけど。めんどくさいのは非可換で、さらに不定計量とか。いや、代数学、この前復習した時にも、いろいろあるなぁとは思った。」 / Twitter
shinji_kono 選択公理 - Twitter検索 / Twitter
Shinji KonoさんはTwitterを使っています 「cut eliminationは一通り追ったけど、証明は割と厄介。停止性がね。僕は重要性はいまだにピンと来てなくて。重要だという人は多いんだが。 理由はAgdaでトラブルのは推論よりも 単一化 だから。述語論理の問題はそっち。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カット除去は完全性の証明の一つなので、完全性証明したなら不要な気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「不完全性定理はいまだにうまくて定式化できてない。UTMは頑張ればなんとかなりそうな気もするが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹は必須だし理解しやすい。 証明とは何か 証明されたものが何故正しいのか がはっきりわかる。記号ゲームとして。なので論理学では、それを重視するのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理とモデル論は、直観とかなりのずれがある。論理式の意味は あらゆる可能な変数と述語の意味の組合せ なので超巨大。そのうちのすべての公理が 正しいもの がモデルなのだが、さらに 意味付けと関係なく恒真な式 とかを受け入れるのは困難だと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「特に等式がな〜 等しいものを並べた無限個の式の集まりとか、なんとかならんの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理だと それは項の正規形が同じこと と主張できる。あるいは 勝手に定義した同値関係 だな。こっちの方が無限倍まし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「無限個の等式の話を聞いたのはμ代数からだが、その時に言われたのは 別に普通ですよ おいおいおいおい。その感覚、おかしいだろ。合同性は数学の基礎なのに、そこに無限をいきなり持ってくるのかよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ところが正規化が有限かつ唯一なことを示すのは割と厄介でしかも 停止性には選択公理が必要 避けられそうな気もするが… なので直観主義論理の等式もたいがいではある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理が証明可能な論理式を問題にするように、観測可能なものだけを問題にして、それ以外の仮定を排除するようなものが必要なのかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直接的に自己参照矛盾を示しても良い。対角線論法は間接的な自己参照に相当する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデルの構成可能集合Lは最小モデルなんだが、古典集合論での定義を見るとSAT使ってたりして、かなり複雑。ODも定義可能なのでHOD=Lとなりそうだが、そうでない場合がある。HODはODのSubsetなのだが自由度がある。一応、Lも書いたんだが、なんかズレてる感じもある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「思い出した。このgalois理論の証明、地獄のように時間がかかる。それをネタにしようと思ったのだった。」 / Twitter

@sinya8282

2020-11-04

Ryoma Sin'yaさんはTwitterを使っています 「数理科学実験の第5回目が終わった... 正規言語(=左線形方程式の解)から文脈自由言語に一般化し、さらに講義内課題でいくつかの文脈自由文法を書かせた. 学生さんは文脈自由文法の定義を知らない状態から講義を受けて課題に挑戦しているので簡単ではないけど何人かは解けてて良かった. https://t.co/mt9cDNsJKi」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「文脈自由文法はPyhtonでは「初期変数」と「書き換え規則の列」のタプルで定義できて、あとはこのフォーマットの文法を deriv 関数になげると各ステップの導出が見える感じ. https://t.co/TxOrKnOPIg」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「自分で与えられた文法から導出したり、文法を考えてみたりして文脈自由文法の感覚がわかってきたところで、先週の講義でガッツリやった「原始語」の全体の集合が文脈自由文法で書けるかどうか?問題が open である歴史を少しはなして終わり. 来週は無曖昧文脈自由文法から代数関数の話に入る.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「具体的には代数関数の定義をおさらいして、文法を可換化して関数方程式を作り、その解が(文法が無曖昧の場合は)言語の母関数となってることを説明していろいろありがたみを話して、SymPyで母関数を具体的に計算機で計算するってのをやる予定.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「自分が配布した文脈自由文法のプログラムの+アルファの部分(講義内では必要ない additional なコード)に素朴なバグが入ってたので恥ずかしいです...直します...」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに最後の写真にある 「"a"と"b"が現れる回数が等しい(例:"baabab")語」 は私の痛恨のミスです😱 数が数えられないオートマトン人間なんで.......」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「{ w ∈ {a,b}^* | |w|_a = |w|_b } は regular language ではないけど、regular language の収束列の収束先ではあるので簡単(?) (cf. https://t.co/ENDkbclaBw」 / Twitter
Asymptotic Approximation by Regular Languages - measure.pdf
Ryoma Sin'yaさんはTwitterを使っています 「文脈依存言語と一般の生成文法の記述する言語の最小不動点的な特徴づけ、難しいのかな(いずれ読むか)? Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages https://t.co/q4RcFR49Qj」 / Twitter
Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages - ScienceDirect

2020-11-10

Ryoma Sin'yaさんはTwitterを使っています 「今朝は数学基礎論序説の輪講で∀∃理論のチャン-ウォッシュ-スシュコの定理をやったんだけど、頑張って初等部分構造の列を作っていって最後に初頭鎖定理で決めるの痛快でしたね. わかりやすく説明してくれた学生さんに感謝. https://t.co/sPxpLPt8c3」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「間違いと真理: 解析学と集合論の場合」 https://t.co/HvMuKN3iYb」 / Twitter
間違いと真理: 解析学と集合論の場合 - susemi2018-x.pdf
Ryoma Sin'yaさんはTwitterを使っています 「正則環 1mm もわからん.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「諸事情あって3.3節(ホーン理論と約積)は私が担当することになったんだけど、フィルター大好きマンなのであっさり読めた(というか主定理の難しい方向の証明はomitされてたので技術的に楽な節だった)。」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「えっ正則環って色々あるの. https://t.co/SO1Q4cwED7」 / Twitter
ぴあのんさんはTwitterを使っています 「どの正則環だろう」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「基礎論序説に出てくる「正則環」は (可換ではない)環の公理 + ∀ x ∃ y xyx = x のモデルですね.」 / Twitter
ぴあのんさんはTwitterを使っています 「@sinya8282 https://t.co/KEQSQLzB2E https://t.co/2U9apmIcXQ」 / Twitter
Regular local ring - Wikipedia
Von Neumann regular ring - Wikipedia
Ryoma Sin'yaさんはTwitterを使っています 「@piano2683 なるほどー. 基礎論序説に出てきたのは後者でした. んで私が1mmもわからんといったのは前者でした(ややこしい笑). 普通に「正則環」でググったら前者が出てきたので...」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「正則という概念を比較不能な概念に変換する von Neumann とか言う接頭辞、強すぎん?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「可換環論と非可換環論で regular って言うとそれぞれ違う概念(regular/ von Neumann regular)を普通は思い浮かべるのかな.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「N上の超フィルターに思いを馳せることでRamseyの定理がスパッと出せるの気持ち良すぎるな?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「超フィルター  = なんか性質の良いデカいもんの集まり Ramseyの定理  = デカいもんの有限分割にはデカいもんがある なので両者には自明な深い関係がある(???)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「半群のStone-Cech完備化に思いを馳せることで(私の知る限りstate-of-the-artな) Hales-Jewettの定理までスパッと示せるらしくて完全に超filterジャンキーになりそう. 超filterキメたいぞ〜〜〜〜」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「10月から講義準備で忙しすぎて死んでるのでフィルターで組合せ論倒すやつ勉強できてない... https://t.co/99XcIua2V4」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「半群論で習った正則半群はまさにこの定義(∀x ∃y. xyx = x)だったなそう言えば. https://t.co/q9B55LGtAb」 / Twitter
Regular semigroup - Wikipedia
ぴあのんさんはTwitterを使っています 「モデル理論の文脈だと、「vN正則環の理論」とその∀-Horn partである「冪零元を持たない可換環の理論」は共通のモデル随伴を持つけど、一般にはTがモデル随伴を持ったとしてもT_{∀H}がモデル随伴を持つとは限らない、とかの面白い話がある←ここでlattice-ordered groupが出てきて無事死亡」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「モデル随伴」の時点で死亡しました😭(勉強します...)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「さらにこの y を「一意に存在する」に強めたのが inverse semigroup さんです. https://t.co/cbp8orgwb6 自由 inverse semigroup さんの語の問題は微妙に非自明(自由群や自由モノイドの語の問題は自明)なところがちょっとおもしろかった.」 / Twitter
Inverse semigroup - Wikipedia
Ryoma Sin'yaさんはTwitterを使っています 「Inverse semigroup だけで一冊の本が出てるので色々理論があるんでしょうね. https://t.co/Fakg3jwMb3」 / Twitter
Inverse Semigroups

2020-11-11

Ryoma Sin'yaさんはTwitterを使っています 「今日の数理科学実験では文法の曖昧性の話をして、ちょっと自然言語の例も出したりした. https://t.co/gqPfotcXT4」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「この "people people people see see see" という例は私は金沢先生の形式言語のオンラインテキストから知りました. (こういう読みにくい英文があるとは!! 非正規!!!) https://t.co/RsShu5kwTY」 / Twitter
lecture1.pdf
Ryoma Sin'yaさんはTwitterを使っています 「んで Chomsky--Schutzenberger の定理を通じて文法から代数関数の話に行って、最後はプログラミングパート. SymPyで簡単な代数計算. https://t.co/lw1RIgPjxs」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「来週は SymPy でもっといろいろな計算をやる予定. 「意外と計算機でできることって多いんだ」と感じてもらえると嬉しいっすね(準備ぃ...).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに "people people people see see see." を DeepL に食わせると壊れます. _人人人人人_ > People <  ̄Y^Y^Y^Y^Y^ ̄ https://t.co/R7i91xkQsB」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「講義ツイに「イイね」押してもらえると素直に嬉しいしなんか準備ももっと頑張れる気がする(ありがとうございます😭)」 / Twitter
す (終了)さんはTwitterを使っています 「一瞬何言ってるのかぜんぜんわかんなかったのだが、people see が people にかかるのか。」 / Twitter
す (終了)さんはTwitterを使っています 「訳としては適切じゃないけど「お前を見る人が見る人が見る人が見る」みたいな…… people see ってあんま自然な日本語にならん気がするのは私が英語と日本語ヘタだから?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに日本語でこういう形の文章(すなわち X^n Y^n で XとYは日本語)の例が作れないか少し考えてみたんだけど作れませんでしたね... 良い例があれば皆さん教えて下さいm(_ _)m」 / Twitter
Chomsky--Schutzenberger の定理 - Google 検索

2020-11-13

Ryoma Sin'yaさんはTwitterを使っています 「コーディング開始してまだ2時間ぐらいだと思うけど、すでにThompon構成をほぼ書き終わらせてGraphviz形式で書き出してオートマトンの可視化とかもできてる人もいる. 良いペース. #seccamp #seccamp_z3」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「才才才してるのでパズルっぽい基本定理であるところのGreenの定理が形式言語理論に役立つことを見抜いてしまったのだよな...  勉強した半群論が使えて気持ちいい〜〜〜 (cf. https://t.co/ENDkbclaBw https://t.co/PHaiUl1SkE」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「田中先生の本(p. 97)には(約積とホーン理論の対応の証明の直後に) 「では,直積を保存する文全体がどのようなものになるかというと,容易には記述できない.実際,それが計算不可能であるという結果がマコーバー(1960)によって得られている」 と書かれていました. https://t.co/YO5peY62Qj」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「マコーバーの論文に目を通してないので「計算不可能」の意味が1mmもわかってないんですが,有限の文の集合Tを入力として「Mod(T)が直積に閉じているかどうか」が決定不可能ってことを言ってるんですかね?よくわからん. (上の問題が決定不可能でも特徴づけが難しいってことの理由にはならない気も)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「こう,なんか,形式言語理論でもモデル理論でもそうなんですけど「演算XXXらで閉じている」っていう抽象的な性質が「YYYで定義できる」っていうより具体的な性質で書けるの気持ちよくない???」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「代数的言語理論とかのきれいな世界を知っちゃうと,有象無象にある閉包性の低い言語クラス(しかし応用上は重要)みたいなものをわりと軽視しちゃいガチな感じはたしかにある. とは言え変な言語クラスにも理論的に重要なものがあったりするのはママあるのでニュートラルな感性を持ちたい.」 / Twitter

Ryoma Sin'yaさんはTwitterを使っています 「正規表現の基本から教えて、オートマトンの作り方、バックトラックベースのマッチングの動作、バックトラックで実行が遅くなる例をみっちり紹介してReDoSの検出アルゴリズムを説明(これは藤浪さんが担当)して、と非常に濃い1日だった...  講義の構成上、多分初回が一番濃ゆい回な気がする.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ReDoSの原因となる正規表現の部分構造の検出、オートマトンの繊維関係に順序関係を入れた拡張を考えたり、オートマトンのリバースとか直積とか強連結成分分解とかある構造のサブグラフの探索とかやるのでフツーにめちゃめちゃ非自明&テクいんだよな. (論文になってるぐらいだからな)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「ReDoSの検出」というよりは正確には「ReDoSの対象になるような多項式・指数時間のマッチングがありえる正規表現」の検出だけど長いので省いた.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「強連結成分分解、Tarjanとか凝ったことしないで素朴に幅さ優先で到達可能関係を計算していく方針でやったら簡単に実装できるよね(それでもたかだか3乗オーダーとかじゃないか?).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「2乗オーダーも3乗オーダーもどっちも線形でない多項式、変わらへん変わらへん(炎上発言).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 せや DFS 2 回を 1 回にできるのが凝ったやつ、オーダーは変わらん」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany あ〜なるほど完全に理解.一回でできるってのが嬉しいのね. ってかグラフアルゴリズム界隈ぜんぜん知らんかったけど「線形」っていうと普通は辺の数で線形って意味なのか(点の数かと思ってた).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 「入力サイズ」に対して線形ですね グラフは頂点も辺も入力なので、正確には O(|V| + |E|) です」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany まぁそりゃそうか(職業上、|V| &lt; |E|なグラフを常に考えているのでO(|V|+|E|) = O(|V|)的に無意識に考えていた).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (何かがおかしい)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany |V|と|E|また間違ってしまった.」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 もちろん素朴に 2 点間の到達可能関係を全部ゼロから計算しても求まるけど、それはさすがに線形ではない」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany (最初のツイで私が言った「素朴な方法」はそっちだった笑)(素朴すぎた)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「適当なつぶやきするとプロから即座に指摘&指導してもらえる、それがツイッター(ありがたい).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 これ読んで勉強して https://t.co/DbbVZR5k4o」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「強連結成分分解のアルゴリズム、シンプルな魔法って感じがする https://t.co/W4ovNEW25T」 / Twitter
強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany サンキュー!高校数学やりなおすわ. (っていうか昔これ読んで勉強した記憶が笑)」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (さっきのツイートふぁぼられてたしな…)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany YYのツイート見て読んだかもそういえばw」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「みんな、どんどんオートマトン理論でテキトーなつぶやきしてくれよな!(優しく教えます)(まぁ全部観ることはできませんが)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「VもEも同じ1文字やし同じようなもん(???).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「は?????? 指数爆発DFA投げつけるぞ???? (優しく教えるとは)(Rabin–Scott並感やめろ) https://t.co/QoSKNvASR0」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「オートマトンとか決定性でも非決定性でも実質同じでしょ」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「今日のセキュキャンZ3(ReDoSの検出)の講義では、先週のかるいおさらいして「とりあえず正規表現からオートマトン作るコード書きましょうか」という感じ. JSの正規表現のパーサーはチューターの開発してるRere.jsを流用して、純粋にThompson構成を実装する感じ. https://t.co/nnupaquALy」 / Twitter
MakeNowJust/rerejs at 0c2ac95d0f13b7c5acfc75fc2e0db6239058eb07

@masahiro_sakai

2020-10-30

Masahiro SakaiさんはTwitterを使っています 「Compiling with Continuations, or without? Whatever. https://t.co/GzSpSU3YrZ CPSベースとdirect style + 明示的な合流点のIRの双方の利点を活かせるIRとして、FelleisenのC的な機構で継続へのアクセスを選択的に許しつつ、エスケープするかとリターンするかを型システムで扱うようなIRを提案。」 / Twitter
Compiling with continuations, or without? whatever. | Proceedings of the ACM on Programming Languages
Masahiro SakaiさんはTwitterを使っています 「恥ずかしながら "CFG-based IRs in SSA-form are isomorphic to CPS" って知らなかった(それはそう)。 エスケープすべきでない値がエスケープしないことの保証は、一級・二級の型付けを区別し、ラムダ抽象の本体に対して一級の型付けを要求するだけでよく、そんな簡単に出来るんだと思った。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「ちょうど ICFP 2016 での Sequent Core の話 https://t.co/yXzKPUhNWc や、その前の Haskell Day での SPJ の講演 "Into the Core Squeezing Haskell into nine constructors" の話を聞いたのを思い出して、ちょっと懐かしくなった。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Sequent Calculus as as …: SPJがHaskellDay2016で言及して気になっていた発表。ラムダ計算の代わりにシーケント計算に基づいた中間言語。 "Continuations as Join Points" #ICFP2016 #hsd2016」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai GHCプラグインとして実装 https://t.co/FgMyu8IXoo ; Sequent Core と Core は相互に変換可能。 case-of-case とかの最適化の際にjoin pointであることを保つように。 #ICFP2016」 / Twitter
lukemaurer/sequent-core: Alternative Core language for GHC plugins
Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai join point っぽい関数を見つけてjoin point化。 "Re-contification" ベンチマーク結果は大きく変わってるが、主な理由は(現在のCoreに合わせて調整されていた)inlinerの振舞の変化 #ICFP2016」 / Twitter

2020-11-18

Masahiro SakaiさんはTwitterを使っています 「Pure destination-passing style in Linear Haskell https://t.co/B2oVGyoHJo 書き込み先のバッファを渡して書いてもらうDPS(destination-passing style)に線形型を組み合わせると、純粋なコードのまま(fusionに依存せずに)低レベルな最適化までできて良いよという話。線形型いいなぁ。」 / Twitter
Tweag - Pure destination-passing style in Linear Haskell
Masahiro SakaiさんはTwitterを使っています 「DPSは以前に https://t.co/ZF07j2EC22 で紹介した関数型配列処理言語 F̃ で最適化を行うための中間表現とコード生成でも使われていたが、そういうのを表層言語で型安全に実現できる。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Efficient Differentiable Programming in a Functional Array-Processing Language https://t.co/FeSkAQjB7l ソースコード変換に基づく(スカラではなく)配列処理ベースのフォワードモード自動微分を備えた関数型DSLの提案。書き換え規則に基づく最適化で、リバースモードが得意なケースでも速い。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Compact normal forms + linear types = efficient network communication https://t.co/3fz2eNSLPF 「コンパクトにシリアライズされた表現をデシリアライズせずにそのまま操作する」ようなコードを安全に書くための線形型の応用で、これも面白い。」 / Twitter
Tweag - Compact normal forms + linear types = efficient network communication

@__pandaman64__

2020-11-20

井山梃子歴史館さんはTwitterを使っています 「今回はMLスタイルの関数適用をバックトラック無しで書くことに成功したのでパーサが完全にpredictiveかつ線型時間になりました」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Rust Analyzerのinlay hints(型推論結果が見えるやつ)のフォントが小さく見やすくなってキュートだね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「こんな感じで変数の型とか引数名が分かる.メソッドチェインの途中型も分かったりする https://t.co/lF9lGKTeXM」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「こういう表示があれば型推論の問題とかキーワード引数欲しい!というのも低減されるよね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/OFHgCq7GTy」 / Twitter
pratt/lib.rs at 80e9bd67295602da91489ec18ddd34815ba442fb · pandaman64/pratt
井山梃子歴史館さんはTwitterを使っています 「空白の扱いでLL(2)かな」 / Twitter

2020-11-26

井山梃子歴史館さんはTwitterを使っています 「パーサのイベントとしてalternateイベントを吐く」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「パーサコンビネータのalt, とりあえず全部動かしきってからエラーの度合いでどれ選ぶか選択すればいいな」 / Twitter

2020-12-06

井山梃子歴史館さんはTwitterを使っています 「JITパーサコンビネーター発明してしまったかもしれん」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「これ筑波で研究してるやつっぽいな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/YMJdWEyLaM これかもしれん」 / Twitter
ry08-4.pdf

井山梃子歴史館さんはTwitterを使っています 「「機能が正しいこと」のwitnessってどんなものなんだろう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「今日のIsabelle: definitionの等号がイコール2つ(==)を使うべき.イコール1つ(=)だとなぜか型がboolに推論されて物故割れる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「簡約がいつまで経っても終わらない…STLCは停止性が証明されてるはずでは…?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「定式化に対するロックインなる概念,初めて目にした」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Thus we are led to conclude that, although everything mathematical is formalisable, it is nevertheless impossible to formalise all of mathematics in a single formal system, a fact that intuitionism has asserted all along. とのこと」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「妄想が止まらなくて本業に支障をきたすので封印です https://t.co/c21ocd1wYR」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ぜひ作ってみてね ぼくがやるならまずRacketと継続触るとことからかなあ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「vtableとfat pointer, あとdirectory passingとかか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Dictionary」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「手書きパーサでML-style function application(f x)をパースするときの王道って何なのか気になる 今は式パースしたあともう一回式パースしてみて駄目だったらバックトラックしてる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「MinCamlは引数に来れる式の形を制限してた」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「webml/parser.rs at master · KeenS/webml https://t.co/KFl2JLAPed やっぱ手モナに回帰するのか…」 / Twitter
webml/parser.rs at master · KeenS/webml
井山梃子歴史館さんはTwitterを使っています 「Intrusive list(という名前)広く知られてないんだなあ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ところで正則性が成り立つ、って証明はどこにもないよね やっぱ論理学における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「論理体系を考えるの一種の実験科学だと思ってるからね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「いやーバックトラックが必要ならもうLRに逃げちゃおかな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Haskellのundefinedはある意味矛盾を導入してるけどIsabelle/HOLのundefinedは無矛盾なの面白いな」 / Twitter

@blackenedgold

κeenさんはTwitterを使っています 「Rustで型レベルペアノ数からの証明。そうか、const proof: Type1 = Option::&lt;Type2&gt;::None;で Type1 == Type2が表現できるんだ。 Proving that 1 + 1 = 2 in Rust https://t.co/orBRi4KywG」 / Twitter
Proving that 1 + 1 = 2 in Rust
κeenさんはTwitterを使っています 「ん、違う。 const proof: Option&lt;Type1&gt; = ...だ。」 / Twitter
κeenさんはTwitterを使っています 「継続的にRustコンパイラを高速化してそのレポートブログを書いてきたNicholas Nethercote氏がMozillaの体制変更でブログを書く時間がとれなくなるからと、いままでの総括を書いてる。 How to speed up the Rust compiler one last time – Nicholas Nethercote https://t.co/pbs3CzbyFT」 / Twitter
How to speed up the Rust compiler one last time – Nicholas Nethercote
κeenさんはTwitterを使っています 「どのツールを使ってどういう変更をしたかとかのコンパイラに限らない高速化一般の知見がまとまってるのですごく参考になる」 / Twitter
κeenさんはTwitterを使っています 「propertyテストの表明をそのままsymbolic executionエンジンに食わせて証明できるよねって話。こういうのやってる人いるんだ。symbolic executionエンジンはLLVMのSEエンジンのKLEE。 Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google https://t.co/BzQgfwNeYa」 / Twitter
Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google
κeenさんはTwitterを使っています 「&gt; 興味を持った方はぜひこの命題の逆「(¬a)∧(¬b)⟹¬(a∨b)(¬a)∧(¬b)⟹¬(a∨b)」を証明してみてください。 鬼かな? Idris で理解するカリー・ハワード対応 - Qiita https://t.co/BMDHYxuU4Z」 / Twitter
Idris で理解するカリー・ハワード対応 - Qiita
κeenさんはTwitterを使っています 「排中律を仮定すれば em: {a: Type} -&gt; Either a (a -&gt; Void) em = assert_unreachable」 / Twitter
κeenさんはTwitterを使っています 「証明できる deMorganAnd : {a, b: Type} -&gt; ((a, b) -&gt; Void) -&gt; Either (a -&gt; Void) (b -&gt; Void) deMorganAnd {a} {b} h = case (em {a = a}, em {a = b}) of (Left pa , Left pb) =&gt; void $ h (pa, pb) (Right pa, _) =&gt; Left pa (_ , Right pb) =&gt; Right pb」 / Twitter
κeenさんはTwitterを使っています 「ブログ書いてるときのκeen「依存型使うと誤りがないことを保証できるんですよ、便利でしょう」 コード書いてるときのκeen「なんでベクタを操作したいだけなのに証明書かなきゃいけないの!」」 / Twitter
κeenさんはTwitterを使っています 「あー、plus n (minus m n) = mって成り立たないのか(m &lt; nのときminus m n = 0で定義されているため)」 / Twitter
κeenさんはTwitterを使っています 「うおー、悩んだ証明めちゃくちゃ簡単だった。定理がないと思ったらby definitionだった。定義はちゃんと確認しましょうね。」 / Twitter
κeenさんはTwitterを使っています 「あ、ステートメント勘違いしてた。普通に直観主義で証明できわ。 deMorganOrRev : (Pair (a -&gt; Void) (b -&gt; Void)) -&gt; ((Either a b) -&gt; Void) deMorganOrRev (na, _) (Left a) = na a deMorganOrRev (_, nb) (Right b) = nb b」 / Twitter
κeenさんはTwitterを使っています 「すわIdrisのバグか?と思った挙動を色々調べていったらautoの指定が抜けてた。」 / Twitter
κeenさんはTwitterを使っています 「n + (m - n) は成り立つ。何故なら m - nはn &lt; mの証明を要求するから。」 / Twitter

2020-12-06

Slack | 質問 | プログラミング言語処理系が好きな人の集まり
κeenさんはTwitterを使っています 「自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2 https://t.co/m84SHZc44l」 / Twitter
自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2
κeenさんはTwitterを使っています 「xだけの分岐と再帰で証明できるね comm : (x, y : Nat) -&gt; x + y = y + x comm Z y = rewrite plusZeroRightNeutral y in Refl comm (S x) y = rewrite sym $ plusSuccRightSucc y x in rewrite comm x y in Refl」 / Twitter
κeenさんはTwitterを使っています 「標準ライブラリの証明も同じ方針。 https://t.co/Ro97lHgzkK」 / Twitter
Idris-dev/Nat.idr at master · idris-lang/Idris-dev

κeenさんはTwitterを使っています 「Idris面白機能:if then elseはオーバーロード可能 ifThenElse: Maybe a -&gt; (a -&gt; b) -&gt; b -&gt; b ifThenElse (Just a) f _ = f a ifThenElse Nothing _ b = b λΠ&gt; if Just 1 then (+1) else -1 2 : Integer λΠ&gt; if Nothing then (+1) else -1 -1 : Integer」 / Twitter

@hatsugai

2020-12-09

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの性質を表現する技術を高める必要があるとますます思う。コードを書いているときに頭の中で考えていることを内省すると、欲しいものを思い浮かべつつ、よく知っている部品(言語要素やライブラリ要素)をどう組み合わせればいいかを考えている。これを整理・分析すれば改善ポイントがわかる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「B どんな部品があるかを知ることは難しくないように思うけど、それがどんな性質を持っているかを十分に理解することを含めていうと結構難しいし、思ったほどはできていない。どこまで知っていればいいかというバランスもそれほど明らかじゃない。[意味論]」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「C は部品の種類と関係してる[型]。D は改めていわれることがあまりない印象だけど、思いつくことは努力できないので支援が必要[パターン]。E は認識が薄いし結果を知ることも難しい[合成]。でも実行すればかなりわかる。実行でわかることしか見ていないという話もある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「F 流れ上「組み合わせた結果」と書いたけれど、組み合わせることとは独立していて、コードと欲しいものを比較するという話[検証]。この比較の基準と実際に比較する技術も弱い[テスト・形式検証]。F は A と E に依存している。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A どんな性質をどう表現するか。様々なプログラムについてどんな性質が問題になるか。逆に表現の型からプログラムを整理・分類すると何が見えるか。大きなプログラムは多面的に整理する必要があるのでどう構成すればいいか。などなど十分わかっているとはいえないことがたくさんある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A-F の関係でいうと、欲しい性質の表現の種類に応じてどんな検証技術が使えるか、とか、どういう表現だと検証が難しいとか簡単とかいろいろ知りたいことがある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ことの本質だけを抽出したモデルを作って性質を証明するのはかっこいい。ある例を見てて、ここまで削れるのかと驚いた。モデルを作って性質が示せたら、次はどこまで抽象化(要素や条件を削る)できるかといつでも考えるといいかも。性質がかわったり消えたりするあたりに本質があるのだろうから。」 / Twitter

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書こうとしたときに初めて何を書こうとしていたのかを理解したり考えが足りていないことに気づいたりすることはよくある。あるいはコードを書き終えたあとでテストをしたら期待した結果にならず、その原因を探る過程で考えの誤りや考えていなかった点に気づくこともまたよくある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書く前に頭の中で考えていたときには十分見通しが立ってこれでいけると思っていた。でもそうじゃなかった。書いてわかる。表現にはそういう作用がある。でもコードは実行することを目的としているので、何が欲しいのかということを端的に表現する形式としていつでもベストというわけじゃない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「欲しいものが何であるかに集中して表現できる形式を持つと、コードよりも短い時間で表現を作ることができる。どのように結果を得るかという実行を考える部分を省略できるからだ。書いてわかるという作用は持っているので、誤りや考え不足の点を早い段階で気づけることになる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「さらに加えて、欲しいものについて2つの表現を作ることができると、それらを比較することで考えの正しさを確かめることができる。書いたコードを見直すのもよいけど、別々の考え方で書いたものが一致することを確認する方が確からしさの度合いが高い。いわゆる検算と同じだ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの表現が表す内容が一致することを確認する方法は2つある。1つはテストだ。コードの他にもう1つ表現を作るのはコストが高いと思うかもしれないが、テストとして再利用できるので無駄にはならない。もう1つが形式検証で数学を使って2つの表現を比較検証することができる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「この2つ目の表現はいわゆる仕様のことだ。表現形式として優れているものの1つは論理式だ。使えるようになるには練習が必要だけど、その分恩恵がある。熟練してくれば使いどころもわかってくるので、適切なバランスを選択できるようになる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「表現しようとして気づく、テストして気づくに加えて、形式検証(証明)をしていて気づくという第3の機会も手に入る。表現形式の違いが考え方の違いになるように、プログラムの動作を実行を追って考えるという考え方の他に、検証の理論を使って動作を考えるという新しい視野を手に入れられる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様というとコードの前に書くものだろうけど、検証という点に限ればもっと自由でよいという考え方もできる。時にコードは十分明解に欲しいものを表すことができる。一方で論理式が複雑になることもある。それでもかまわない。2つの異なる考え方で1つのものを表して比較できればいいのだから。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「思考は表現されてはじめて明確になるので表現形式は大事だ。時には表現形式の範囲でしか思考できないことがある。だから表現形式を複数持てば思考を広げられる可能性がある。自分はプログラマなのでプログラミング言語"で"考えがちだけど、論理式も援用するとよりよく対象を理解できることが多い。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「このセミナーでは仕様を論理式で表現する方法と、それをコードと数学的に比較して検証する方法を紹介する。ほんの入り口だけだけど、実際の例を示し、その先に広がるものがイメージできるように構成を工夫したつもり。よかったら参加してください。」 / Twitter

論理式とオートマトン

kinabaさんはTwitterを使っています 「十進数どうしの足し算は定数サイズの記憶領域でできる(普通に筆算すれば繰上りを覚えて1桁ずつ出すだけ)。大小比較とかも。けど掛算は無理。でもこれは、十進表記という表記法が悪いせいかもしれない。色んな実数を表現できて色々な演算も定数メモリな数の表記法を探そう、という分野がありまして」 / Twitter
病気の美少女さんはTwitterを使っています 「kinaba さんが POPL モードなので追いかけよう。その前にこれ、まずツイートの内容がわからなかったので精進せねば…いやプログラマじゃないんですがもう…」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/KdI78F9Bqw 1/2と√3を含む加算と乗算の半環の元(実数)の文字列表現で、加算と大小比較と任意の定数倍がオートマトンで表現可能なのを見つけるよという話。実際1/2と√3に限らずもうちょい色々できる。この辺の話どこまで既知なのかわからんな」 / Twitter
Ordered Semiautomatic Rings with Applications to Geometry | SpringerLink
kinabaさんはTwitterを使っています 「定数記憶領域で書ける=オートマトンで書けるということで、すると、そういう表記法がある数と演算に関する論理式はオートマトンに変換して、マッチする文字列がある⇔論理式が真みたいにできるので、論理式の静的検証ができて嬉しい。件の論文は√3と1/2が書けるので30°回転が登場する幾何の検証とか」 / Twitter

時相論理・余帰納的手法

余帰納的手法

テスト集合余帰納法を用いた振舞等式の検証
無限の入出力を行う関数型プログラムの K正規化の形式的検証
第34回大会受賞者の声
帰納法と余帰納法にまつわる伝承 - 秋津早苗の備忘録
双対的にみる余帰納法 1.イントロ - Qiita
余帰納法についての質問と回答 - Togetter
情報学広場:情報処理学会電子図書館
始代数 - Wikipedia
余論理式,再帰型,循環的言語 - Coformulas-recursive-type-circular-language.pdf
general13-1.pdf
<30392D91E6343589F191E589EF838F815B834E835683878362837695F18D902E706466> - 46_85.pdf
ws1_2.pdf
2019-5-4-4.pdf
cs2019hoshino.pdf
algPLJapaneseJan2014.pdf
4.pdf

井山梃子歴史館さんはTwitterを使っています 「時相論理」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「あと余帰納的手法がよく効きそう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「あと基本的にはsafety, liveness, fairnessでググればいいかな」 / Twitter
ogiwaraさんはTwitterを使っています 「@sanjutsu_yu 他二つはオートマトンだけで説明できるのかな?と思い…」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「@designpatterngf Deadlockは項書き換え系において、受理状態でない状態で書き換え規則が適用できなくなった…とかで定義できそう ほかはぼくがそもそもどんなものか知らないので何とも…」 / Twitter
ogiwaraさんはTwitterを使っています 「これはObstruct freeとLock freeとWait freeの区別にもつながる」 / Twitter
ogiwaraさんはTwitterを使っています 「DeadlockとLivelockとStarvationをどう形式的に定義できますか?って話になって」 / Twitter
ogiwaraさんはTwitterを使っています 「@__pandaman64__ どこかに参考になる文献ありますか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@designpatterngf わからん…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@designpatterngf https://t.co/SxWhz6oZh2 SEPでも読む…?入門に良いかは分からない」 / Twitter
Temporal Logic (Stanford Encyclopedia of Philosophy)

非同期など

chikoskiさんのツイート: "そうか。パターンマッチが、メソッドの代わりになるのか。"
κeenさんのツイート: "「エラー処理もエラートークンとして表われる」 #compiler_study"
INADA Naokiさんのツイート: "monoでasync/await多用したコードのプロファイル結果を見てるんだけど、やっぱりスタックトレースが ThreadPool や Task を起点とする短いものが大量にあって、アプリケーション視点のスタックトレースが見えにくくなってるので、 Go の方が分かりやすいなぁ。"
INADA Naokiさんのツイート: "見た目上は async / await でスッキリ書けると言っても、実際には細切れに分割された無名の関数がスレッドプールでコールバックされまくってるだけなので、デバッグしたりプロファイルしたりするときはコード上のわかりやすさが消える。 https://t.co/D0sy2dFOMV"
.NET/.NET Coreのスタックトレースを洗練
渋川よしきさんのツイート: "Go言語がシンプルに書けるのは、同期APIを非同期に扱ったり、ブロッキングをノンブロッキングにしたり、入力側と出力側のプロトコル変換が容易で、インピーダンスを合わせるのが超絶楽、というのがコアにある気がすごいしてる。"
なかのん&マジックさんのツイート: "ブラウザのエンジンの非同期化の何が難しいかって、入力との同期何だよな。例えば、APZは、wheelイベントのリスナがカーソルの下にある時は非同期描画を行わない。preventDefault()でキャンセルされるかもしれないから。 #もずでぶ"
chikoskiさんのツイート: "SPAの人たちって、リンクやURLについてどう思ってらっしゃるんだろう。とサイトをみていて思う。アプリ育ちの人たちにとっては、別タブで開くってありえない(もしくは、させたくない)操作なのかしら。"
chikoskiさんのツイート: "状態とリソースの区別が難しいとは思う。ゲームの途中状態みたいなものへはリンクできる必要はないと思う。Twitterのタイムラインのように、DBのエントリーを一覧表示し、操作で各エントリの詳細を表示する場合は、それぞれのエントリに対してリンクできるべきだと思う。前者は状態、後者はリソース。"
chikoskiさんのツイート: "node.jsの非同期処理について厳密な定義が読みたい人は、こちらをどうぞ https://t.co/lSL4m75rg6 #wejs"
Semantics of Asynchronous JavaScriptTechnical report, 2017-07-26
なかのん&マジックさんのツイート: "がんばって誰が問題のイベントの複製をやっているのか突き止めたかったけど、スタックトレースからは分からなかった。イベントキューに放り込まれてて、そのキューからの取り出し以降しか見えないから。"
κeenさんはTwitterを使っています 「面白かった。Actorモデルは表現力が足りないという仮説の下mutationなどを入れたモデルを開発。メッセージパッシングにsesstion type、mutationにseparation logicを使ってる。結果、actorにrefを渡してmutateするプログラムのreasoningができる。実装はIris。 https://t.co/Ul29XkcJj2」 / Twitter
κeenさんはTwitterを使っています 「ところで並行プログラムのモデル、おおまかにメッセージパッシングとメモリ共有の2種類があって、reasoningのしやすさからここのところはメッセージパッシングが優勢だったという認識なんだけど今回のモデルみたいにメッセージパッシングに部分的にメモリ共有を混ぜたやつはどこまで戦えるんだろう。」 / Twitter

トランザクション

ogiwaraさんはTwitterを使っています 「2PLは - 二つのトランザクションの競合についてのみ考えれば、3以上のトランザクションの競合について考えるのと同値 - 任意の述語を制約としておいても大丈夫 だったのに、Snapshot Isolationにした瞬間に一気に - n個のトランザクションのケースについて考慮の必要 - 述語のクラスに依存 になるね」 / Twitter
ogiwaraさんはTwitterを使っています 「やっぱりどう考えてもここら辺の理論が全然進んでなくて、どうにかしないと議論が進まないとかんじる」 / Twitter
ogiwaraさんはTwitterを使っています 「データの粒度、読み込み、書き込み、制約として述語のクラス、実装と理論との乖離…無限に考えることが多いですね」 / Twitter
ogiwaraさんはTwitterを使っています 「「計算」の次の段階の議論がまだまだ未開拓すぎる」 / Twitter
ogiwaraさんはTwitterを使っています 「並行処理に対する人間の直感があまりにも脆いから、やっぱ証明でガッチガチに固める必要があると確信できる」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf そのあたりの概観を掴むのに良い教科書があります。あとで共有しますね。」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 とても有難いです!」 / Twitter

抽象・具象

Shinji KonoさんはTwitterを使っています 「圏論も具体的と感じるようになってしまったので、IT技術が抽象概念ばかりってのはかなり疑問。」 / Twitter
Shinji KonoさんはTwitterを使っています 「抽象的ってのはコンパクト性とか無限と有限の区別が入るようなの。情報系だとFairnessとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Tree automaton は抽象的とは言わない気がする。automatonでも抽象的と言われるのは心外。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ω automatonは、まぁ、抽象的かな。まさか 変数があると抽象的 とか?」 / Twitter

集合論

Shinji KonoさんはTwitterを使っています 「ブール値に値を持つ論理の代わりにトポスに値を持つ集合論とか書いてたが、トポスはSubobject classifierで論理値を決めるので、結局はその問題になるはず。CCCで良いやんと思うと∨がある場合(biproduct)は命題論理以外は矛盾してしまう。なので工夫が必要らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CCCはGraphで力尽きてて、biproductの矛盾まではやってなかった。CCCと演繹定理はクライスリ圏を使うのだけやるべきだった。圏の圏はAgdaだとレベルの問題が出るってのを発見したのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Toposもやるべきだな。Osius先生の集合論とか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はチコノフもやってみたい。選択公理やりまくったし、チコノフは選択公理と同値なので面白いだろう。基底の存在が選択公理と同値とかもできそうではある。HODな集合論が手に入ったのでいろいろできる。と言っても、色々残ってるのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「残してるのは、濃度を定義する時のベルンシュタイン。ℵが冪集合で上がるやつ。Generic Filter。それから強制法だが… Toposの方が良さそう。聞き逃したの残念だったな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合とはなんですかという質問に対して今は割と明確に答えられる。無限のモデルとして自然数を二次元にした順序数が考えられる。この部分集合を集合だとしたい。でも、それでは集合が循環論法になってしまう。そこで順序数方程式(OD)を考える。その解のうち最大値を持つもの(HOD)を集合と定義する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODの要素は順序数で集合(HOD)ではないが、HODはゲーデル数的に順序数に対応すると考えられる。簡単のためにこれを仮定すると、集合を要素に持つ集合を定義できる。順序数がメモリで、そのアドレスが個々の集合。つまりCの*と&amp;のように集合と順序数の対応がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この時に集合HODは順序数としての順序を持つが、順序数と違って全順序にはならない。これは古典論理的には矛盾してるが直観主義論理ならば整合する。集合には∈からでる自明な順序があるが、それを対応する順序数の大小から導出することはできない。∈ならば順序数の順序はそれに従う必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つまりHODは自明な順序を持つので整列定理は成り立っているが、排中律がない状況では、それを選択公理(この場合は空でなければ要素が取れる)に対応させることはできないというわけ。排中律があれば選択公理=整列定理。」 / Twitter
Shinji KonoさんはTwitterを使っています 「実際に反例を構築するためには選択公理を否定したモデルを構築する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値を持たない順序数方程式の解はProper class、つまり集合ではない集りになる。順序数は自分自身を含むので、それを集合Sとすると、class全体はその中で集合になる。もちろんSは、そのclassには含まれない。つまり、Sはclassの中にない集合ということになる。out of memoryだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、順序数を含むHOD(可算順序数を考えれば具体的構成できる)をモデルとする集合論がある。これはHODでは順序数が自身を含むことから自明。古典集合論だと割と面倒な条件になる。Sの要素の冪集合がSに含まれるとか正則だとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「VとLはHOD内で超限帰納法を用いて定義できるが、Lは定義可能集合を冪集合の部分集合として与える必要がある。ODは定義可能なのだが、そのうちのad-hocな定義可能集合があるとする感じ。いやODだろとするとV=Lとなる。 https://t.co/YIn5bE5luE」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b VL.agda
Shinji KonoさんはTwitterを使っています 「実際にV≠Lな集合論のモデルを作るためには整合的な Df : Definitions → (x : HOD) → HOD Df D x = Power x ∩ Definition D x を具体的に作る必要がある。元の順序数が非可算だとできないらしいんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODに最大値が必要な理由は「集合は階層的な無限を構成してほしい」というのと「集合を要素とする集合」を定義したからだな。最大値のないODが集合の要素になると階層的な無限にならない。冬のプロシンではそこまで気が付いてなかった。なので、そこに突っ込まれると面白かった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値がないとすると矛盾になるので超気まずい。数学者がいたら確実につっこまれたと思われる。まだ、間違いがある可能性もある。ODに全順序があると思ってた時期もあって、それだとODは順序数になってしまう。だいたい一週間くらいでリカバリしてるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値があるというHODの定義は古典集合論の HOD = { x | TC x ⊆ OD } とは異なる。なので違う名前の方が良いだろうな。おそらく同じものだが。 TCは推移閉包。古典集合論だとxは集合なので意味がある。うちの場合だと自明であまり意味がない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「たぶん、bounded OD」 / Twitter
Shinji KonoさんはTwitterを使っています 「ClassがBoundedなら集合だってのはどっかにあったような。ZFでの集合は公理から生成されるものなのでBoundedなはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Classの定義は「単なる論理式」ってことらしい。でも、ほとんど集合と同じように使えるので共通のシンタックスを使うのでややこしくなってる。Agdaの場合はODとHODなので明解。型が違うって良いよね。V αが集合でVはOD。」 / Twitter
Shinji KonoさんはTwitterを使っています 「古典集合論だとなんかclass(条件)持ってきて「集合とは限らない」とかやるのでいらっとする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFの公理は導出できるので、集合論の別公理ってことね。ブール値モデルとかToposだと公理化はしないみたいなんだけど。なんでかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「全順序と半順序が準同型になるってのは古典論理ではなくて、直観主義論理だから可能。もちろん、これは圏論的な概念だな。なんかそういう名前があるんだろうか?」 / Twitter
Shinji KonoさんはTwitterを使っています 「コーエンモデルでは順序を持つ可算モデルから、順序を持たない可算モデルを生成してるので、そんなもんらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントルは直観主義論理は知ってたのかな。40年くらい差があるのか。知っていておかしくない。この頃はまだ記号論理は確立されてないが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントルの晩年にはラッセルホワイトヘッドのあれが出てたのだが、ラッセルに会うことはできなかったのか。ラッセルは集合論を救った人なので会いたかったろうな。ただ、ラッセルの多層型理論は複雑。でも、まぁ、だいたい今のAgdaと同じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントールの生涯は英語版と日本語版では量が全然違う。クロネッカーがカントールをネチネチいじめた的に書いてあるが… クロネッカーは構成主義的な立場だったらしい。カントールはむしろ非構成的な数学の重要性を確立した人なんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODとODは、もちろん同時に知ったのだがHODがさっぱりわからなくて。Bounded ODだとわかったのは今年になってから。推移閉包とBoundedの関係はなんか書けるとは思うが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「全順序と半順序の準同型っていう言い方はおかしいよな。AからBは順序が保存するが、逆は決定できない。なので半準同型みたいな感じ。」 / Twitter

証明支援系・直観主義論理・圏論

Shinji KonoさんはTwitterを使っています 「最近の学生は定理証明支援系から数学に入る。それはつまり圏論から入るってこと。Agdaがお勧めだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「最近はすっかり 排中律込みの一階述語論理? だめだめ、あんなの。やめとけ。 って気分だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「学生の頃は「選択公理使わないとどうなんですか」ってな感じで、吉田先生が「微分方程式の解の存在とかが出ませんね」で そんなのいらね だったんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「今は排中律=選択公理で、非構成的な仮定の一つだというくらいの気分なので いや、別にいいから、どんどん仮定して使えよ って感じ。排中律でも選択公理でも。どこで使ったかがわかるなら問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そして、排中律の証明があると思った瞬間に矛盾。それは不完全性定理に当たると思っても良いし、圏論的な問題だと思っても良い。あくまでも 仮定 だとすれば問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律を完全に排除して議論するのはAgdaならそうなるが、煩雑であることも確か。常に二重否定がかかってるみたいな逃げ道もある。つまり排中律を気にせず議論して、あとから、どこに非構成的な推論があるか調べても良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので直観主義論理で微分方程式の解の存在が証明できないというのは間違いで、非構成的な仮定から存在を導くことはできる。そもそも非構成的な命題なんだから、それで良い。だから 数学は全部、直観主義論理で良い ってことね。非構成的な仮定/公理も躊躇なく導入して良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律込みだと非構成的な仮定が曖昧で探す羽目になる。例えばドモルガン。片方向が非構成的。高階論理でないと公理の有限性とかに気を使うことになる。それは時間の無駄。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、圏の圏とかはlevelの抽象化が必要なので、ちゃんとはできないらしい。このlevelがhigher orderってことなのだが、圏論本には出てこない。Agda/Coqの問題。Level合わせは結構めんどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「公理はえてして矛盾するのだが、解消は矛盾した公理のループを切れば良いのでわりとたやすい。切った部分は構成的な推論として正しい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、うちの学生を見てるとあんまりわかってない感はあるよな。自分でも学生の頃に学んだLKは面白いなくらいだったので、その感じはわかる。」 / Twitter

意味

Sho YokoiさんはTwitterを使っています 「何かを知り何かを作ろうとする諸科学はむしろ意味(形式的な表現から現実世界や興味の対象への対応付け;解釈)に強く興味を持っており意味をできるだけ切り捨てて形式的な体系を追い求める数学が特例的という状況で相手方に discipline を強要してしまった、というよく見る悲しい案件に見える。」 / Twitter
Sho YokoiさんはTwitterを使っています 「数理統計はきっとつらい分野で、人間の活動や科学の言語として用いられるときは意味の問題は不可分なのに、一見数学なので「意味を持ち込むな」マンが登場してしまうのかもしれない。 (勿論数学として深められるのは良いことだと思う。論理学が人の論理的推論から離陸して新しい世界を作ったように)」 / Twitter
A. OkunoさんはTwitterを使っています 「@sho_yokoi 自分は意味を持ち込むな派ですが,解釈が大事だからこそ解釈をする回数や範囲を絞るべきだと思っています.数式と解釈の変換(語の対応)には十分気を使うべきで,件のプロレスなど既存の語の定義を日常語からの類推に置き換えている時点で語るに落ちている・・・」 / Twitter
A. OkunoさんはTwitterを使っています 「@sho_yokoi AICが未来を予測している,みたいな話もそうなんですが,(伝言ゲームは必ず失敗するので)情報はできるだけ正確な形でだけ変換して最後にだけ解釈するのがよさそうに思うところです・・・」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門外の話だと書き放題だな わっはっは(死」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter

自然の斉一性

井山梃子歴史館さんはTwitterを使っています 「自然の斉一性の否定だ」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「こういうのを「発見」するための推論はアブダクションであって、以降諸事象は演繹的に見られるわけだが、「先にルールがあるからルールに沿ったものしか見つけられない」とか「多くの人がそう信じるからそうなってしまった(それ以前は違った)」という可能性は本当に無いのだろうか?」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「多分、昔からリンゴは木から落ちていただろうが、それが地球に引かれて落ちるようになった(あるいはそう見えるようになった)のは、ニュートン以降だったとしても多分誰もそうだとは気づけまい。 自然数の乗法が交換するとみんな信じたから交換するようになった、あるいは交換しない自然数が」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「「見えなくなった」のだとしても、誰もそうだとは気づけまい。」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ 前半の解釈ではあくまで反例の発見に心理的な困難があるだけで、客観的には自然の斉一性を否定しませんね(ただ主観的なものと客観的なもので支配しているルールが違うだけで)。 後半の解釈は一旦は自然の斉一性を否定していますが、それでも「多くの人が信じたように振る舞う」という法則が追加された」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@sanjutsu_yu 「先にルールがあるから...」は一種の実在論者で大元の人(「我々が...」)と同じ意見であるように見えますね. 『「多くの人が信じたように振る舞う」という法則』自体は斉一的であることが可能かもしれませんが,よく言われる斉一性(実験や宇宙観測による過去の推測の正当化)自体は破ってそうですね」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ ですね 特にそのへんの仮定は「便利(というかないと何もいえない)から置いた」という意味が強いものなので、(一般に受け入れられるかはさておき)一度くらいはちゃんと懐疑してみても罰当たらないでしょうという感じがあります。」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「強い自然の斉一性 「自然はある程度の規則性を持っており、誤差や時々明白な誤りはあれども現在の自然科学はそれをある程度近似している。」 弱い自然の斉一性 「自然はある程度の規則性を持っているが、それを自然科学が記述できているかはわからない。あたかもサイコロで数回同じ目が出たからグラ賽」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「だとイチャモンをつける博徒のようなものかもしれない。」」 / Twitter

永劫回帰の思想(決定論)

yamaguchishoさんはTwitterを使っています 「この方の問いはとても自然です。 答えは「イエス」でありえます。 私自身、永劫回帰の思想を知った瞬間に《これは決定論だ》と直感しました。ただし――ここからが重要だが――《なぜ永劫回帰は何かしらの決定論を含意しうるのか》を説明するのは難しい。私は十年以上説明できませんでした。(つづく)」 / Twitter
kandekさんはTwitterを使っています 「「永遠回帰(永劫回帰)」って決定論のうちのひとつなのかな?」 / Twitter
yamaguchishoさんはTwitterを使っています 「永劫回帰が何かしらの決定論を含意する理路は以下。 永劫回帰では、t1からt2の期間、t2からt3の期間、t3からt4の期、(以下同様)で完全にそっくりなこと(いわゆる質的なコピー)が生じる、と仮定します。 この場合、t1~t2期間のある時点で、t2~t3期間の任意の時点の出来事が決まっている。(続く)」 / Twitter
yamaguchishoさんはTwitterを使っています 「同じことはそれ以後の期間についても妥当する。かくして永劫回帰は何かしらの決定論を含意する。(Q. E. D.) 押さえるべきは、これは因果的決定論ではない、という点。むしろ、t1~t2の時点ですでに、t2~t3の時点の出来事が或る意味で「在る」、というタイプの決定論です。(続く)」 / Twitter
yamaguchishoさんはTwitterを使っています 「これは、永遠主義が或る意味の決定論を含意する、というのと似た理路です(永遠主義においては、未来の出来事はいまの時点で或る意味で「在る」)。そして、「決定論」という語で因果的決定論のみを理解するひとは、この理路を退けるでしょう(これは言葉づかいの問題です)。(了)」 / Twitter
yamaguchishoさんはTwitterを使っています 「先ほどの問題をさらにニーチェの設定に近づけて考察したくなった。 ニーチェ的永劫回帰の世界では、 ..., T_-2, T_-1, T_0, T_1, T_2, T_3 ... という具合に過去向きと未来向きに永遠の時間が横たわっている(T_iたちは同じ長さの時間インターバル)。 (つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「ここで、各T_iに完全にそっくりなこと(質的なコピー)が生じている、と前提する。この場合に何かしらの決定論が導出されるか。 第一に、..., T_-2, T_-1, T_0, T_1, T_2, T_3 ...がいわば「現実的無限」として全体として存在するとき、あらゆる時点の出来事は無差別的に「在る」。(つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「この場合、永遠主義が一切を既在化し或る種の決定論を導き出すのと同じ仕方で、決定論が導出される。 第二に、先の永劫回帰の世界に真の意味の「生成」があるとする。この場合《現時点の生成へ至るために無限の時間が「経過」した》というお馴染みの目眩のする仮定を受け入れることになる。(つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「この仮定を受け入れれば、後は単純である。この場合、任意の時間インターバルの出来事は、先立つインターバルのコピーである――それゆえ、任意の時間インターバルの任意の出来事は、前もってそのような仕方で決定されていたことになる。かくして決定論が導出される。(Q. E. D)(了)」 / Twitter

Datatype-Generic Programming

まっちゃらさんはTwitterを使っています 「Datatype-Generic Programming https://t.co/3ggYFezYPB」 / Twitter
ssdgp.dvi - dgp.pdf
まっちゃらさんはTwitterを使っています 「generic programming自体は人によって意味合いが違う(parametric polymorphism, data abstraction, meta-programming,など)ので、 datatype-generic programmingという新しい言葉を作ったよということか」 / Twitter
まっちゃらさんはTwitterを使っています 「ListとTreeに対するfoldLで普通は別々に実装する(コンストラクタが違うし、そもそもバリアントの数も違う)けど、バリアントごとに関数を適用して、残りを再帰していけばいいという構造は同じなので、ここを抽象化するぞってのがdatatype generic programmingということらしい(理解があってれば)」 / Twitter
まっちゃらさんはTwitterを使っています 「polytypism, structural polymorphism, typecaseなんかも同じことを指していて、Generic Haskellにおけるgeneric programmingというのもこの意味らしい」 / Twitter

OCamlのlet recの変数の再帰使用の制限

kinabaさんはTwitterを使っています 「POPL'21論文リスト見てる。OCamlのlet recの変数の再帰使用の制限を以前までのad-hocな規則じゃなくて、型システム的にちゃんと定めるというの言われてみればなるほどだけどそりゃこうあるべきだなあ、と面白かった。 https://t.co/sp1vgdOPB3」 / Twitter
A Practical Mode System for Recursive Definitions (POPL 2021 - Research Papers) - POPL 2021
kinabaさんはTwitterを使っています 「以前の規則 https://t.co/2ze6KCnKrJ 見てても、まあそりゃそんなもんかーと思って深く考えてなかったもんなあ自分」 / Twitter
Chapter 7  Language extensions

関数型

mumumuさんはTwitterを使っています 「関数型言語のめっちゃ基本的な疑問でどなたか教えて欲しいのですが,一般論として 副作用がない ⇔ 純粋 は正しいですか? それとも,文脈におけるそれぞれのタームの定義に依存する話ですか?」 / Twitter
mumumuさんはTwitterを使っています 「&gt; 文脈におけるそれぞれのタームの定義に依存する話ですか? というのは,「純粋」とか「副作用がない」というのは厳密な定義ができない,みたいなニュアンスです」 / Twitter
mumumuさんはTwitterを使っています 「自分の理解では,そもそも純粋であることの定義が「参照等価性がある」ということだったのですが,これも文脈依存なのでしょうか...?」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm あ、というか副作用+参照透過性=純粋なのかと思っていました。」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm もとい、副作用なし、の意です。」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm で、おそらく嘘なので無視してください。参照透過で副作用あり、というのは参照透過性の定義を逸脱しているような気がしてきました。」 / Twitter
mumumuさんはTwitterを使っています 「独自定義と厳密定義が混じり合ってる気がしていますわね」 / Twitter
mumumuさんはTwitterを使っています 「定義が文脈によって変わる系の話かもしれない」 / Twitter
mumumuさんはTwitterを使っています 「@buri17 本でかじっただけですが,「純粋 = 参照等価性」という定義が存在することは間違いなさそうです. しかし,そもそも世間では色々な定義が混在しているのかもしれなくて困っている,という感じです...!」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm たとえば乱数を返す関数は参照透過ではないけど副作用がないという立場もありそうですが、乱数を返す環境に影響を与えているという立場ならありとみなすような気がするので文脈依存といえばその通りなきがしています。」 / Twitter
とりさん@腹筋が弱いさんはTwitterを使っています 「式は値を返せば良くて,それ以外の環境を変化させるような余計な振る舞いは全部*副作用*だから.(過激派」 / Twitter
mumumuさんはTwitterを使っています 「みんなが使ってる副作用にも広義、狭義みたいな話がありそうで、もはや関数型言語がアカデミアだけのおもちゃでないことを考えると、厳密な定義を求めないで文脈ごとに定義を明示するべきであるという結論に達してしまった」 / Twitter
mumumuさんはTwitterを使っています 「(ちなみに、自分の理解では「副作用=プログラムの任意の状態変化」だったので、副作用はもっと緩い定義をすることもあるという事を知れただけでも収穫)」 / Twitter

QBE

ドッグさんはTwitterを使っています 「30%パフォーマンスを諦めて90%コード量を減らすのを目標にしているコンパイラバックエンド QBE と LLVM の機能的な比較 | 'QBE vs LLVM' https://t.co/8SVtD9lDHR」 / Twitter
QBE vs LLVM
ドッグさんはTwitterを使っています 「QBE はとにかく小さいのが売りで,全体で 8000 行未満 (言語は C),SSA な中間コードのコピー伝搬はわずか160行しかない.全体の把握が容易なので,自分で簡単な言語実装したり,バックエンド側に手を入れて遊んだりが容易」 / Twitter

Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter
Hiroki FukagawaさんはTwitterを使っています 「数学を知っていると、数学に悩まないので、何かを勉強する時に障害が少ないってことかな。それと、それぞれの領域には、それぞれの考え方があり、数学にならない部分がある。それをそれとして学べることが重要で、定義がどうのこうのとか言っているようではダメ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「わかる。数学にならない部分があるかどうかは証明できないので、数学になってない部分、かな(すぐに数学っぽくしたがる、だめ)」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskellに対するdebuggerを定義できないなら、関数型言語の良さってなんだよ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「安全(スレッド安全とかセキュリティとか)に作った筈のモジュールが、数年後、別の仕様拡張で、安全のための前提条件を満たさなくなる現象、たまにある。 こういう場合、問題が発現するまで気づかないことが多いのだけど、少なくともスレッド安全については自動検査するツールとか無いのかな?」 / Twitter
mumumuさんはTwitterを使っています 「Lightweight Preemptible Functions [OSDI '20] Thread等より軽量に厳密なTimeout処理を実行できるように,Preemptible(Promiseのようにcooperativeではない)なユーザランドのライブラリを実装.launch/resume/cancelがIF.実はプ言語に詳しくなくて,十分理解できていないので,今度再挑戦したいわね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t Elixirはtry catchよりも戻り値で:ok, :errorを返すか,プロセスごと落として再起動するという方針です。」 / Twitter

Homepage of Kazushige TERUI
五十嵐 淳 (Atsushi IGARASHI)
H8-garrigue.pdf
lambda.pdf
1539paper.pdf

高度な技術

カバレッジ測定

gcov

gcov の使い方 - まめめも
OpenCppCoverageによるカバレージの計測 (1/2):CodeZine(コードジン)
gcov(1) FreeBSDドキュメントJMan
GCCでC言語の分岐カバレッジを試す。思ったのとちょっと違った。 CodingFirst
gcovでカバレッジテストをしてみる: 綺麗なコードが良い
タダでソフト開発の生産性と品質を上げる方法(7):高機能な単体テストツール「GoogleTest」を使いこなす(その2) (1/3) - MONOist(モノイスト)
Cutterでカバレッジ……改良しちゃいます - しがないSEのブログ
EM+PLS|IoT|サイバートラスト株式会社
rubyhackchallenge/6_coverage.md at master · ko1/rubyhackchallenge
Linuxにおけるカバレッジテスト | ~Rhythmical Life~
C/C++開発環境 - Qiita
GCC 7 | 10.2 gcovの呼び出し - 初心者入門サンプル
GCC 7 | 10.4 gcovデータファイルの簡単な説明 - 初心者入門サンプル
gcov.txt - kandamotohiro
Dialy & Material book: gccとgcovコマンドを使ってCソースのcoverage(カバレッジ)を測定する
GCCのコードカバレッジオプションはどのように機能しますか? - コードログ
QEMU / GDB経由の.gcdaカバレッジファイルの生成 - 埋め込みコードカバレッジ、gcov
Samuel Jacob's Web Log: GCOV internals overview
Linux Test Project / Re: [Ltp-coverage] gcov's data files format
セグメンテーション違反が発生した場合でも、どうすれば“ gcov”を使用できますか? - コードログ
Gcov - Wikipedia
Gcov Data Files - Using the GNU Compiler Collection (GCC)
Coverture

gcov_log_マージ

gcovのログファイルをマージするツールを拾った && 手直しした - 新・日々録 by TRASH BOX@Eel
code-coverage – 2つのgcovファイルを1つにマージする方法はありますか - コードログ
g – gcov/gcovrを使って2つの実行ファイルのカバレッジデータをマージすることは可能ですか? - コードログ
plugin gcov 警告: サマリーのマージの不一致 - 初心者入門サンプル
Parasoft Blog: テストを複数回実施したカバレッジのログをマージする
Using and Porting the GNU Compiler Collection (GCC) - gcov: テスト・カバレッジ・プログラム
On-line Manual of "gcov"
猫でも使えるソフトウェアのテスト網羅(3):無料ツールで単体テストを楽に実行しよう (4/4) - MONOist(モノイスト)
ブログズミ: [C++] Coveralls でコードカバレッジ - その2
「gcov: テスト・カバレッジ・プログラム」 (Using and Porting the GNU Compiler Collection (GCC)) - メモの日々(2006-07-09)

中村 実さんのツイート: "100%コードカバレッジの悲劇 / “The tragedy of 100% code coverage | IG Labs” https://t.co/myt2ldH9F0"
The tragedy of 100% code coverage | IG Labs
Makoto Kato ︎︎さんのツイート: "テストカバレッジできてないコードは大概怪しいとか、comm-centralでしか使えないコード (absolutely position editor) とかいろいろあるよ https://t.co/jS0TG2oqRj… "
Using gcov with the Linux kernel — The Linux Kernel documentation
まさみさんは語りたいさんのツイート: "ftraceのgcovをコンテナ内部で取れるようになった。良い。"
まさみさんは語りたいさんのツイート: "これでカバレッジテスト増やすんじゃー。"
まさみさんは語りたいさんのツイート: "lcovの結果を眺めながら、テスト漏れしてる関数を叩くにはどういうテストを掛けばいいかを考えて追加する簡単なお仕事。"
まさみさんは語りたいさんのツイート: "gcovを使ってftrace内のftracetestとboottestでカバーされる関数を調べ、足りないテストケースを能動的に探し出して追加するというアプローチに出ているが、結構ややこしいケースがあるなあ。"
まさみさんは語りたいさんのツイート: "GCOVでテストを走らせながらソースコードを読むと、消し忘れたヘルパー関数っていうのが見つかることがある。何かの処理のためにヘルパーを作って使ったけど、使った方のコードが書き直されたせいで使われなくなったhelper関数。これからはトマソンと呼ぼう。"
まさみさんは語りたいさんのツイート: "トマソンを探せ"
まさみさんは語りたいさんのツイート: "トマソンというかジャンクコードというかで人文学科か生物学科かが分かる。"
まさみさんは語りたいさんのツイート: "カバレッジ出来ないコードを削除していくスタイル"
まさみさんは語りたいさんのツイート: "GCOVはプログラムをコンパイルする時にカウンタを埋め込み、C言語の各行に対応する機械語の生成時にこのカウンタをインクリメントする、という動作をするようだ。問題はarmとかだと規模が大きいカーネルのようなプログラムの場合、カウンタを置く場所が離れてしまい1命令ではインクリメント出来ない"
まさみさんは語りたいさんのツイート: "なので、恐らくカウンタのテーブルを分割し、コード領域の近くに埋め込んで、一命令でインクリメント出来るようにしている。しかしLinuxカーネル内には.text.exitという領域があって、これは終了時にしか利用しないコードをビルドするんだけど、最終的にリンク時に削除されるようになっている。"
まさみさんは語りたいさんのツイート: "そうすると、このexitコード用のカウンタテーブルも一緒に削除されちゃうんだけど、当然そんなことを想定していないGCOVの関数からこのテーブルは参照されているので、リンカがエラーを吐きよるわけですよ。"
まさみさんは語りたいさんのツイート: "多分同様の問題が他の機能にもあったのか、armのリンカスクリプトで、CONFIG_GENERIC_BUGとかCONFIG_JUMP_LABELが定義されていたらtext.exitを削除しないようにするスイッチがあるのを見つけたから、これにGCOV_KERNELを追加したら案の定エラー消えた。"
uint256_tさんのツイート: "(ASTカバレッジ..?"
uint256_tさんのツイート: "カバレッジが行数なの, 疑問に思ったことなかったなぁ"
ccov: printfデバッグを支援するツール - Blog posts by @retrage01

コード分析

その他

コード分析ツールを利用する - プログラマが知るべき97のこと
冗長コードの検知と解析
日記 (2014 年 2 月下旬)
Software rot - Wikipedia
NetBeans IDE Javaエディタでの静的コード分析
ルール ベース分析
Google Developers Japan: サニタイザーによる Android のバグ退治
プロならゲーム開発で品質保持/CIは当たり前:C#/C++の本格的なゲーム開発において品質を高めるために知っておきたい静的解析とは - @IT
ElectricCommander
バグハンターのためのクライアントサイドJavaScriptの静的解析 - No1zy Web Security Blog
golang.org/x/tools/go/analysisで静的解析ツールを自作する #gounco / how to create the static analysis tool for go - Speaker Deck
Mozilla、Firefox開発プロセスにUbisoftのAI技術を採用へ | OSDN Magazine
MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能 - Publickey
米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
国際会議 SOSP 2019 - 品川研究室のブログ
プログラム解析の目的 - uchan note
静的解析の育て方 / How to make your static analysis strong - Speaker Deck
CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
JetBrains は IntelliJ 2020.2 をリリース
ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(前編) - Publickey
ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(後編) - Publickey
開発者の扱うコードの量や複雑さはここ10年で100倍以上に増えている - GIGAZINE

ポインタ解析

FadisさんはTwitterを使っています: 「みんな戻ってきたので少し早いですが @kristopher「Kiyomizu: LLVM IRを解析によってコードの脆弱性を防ぐ」が始まります #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「「清水の舞台から飛び降りて無事だったら、願いが叶う」→「チェッカを通して無事だったら、安全なコードである」 Project Kiyomizu #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「LLVM IRのレベルでメモリアクセスの解析やコールグラフ解析を行う事で、様々な言語を安全に書けるようにする、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「社会インフラを構成するシステムに存在する脆弱性の多くが正しくないメモリアクセスを原因としている、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「ポインタ解析ではある関数がアクセスして良いアドレスの範囲の情報を作って、それに違反していないかをチェックする、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「言語に型の条件チェックを付けて安全なコードを書けるようにしました、という話を目撃する度に「それC++で(以下略)」というお気持ちになってる」 / Twitter
FadisさんはTwitterを使っています: 「でも実行時にならないと確定しないようなものをテストと結びつけてチェックできるのは羨ましい」 / Twitter

Snyk

渋川よしきさんのツイート: "アカウント登録必要だけど、snykを別に使えば、セキュリティチェックを別に行うことは可能。これはnode.js以外のGoとかにも対応してる。audit入る前からこれ使ってた(vulsの神戸さんに教えてもらった) #ll2018jp"
Open Source Security Platform | Snyk
Scan Your Code and Open Source for Vulnerabilities for Free | Snyk
オープンソースコードのセキュリティチェックと問題修復を開発のワークフローに組み込むSnyk、GitHubとの統合も可能 | TechCrunch Japan
オープンソースのライブラリのセキュリティチェックと脆弱性フィックスを代行するSnykが$7Mを調達 | TechCrunch Japan
snyk/snyk: CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies
Snyk
snyk/vulnerabilitydb: Snyk's public vulnerability database

Clang-Tidy

冬休み到来! clang-tidy で安心安全な C/C++ コーディングを極めよう! - Qiita
clang-tidyで命名規則のチェック(&自動修正) - Qiita
Clang-Tidy — Extra Clang Tools 8 documentation
Clang-Tidyインテグレーション - 公式ヘルプ | CLion
clang-tidy - Google 検索

SCALe

カーネギーメロン大学、ソースコード解析ツール「SCALe」を公開 | マイナビニュース
SEI CERT Division Releases Downloadable Source Code Analysis Tool
cmu-sei/SCALe: SCALe (Source Code Analysis Lab) is a static analysis aggregator/correlator which enables a source code analyst to combine static analysis results from multiple tools into one interface, and also provides mappings for diagnostics from the tools to the SEI CERT Secure Coding standards.
コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開 - Publickey

MS

コード分析を使用した C/C++ コードの品質の分析
C/C++ のコード分析の概要
「Visual Studio 2019」がリリース候補(RC)版に ~CodeLens機能がCommunity版にも開放 - 窓の杜

KMC Staff Blog

KMC Staff Blog:sparse チェッカーを使ってみる。
KMC Staff Blog:GCC の名前付きアドレス空間サポート
KMC Staff Blog:GCC の profile mode を試してみる。

Twitter

高梨陣平さんのツイート: "正規表現ライブラリに動的にメモリ破壊の可能性を解析するlibFuzzerを使ったら5つも問題を見つけたとの話。C/C++を用いるOSSには定期的に検査をかけてくれるOSS-Fuzzというのもある。利用申請が必要。 https://t.co/kWENHQIqCq https://t.co/lGAoq90Njo"
Masakazu Asamaさんのツイート: "Clang の ML に「Clang の static analyzer 使って Linux の TCP/IP スタックの検証してみたいんだけど」みたいなスレあって色々調べてたら FreeBSD は Wiki にカーネルの static analyzer にかける方法が載ってた。"
Masakazu Asamaさんのツイート: "@m_asama 「これで潰せたバグの一覧」とかあったら個人的にめちゃくちゃ興味あるんだけどどうなんだろ。 https://t.co/8vggEG1lHH"
Rockridgeさんのツイート: "MozReviewに送信されるすべてのパッチに対し自動的に静的コード解析が行われるようになる模様。解析の結果指摘された問題点を解消しない限り、パッチのチェックインができなくなるそうだ。 / “Intent to Enable: …” https://t.co/vyQR5pNHTq"
Kazuho Okuさんのツイート: "Cの静的解析ツール、false positiveの管理が辛くて、その点Coverity Scanはウェブベースだからグループ開発にむいてる"
Kazuho Okuさんのツイート: "Cコードのregressionを見つける比率で言うと、CI : fuzzer : 静的解析 = 100 : 10 : 1 くらいの僕的印象"
眼力 玉壱號さんのツイート: "@kazuho code flow はよく見ている印象。C++11〜 の対応が弱いのが少し辛い> Coverity"
とみながたけひろさんのツイート: "ふつーのコンパイラの警告, cppcheck, coverity, fortifyあたりを併用しているけど、まあどれも一長一短な感がある。お値段とか精度とか速度とかいろいろ"
鯵.pngさんのツイート: "ソースコードとコンパイラが吐いたバイナリが同じ挙動をするかどうか、ハードウェアみたいにフォーマルベリファイアで確認することが必須になる未来を見てみたい"
Kentaro Haraさんのツイート: "Googleの2億行のソースコードを解析した結果、関数に渡す引数の順番を間違える系のバグは、引数の個数が6個以上になったときに著しく増えるので、引数の個数は5個以下が望ましいことがわかったという話。 https://t.co/R5yy31pDyu"
なかのん&マジックさんのツイート: "CheckSomething()って名前のメソッドはプロジェクト問わずだいたいダメ。"
なかのん&マジックさんのツイート: "Checkすることで何が起きるのかよく分からない、つまり、実装する人によってそのメソッドの性格が変わるということを意味してる、非常に良くない単語。"
FadisさんはTwitterを使っています: 「gcc 10からC言語のコンパイル時に-fanalyzerをつけることで静的解析をかけられるようになる話。さしあたってはまずいメモリ確保/解放を見つけるようになるらしい。コンパイラの中間表現を使って静的解析を行う試みは既にclangで行われていたが昨年末にgcc向けの実装が登場した https://t.co/orYlhY267F」 / Twitter
GCC 10 Introduces A Static Analyzer - Static Analysis On C Code With "-fanalyzer" Option - Phoronix

プロファイラ

パフォーマンス計測

その他

小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
本の虫: cpの速度を計測する方法
本の虫: cpで大量のファイルをコピーした(4億3200万件、39TB)
DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
命令単体の性能を計測する
インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
Android Studio 3.2 Canaryはトレースサポートの改善、Lintチェックなどを提供
はじめてのにき(2018-02-19)
2018年11月22日 Oracle,eBPFによるDTraceエンハンスのプランを公開:Linux Daily Topics|gihyo.jp … 技術評論社
パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT
Linuxのパフォーマンス計測ツールの違いとか - Yabu.log
Makoto Kato ︎︎さんのツイート: "ETWを使ってDTrace likeなのを動かすようにしただけなのか"
DTrace on Windows - Microsoft Tech Community - 362902
Next Windows release will include DTrace support | Ars Technica
2019年3月12日 Microsoft,「DTrace on Windows」をCDDLで公開:Linux Daily Topics|gihyo.jp … 技術評論社
3.3 アプリケーションへのUSDTプローブの追加
3.4 USDTプローブの使用
パフォーマンスカウンタを読んでみる - ziita’s blog
レイテンシの直感的な理解のためのメモ書き | Qrunch(クランチ)
俺の仮想マシンルーターがこんなに遅いはずはない/ KernelVM online 1 - Speaker Deck

ベンチマーク

スーパーコンピュータ

Hideyuki Tanakaさんのツイート: "なんか何一つ正しいことが書いてなくてやばいですね…これ書いた人は一体どこで勉強して書いたのか、あるいは何かの目的のためにうそを自覚しながら記事を書き連ねたのか…?… "
新国産スパコン開発 日本製はGreen500で上位独占
Hideyuki Tanakaさんのツイート: "やばすぎる記事だ(´・_・`) / 1件のコメント https://t.co/lehpuGBNbI “新国産スパコン開発 日本製はGreen500で上位独占” (1 user) https://t.co/15VN7jrGcp"
Hideyuki Tanakaさんのツイート: ">違いはTOP500は簡単な計算を繰り返す理論上の最大能力、Graph500は複雑な計算をさせることで、TOP500のほうは低性能機材でも高い数値が出る。 Top500は密行列の連立一次方程式を解く速度、Graph500は無向グラフの幅優先探索をする速度、別にどっちも複雑な計算ではない。必要なリソースが違うだけ。"
Hideyuki Tanakaさんのツイート: ">TOP500はスパコンを構成するユニット1個の理論上の性能から全体の数値を推測し、100倍だなとか1万倍だななどと計算しています。 >たとえ本物のコンピュータは1個だけで他は段ボールを並べただけであっても、TOP500では世界一を取れます。 違います。Top500は巨大な方程式を解くタスクの実行性能です"
Hideyuki Tanakaさんのツイート: "ちゃんとスケールするように構成しなければTop500で世界一は取れません。現在のスパコンでは、特にネットワークがボトルネックになってくるので、ほかの典型的なアプリと比べても少なくないネットワーク帯域が必要だと思います。"
Hideyuki Tanakaさんのツイート: ">中国のスパコンは段ボール製なのか、「神威太湖之光」や「天河2号」は一度も全体を稼働させたことがありません 全体というのがよくわからないですが、昨今の巨大システムでは常時数%は死んでいるのを許容する方向性なので、そういう意味ではそうかもしれないけど、基本的には全系動いてましたよ。"
Hideyuki Tanakaさんのツイート: ">一つ一つのユニットが低性能でも数をたくさん並べれば数字が大きくなるのがTOP500で、しかも実際にユニットが存在するか誰も確かめていないのです。 二度目だけど、これは嘘です。"
Hideyuki Tanakaさんのツイート: ">もうひとつのGreen500はユニット単位の省エネや計算速度を競うもので、実はこれが本当のスパコンの性能です。 Green500のスコアっていうのは、Top500のスコアを単に消費電力で割ったものです。Top500が無意味というなら、自動的にこれも無意味です。この人Green500のことわかってないでしょ"
Hideyuki Tanakaさんのツイート: ">中国スパコンがやっているのは「市販のパソコンでも数多く並べれば合計で世界一」のような手法で、だから段ボールコンピューターになります。 そういうのやってるのはXeonとV100ならべてるやつに行ってあげて欲しくて、中国のTaihuLightは独自アーキの独自チップ並べてるからその批判はおかしい。"
Hideyuki Tanakaさんのツイート: ">日本がやっているのはユニット単位の性能を向上させて少ないユニット数にする手法で、このほうが実用的です。 そんなことはやっていませんね。ポスト京のチップを一度見てみるといいですよ…。"
Hideyuki Tanakaさんのツイート: ">Green500は日本製のスパコンが上位を独占していて、すべてが実際に稼働し利用されています。 これは好ましいことだし、まあそうあってほしいんだけど実際にはその中の最大級のシステムが、なぜか殺されましたね…"
Hideyuki Tanakaさんのツイート: ">中国の「神威太湖之光」や「天河2号」は先ほど書いたように製造以来現在まで、一回もユニット全体を稼働した事がありません。 天河2号はしらないけど、神威太湖之光は実際に動いていましたよ。まあこんな記事に対して超絶今更だけど、一体どういう根拠なんだろ。"
Hideyuki Tanakaさんのツイート: "(´・_・`)いやしかし一行ごとにでたらめが書いてあるこの記事やばすぎひん?"
Hideyuki Tanakaさんのツイート: "いや大げさじゃなくまじで1行ごとにうそが書いてあるんだけど、このブログのほかの記事はどうなんだ(´・_・`)…詳しくない分野はわかんないから、詳しくない分野でこういうブログがあるんじゃないかと思うと、怖くなってきたゾ…(´・_・`)"
Hideyuki Tanakaさんのツイート: "よく誤解される?のか変なプロパガンダ流してる人がいてそれの影響受けてる人がいる?のか知らないけど、Top500が単純な演算の繰り返しで、Graph500が複雑なタスクとかいうのは、全然そんなことはなくて、Top500はLU分解、Graph500はBFSというどっちもシンプルなアルゴリズムで、"
Hideyuki Tanakaさんのツイート: "1コアCPUで動かすならどっちも10行程度のCのコードで書けるものです。並列化する際にボトルネックになるところが違ってくるので、計算機のどの辺が一番先に問題になってくるのかを測る指標の一つとして使われとるっちゅー話ですよ。Graph500が一番ボトルネックになるのはネットワークですね。"
Hideyuki Tanakaさんのツイート: "Graph500では演算性能はほとんどいらないので、スコアはシステムの総インターコネクト帯域にほぼ比例すると思われて、京はそういう意味では6次元メッシュトーラスのTofuがいまだに世界1という話で、ほかのスパコンはそこまでのネットワーク帯域はいらないだろうという判断になっているという話では"
Hideyuki Tanakaさんのツイート: "というか、Graph500、いったいどういうアプリに関係する性能なのか(ビッグデータ云々と宣伝してるけど、こんな恣意的に並列化しやすい形した無向グラフを単にBFSすることなんてあるか?)謎なのか?、500という名前なのにエントリーが248しかないのを何とかしてあげて"
Hideyuki Tanakaさんのツイート: "単一始点最短パスの要するに枝に重みがついたバージョンも最近できたんだけど、エントリー数が21しかないので何とかしてあげてほしい(´・_・`)"
Hideyuki Tanakaさんのツイート: "Green Graph のエントリー復活してた(´・_・`) IBM Moscow && MSU Alex Kolganovなるサイトのマシンがトップなのか(´・_・`) https://t.co/eE7RtJJZZh"
Hideyuki Tanakaさんのツイート: "しかしスケール30(わずか10億頂点)、1ノードのマシンがトップ…というかランキングのほとんどが1ノードっていうの、完全にコンセプトとして破綻していますよね…"
Hideyuki Tanakaさんのツイート: "10位にマックブックプロが入るスパコンベンチがあるらしいな(´・_・`)… "
Hideyuki Tanakaさんのツイート: "スパコンの実用性能ランキング10位にマックブックプロが入ったらしい(棒)"

くそでかいイリエワニがみたい!@転職活動中さんのツイート: "https://t.co/7Yx3Y2RYSr ベンチマークのとり方うんぬんの話が出たので、そっとこれを置いておきます。"
How to run a stable benchmark // Speaker Deck
SODA Noriyukiさんのツイート: "RTしたスライドにもちょっと出てるけど、環境変数の量の違いでスタックのアライメントが変て性能が変化したみたいな話もあったなあ。"
前田敦司さんのツイート: "https://t.co/dxsyGqWs34 に同じような話があります.(図1(b)や,4.2節)… "
Producing Wrong Data Without Doing Anything Obviously Wrong!
Hideyuki Tanakaさんのツイート: "どのベンチにするかと言っても、結局は理論演算性能とB/F比とネットワーク帯域のバランスで一番先にボトルネックが来たとこに引っ張られるだけなんだから、この三つの要件どこが一番厳しいのかもアプリにもよるから、どれそれが実アプリ性能だなんて宣伝してたらそれは全部嘘ですよ。"
Green500 Lists | TOP500 Supercomputer Sites
TOP500 Lists | TOP500 Supercomputer Sites
SODA Noriyukiさんのツイート: "今回のIntelの件で言うと、firmwareの更新前と後での比較なので、ハードウェアその他含め厳密な比較が容易にできるのでこの論理じゃ弁護できないと思う。… "
SKSの申し子さんのツイート: "ベンチマーク非公開ねぇ.俺も反対ではあるんだけど,ベンチマークって正確に取るのって難しいんですよね.特に世の中には他の人が再現出来ないベンチマーク記事を公開する人はそれなりにいて,更にセットアップとかが間違っていることが結構あって,そしてそれを信じてしまう人が結構いる.悩ましい…"
SODA Noriyukiさんのツイート: "ベンチマークの取り方が悪いのって確かにホントに多いんだけど(例えばディスクベンチでディスクじゃなくて、カーネルの持つpage cacheからユーザ空間へのメモリコピー性能計測しているのってホントによくある)、今回のケースでは、そういうベンチマークで差がでてもやはり問題なわけで。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windows系でも、本当に多いのですよね、これ。 さらにキャッシュの影響を排除した後も、HDDだと物理的なアロケート位置の変化=速度変化、SSDだとユーザ要求以外の処理がSSD内部で不定期に発生(+温度問題)などは、試行回数を増やして誤差を減らすしかなかったり。… https://t.co/zRdsLEqCCz"
SODA Noriyukiさんのツイート: "ディスクの割り当てブロックの問題は、umount して毎回 newfs して mount し直してから測るとか、UNIX系なら raw device で計測するとかいろいろあるけど、SSDのケースは厳しいなあ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "HDD/SSDのデバイス性能を調べたい時はその通りなんですが、一方で、コピーソフトの性能を調べたい時は、真っ新な状態でのテストだと実用的な計測になりづらいんですよねぇ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、適度に使用したファイルシステムのrawブロック群を、ddで毎回復元してから…が最強なんでしょうけど、1回のテストに掛かるコストが厳しい(笑)"
SODA Noriyukiさんのツイート: "newfsまでするのは稀で何回か測ってバラつきが少なく整合性のある結果が出ればそれでヨシにしちゃうことが多いです。自分で測る時はraw deviceに対するバンド幅/レイテンシ計測みたいに簡単に測れてベースラインとして使える値は必ずとるんですが、人にお願いするときにはそれも面倒なことがorz… https://t.co/uxQe5y68ez"
Huawei製スマホで3DMarkの自動ブーストが発覚 - PC Watch
OPPO製スマホのアプリ名による3DMark最適化は「ある意味妥当」 - PC Watch
本の虫: コンパイラーを負かす
404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark

B/F比

B/f値とキャッシュ | Pravdaの日記 | スラド
チュートリアル資料2.key
第一原理計算入門 計算機科学 理解への道
SC11 - 京の技術を向上させた富士通の新スパコン「PRIMEHPC FX10」 (1) ピーク演算性能が前世代比で約2倍に向上したSPARC64 IXfx | マイナビニュース
0613watanabe.pdf
どの分野の開発難易度が低いのか?(最新HPC事情に思うこと。)
SODA Noriyukiさんのツイート: "そりゃ勿論、メモリバンド幅を向上させること自体は(それが妥当なコストでできるなら)望ましいことだからですよ。京の次世代がHBM載せるのもそういう理由。ただし、コストは上がるし、トレンドとしてメモリバンド幅を要求するアプリは徐徐にHPCの主流から外れていくという話です。… https://t.co/5FHRUypJb9"

ptrace

るくすさんのツイート: "多分ptraceレベルで出来ると嬉しいのって、breakとかmalloc/freeみたいなツールによって決められたタイミングごとのインスペクトを回避してオレオレができちゃう所だと思っていて、それってなんだろうなぁ...結局よくできたトレーサーで出来ちゃうんじゃないの?とか"
Kazuho Okuさんのツイート: "言語によらず手軽に障害解析できて便利… "
るくすさんのツイート: "そこを推すのもありですねぇ… "
Kazuho Okuさんのツイート: "あとはオーバーヘッドが小さくて実環境で使えるところですかね。 https://t.co/AJFflFrYok にあるように、プロファイルを取り続けるとか… "
DeNAインフラの今とこれから - 今編 -
るくすさんのツイート: "そう。インフラ屋さんとかいかにもケースに応じたプロファイラとか書いてそうだなと思ってたんだけどやっぱやってんすね"

OProfile

Shirouzu Hiroaki(白水啓章)さんのツイート: "ぬぬ、最近は oprofile を debian の apt 経由でインストールできないのか…"
OProfileの使い方備忘録 - hogeなlog
Oprofileによるボトルネックの調査 メモ - Qiita
第23章 OProfile - Red Hat Customer Portal
About OProfile
OProfile - A System Profiler for Linux (News)
Oprofile | IT用語辞典 | 大塚商会
Oprofileを使用してプロファイルを取る | 組み込みLinuxのArmadilloサイト
OProfile - Wikipedia
OProfile | 日経 xTECH(クロステック)
openSUSE 13.1: 第8章 OProfile—システム全体に対するプロファイラ

ipftrace

ipftrace: A Linux Function Tracer for Network People - Speaker Deck
FadisさんはTwitterを使っています 「SystemTapは指定したカーネル関数の実行を見張るが対象がはっきりしないと使いにくい→ftraceはカーネル全体の関数を見張れるが、出力が多すぎてつらい→ネットワーク屋が見たいのは特定のパケットが通った関数だ→ipftrace #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「ipftraceの戦略: Linuxでパケットを処理する関数はだいたい引数にsk_buffをとる→この構造体を引数にとる関数を全部フックする→ターゲットのパケットにマークをつけておいて、フックはsk_buffにマークが付いていたら出力 #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「iptablesのアクションでマークをつけるからiptablesのルールでいろんなマークのつけ方が出来るのめっちゃ賢い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「Linuxカーネルはキャッシュヒット率を上げるためにsk_buffをできるだけ使いまわそうとするため、アドレスが再利用されてトレースが続いてしまう事がよく起こる、と #kernelvm」 / Twitter
YutaroHayakawa/ipftrace2: A Linux function tracer for network people

SystemTap

SystemTap - Wikipedia
SystemTap とは何ですか? どのように使用しますか? - Red Hat Customer Portal
SystemTap ビギナーズガイド
SystemTap
第14回「 SystemTap ノススメ」 | NTTデータ先端技術株式会社
SystemTap メモ - myokotaの日記
Linux のイントロスペクションと SystemTap
systemtapを使った動的追跡 | Let's Postgres
SystemTap - Wikinote
Linux向け追跡ツール「SystemTap 4.2」リリース | OSDN Magazine

DTrace

まさみさんは語りたいさんのツイート: "モダンと言っていいのかどうか・・・方向性が違うのだと思う(誰が使うかを含め)。ちなみにR社内ということは、Linuxに移植されたDTraceと言ってるのはSystemTapのDTraceラッパーですね。DTraceスクリプトをSystemTapスクリプトに変換してから使う。… https://t.co/wRpBgI7kYv"
まさみさんは語りたいさんのツイート: "これややこしくて、実はO社の人は今でもDTraceをLinuxに移植しようとしているんです。あとDTraceはアドミンがシステムモニタをスクリプト化するためのツールだけど、Linuxのftraceとかはカーネルハッカーがデバッグするためのツール。eBPFはその中間かなあ。"
まさみさんは語りたいさんのツイート: "なぜこうなるかと言うと、DTraceはトレースするイベントの種類が規定されている(そうでないとスクリプトが環境依存になってしまう)けど、Linuxはカーネル実装をコロコロ変えたいから、そこで代表的な挙動が規定されてしまうと困るわけです。デバッグ用途ならそういう規定は緩くてもいい。"
まさみさんは語りたいさんのツイート: "つまりOSの代表的な挙動というものを想定するか、それともデバッグ用途と考えて挙動の規定はいつでも変わると想定するか(あくまで可能性や自由度の話)、それによってツールの性質が変わる。挙動を想定する場合、実装にまで踏み込んだイベントは規定できない。"
まさみさんは語りたいさんのツイート: "でも実装に踏み込んだイベントを導入しなければOS自体のデバッグ用途には使えないので、どうしても2種類の実装が必要になってくる。eBPFやSystemTapはスクリプト言語は規定するけど、イベントは規定していないはず。これは苦しい解で、実装が変わるとスクリプトが動かなくなる可能性はある。"
まさみさんは語りたいさんのツイート: "今私自身はftrace/probe-eventのメンテナンスをしているけど、これは本当にデバッグ用途だけを指向しています。OS実装のデバッグをするためにbreakpointを追加したいという用途。はっきり言ってアドミンには不向きなツールだけど、OS開発には役に立つ。"
まさみさんは語りたいさんのツイート: "逆にアドミン向けにDTraceみたいなのが必要になるとは思うけど、それをネイティブに実装するか、SystemTapやeBPF上に実装するかは、どれだけネイティブ実装するメリットがあるかという話になるんじゃないだろうか。(個人的にはいくら聞いてもそのメリット部分がよくわからない・・・)"
Takafumi Yonekuraさんのツイート: "Dtraceでdebugに使うのはほぼfbtプロバイダ だけで、スクリプト用途はシステム系のプロバイダで割とうまく共存してると思います… "
Takafumi Yonekuraさんのツイート: "でも、fbtプロバイダは若干貧弱なので、もう少しリッチな独自プロバイダが欲しいな、となると途端にめんどくなる印象。"

blktrace

blktrace User Guide
VOYAGE GROUP エンジニアブログ : blktraceによるI/Oトレース
6.3. ツール
blktrace(8) - Linux manual page
Etsukata blog: blktrace で block IO の分布を可視化する
Disk I/O性能測定するときに活躍する道具たち - お菓子食べる部

ftrace

Qiita

ftraceについての勉強メモ - Qiita
Ftraceでカーネルの一部の処理を追いかける方法 - Qiita

Twitter

まさみさんは語りたいさんのツイート: "ftracetestで出来ることに限界があった。(bpfとperf関係はツールが必要・・・)"
まさみさんは語りたいさんのツイート: "うーん、ftrace内部をkprobeでトレースしてみてるけど、イベント記録中の処理からは多重にイベント記録が出来ないのか。取り敢えず各所に置いてみてどこを経由してるかだけでも調べるなど。"
まさみさんは語りたいさんのツイート: "ftraceをコンテナ内部から操作した場合、pid filterが使えないことに気がついた。(当たり前だが) コンテナ内部から使えちゃう時点で問題な気がしなくもない。"
まさみさんは語りたいさんのツイート: "clangでLinuxのクロスコンパイルする話を聞いていたらftrace on armを有効にするとビルド失敗するっていう話があって、それmcountのシーケンスがちゃうからやでーっていうコメントしてた。"
まさみさんは語りたいさんのツイート: "recordmcount.cっていうベタなプログラムを走らせて、各アーキテクチャ毎のmcount呼び出しシーケンスを確認しながらnopに変えるという処理をしているけど、コンパイラ実装が違うとシーケンスが違うから失敗する。あとはclangがどういうコード生成するのかに依存。"
まさみさんは語りたいさんのツイート: "clangを使ってビルドしても、自動的にlldは使われない(gccのldが使われる)ので並列リンクは実行されないけど、誰かがそれとは別にlldを使うパッチを書いているらしい。探さないと(主にDeveloperBox向けに)"
まさみさんは語りたいさんのツイート: "ftraceの中でmutex依存関係の地獄に悩まされている。リソースをget/putしない造りだからだ・・・。"
まさみさんは語りたいさんのツイート: "まあ、Linuxだと簡単な統計データを取る用途だったら、DTrace要らないからなあ。既にevent-based histogramはftraceに実装されている。"
まさみさんは語りたいさんのツイート: "kprobesをworkqueue関係の関数に突っ込んで10分ぐらいしたらrcuでエラー起きるっていうバグが報告されているんだけど、どうもredhatカーネルの上だけで起きているのではないかという気がする。あとこのあたりの関数は突っ込んでも全てftraceになるんだが・・・。"
まさみさんは語りたいさんのツイート: "念の為全部+5したアドレスでもプローブしてみた。10分待ってみよう。"
まさみさんは語りたいさんのツイート: "これ豆知識だけどx86-64のftraceは基本的にfentryの機能のため関数の最初5バイトにjmp命令が入るので、kprobesでその5バイトを避けると確実に命令境界になる上ftraceの対象にならない。"
Kazuho Okuさんのツイート: "trqce-bpfccはコマンド指定して動かすオプションがないからbpftraceをsnapで入れたらオプションはあるけどexecveが見つからんとか言うから自分でビルドしてデバッグするかと思ったらubuntuのclangの付属ファイルが足りなくてupgradeで直る予定って書いてあったからアプグレしたけもダメ"
Kazuho Okuさんのツイート: "MySQL が Userspace DTrace Probe を deprecate する決断をした翌年に linux 界隈が bpftrace で(DTrace 2.0だって)盛り上がるの皮肉だなぁ"
Kazuho Okuさんのツイート: "bpftrace、masterで-cオプションがだいたい動くんだけど、probeが有効になる前に実行開始するから取りこぼしが発生してて、単純にexecveを遅延するとプロセス起動前だからprobeがセットできなくて、つまりはptraceでexecveタップしてほげほげやればいいんだけどめんどくさい"
まさみさん⋈語りたいさんはTwitterを使っています: 「ふーむ、ClangにShadowCallStackという機能があるのか。これのkernel implementationでkretprobesが使えなくなるっていう話が出ている。 https://t.co/a1DWiGQGYt」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「スタックとは別の場所に影のコールスタックを用意しておいて関数呼び出し元を記録、戻る時にスタックを使わず、影のコールスタックを用いるとのこと。あれ?これfunction graph tracerじゃね?」 / Twitter
function graph tracer - Google 検索
まさみさん⋈語りたいさんはTwitterを使っています: 「kprobesを関数の頭にセットすると自動的にftraceが使われる機能は実装されてる。ただしkprobeの呼び出しに変更するためのトランポリンが使われる。今回のは、これをbpfにも適用できるよう変更したってことかな。多分レジスタセットを作らずにBPFで使うcallar savedレジスタだけ保存するのだろう。」 / Twitter

トレーサ関連に大きな進展、ftraceがデファクトに?(1/2) - @IT
3.8. レイテンシ追跡用の ftrace ユーティリティの使用
6.5. ftrace
https://www.kernel.org/doc/Documentation/trace/ftrace.txt
組み込み Linux - ftraceのトレースログをお持ちいただくには
ftraceの仕組みとアーキテクチャ - テストステ論
第4回 Linuxイベントトレース最前線:LinuxCon Japan 2013 Preview|gihyo.jp … 技術評論社
Ftrace と Systrace - steps to phantasien
perf, ftraceのしくみ - 睡分不足
2019年4月26日 関数トレースをグラフィカルに実行する「KernelShark」,正式リリースに向けロゴ募集中:Linux Daily Topics|gihyo.jp … 技術評論社
Fadisさんのツイート: "KernelShark初の安定版となるバージョン1.0が近くリリースされるらしい。KernelSharkはLinuxカーネルのftraceをtrace-cmdでダンプした物をGUIで表示するツール。カーネルの関数のcallやreturnがいつ発生したかをズームしたりフィルタしたりして眺めることができる https://t.co/xpXTZdD2jE"
KernelShark 1.0 Soon Being Released For Visualizing "Trace-cmd" Linux Kernel Tracing - Phoronix
perf, ftraceのしくみ - 睡分不足 (1)

strace

strace コマンドの使い方をまとめてみた - sonots:blog
第11回「 strace ノススメ」 | NTTデータ先端技術株式会社
straceコマンドの使い方 - Qiita
straceを使ったデバッグ | OSDN Magazine
strace - Wikipedia
straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
プログラムから呼ばれるシステムコールを確認する:strace:Technical tips:Media hub
よく使う strace のオプション - Qiita
kati とか依存関係とか strace とか - straceが遅い
naoさんのツイート: "Linuxで動くとあるシミュレーターの評価版がアホほど遅くて評価にならないのでstraceかけて眺めてみたら馬鹿みたいにusleepを発行。ptraceで特定のパターンのみusleepを無視するラッパを作成・実行して本来の性能なら問題ないと確認できたのでめでたく購入、ということがあった。"
Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する - hibomaの日記
strace 5.2 で追加された -z -Z オプション - hibomaの日記
strace -c を使う際に -w オプションを使い分けよう - hibomaの日記

ltrace

dlopen()した共有ライブラリ内の関数呼び出しをltraceする - Qiita
Debian -- sid の ltrace パッケージに関する詳細
ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ
tips – ltrace で共有ライブラリの関数呼び出しをトレースする|てくめも@ecoop.net
ltrace - Wikipedia
ltrace(1): library call tracer - Linux man page

straceとltraceでトレース - Szarny.io
sltrace.dvi
第17章 システムモニタリングユーティリティ
IBM Knowledge Center - 一般的なデバッグ手法

perf tools

perfの使いかた
perf - Wikipedia
perf使ってみた - Qiita
:matsuu:さんのツイート: "Linux perf profilerのGUIクライアントらしい。ほう / “hotspot - a GUI for the Linux perf profiler - KDAB” https://t.co/2GoKwlWmGs"
hotspot - a GUI for the Linux perf profiler - KDAB
Linuxのperfプロファイラ向けGUI「hotspot 1.0」が公開 | OSDN Magazine
Dockerコンテナが遅くなるもう一つの原因 | POSTD
まさみさんは語りたいさんのツイート: "バックトレースも一緒に取る? ちなみにどのロックインスタンスが、というのはたとえアドレスが出たとしても難しい。その場合そのインスタンスに関わる別のオブジェクトのインスタンスを調べないといけなくて、その意味をさらに追いかけないといけない。… https://t.co/SzF0ktKSoI"
まさみさんは語りたいさんのツイート: "perf probeでinline関数をプローブすると、場所的にはcallerの方の行が表示されちゃうのか。ややこしいな。"
Linux perf Examples
Kazuho OkuさんはTwitterを使っています 「perf って定期的にプロセス止めてスタックをトラバースしてるのかな。だとすると遅いCPUでは、スタックが深い奴ほど重たく表示される?」 / Twitter
成瀬さんはTwitterを使っています 「@kazuho 多分途中まで取ってあとで合成してるんじゃないかなって気がするのと、call-graphオプションでスタックトレースの取得方法を選べますが、dwarfの場合は遅いかもですがlbrは速いです https://t.co/X32R7pRx0X」 / Twitter
perf-record(1) - Linux manual page

バウンド

:matsuu:さんのツイート: "CPUバウンドならWSLの方が高速、I/OバウンドならVirtualBoxの方が高速。なるほど。 / “Windows 10 WSL vs. VirtualBox Ubuntu Performance On An Intel C…” https://t.co/dFgfewLApr"
チャネル・コントローラ - Wikipedia
コンピュータ・アーキテクチャ - Wikipedia
CPUバウンド - 英和辞典・和英辞典 Weblio辞書
CPU boundの意味 - 英和辞典 Weblio辞書
I/O boundの意味 - 英和辞典 Weblio辞書
サーバ負荷を確認する方法 - Qiita
CPUバウンドとGPUバウンド – ひにけにGD
Node.js - nodeでのCPUバウンドな処理、分散処理への考え方について(child_processを使う?clusterを使う?)(31995)|teratail
CPU バウンド・サービス
コマンドによる「負荷」の原因切り分け
I/O バウンド・サービス
サーバ/インフラを支える技術4 Linux単一ホストの負荷を見極める 2 負荷とは何か - by shigemk2
Clojureのいろんな並行処理の使い分け - tyano's Techlog
サーバが重いときの対策メモ - 目の前に僕らの道がある

bpftracer

高梨陣平さんのツイート: "DTrace 2.0なる、bpftraceについての紹介記事。freeBSDのbpfがeBPFとしてLinuxに搭載。DTraceの大ファンがそのVMを利用する形で一から実装。まだDTraceの全ての機能がある訳ではない。歴史の部分が面白い。Sunが体力に物を言わせてDTraceを実装するもLinuxはRHが先行するも普遍的なものが無しに。… https://t.co/XkwfmBxF3q"
まさみさんは語りたいさんのツイート: "トレーサでスクリプト書きたい場合はbpftraceがメインになるだろうなあ。stapは結局カーネルと一体化していないし。ただ、トレーサって実装が必ずカーネルと乖離するので、その上でどうマネジメントしていくかは思案のしどころ"
まさみさんは語りたいさんのツイート: "ところでbpftracer、ローカル変数アクセス機能ちゃんとつけたんだっけ?いつも忘れてしまう。Huaweiの人を昔手伝った記憶があるんだけども・・・。"
まさみさんは語りたいさんのツイート: "Diamonとかいろいろな動きがあるんで、トレーサは群雄割拠している感じがすごい。基本的にはみんな協力していて、ユースケースが違うだけなんだけど。"
まさみさんは語りたいさんのツイート: "この前もなんかプローブポイントを設定すると、バージョンが変わったりコンフィグ変わったりすると使えなくなるんだけど、どうしたらいい?とか聞かれたから、それはstable ABIじゃないし、ソースコードが変わると変えざるを得ないよね、っていう話をした。"
まさみさんは語りたいさんのツイート: "Dtraceに引き続き、SystemtapもeBPFベースに実装を変えてくれないだろうか・・・。まあそうするとStapgamesは多分全滅すると思うけど。"
まさみさんは語りたいさんのツイート: "stapgamesで厄介なのはループを多用するっていうところだから、その点をなんとか出来れば解決できるのではないか。"

BPF

LinuxのBPF : (1) パケットフィルタ - 睡分不足
LinuxのBPF : (2) seccompでの利用 - 睡分不足
LinuxのBPF : (3) eBPFの基礎 - 睡分不足
LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足
cBPFプログラムをLLVM IRに変換する - 睡分不足
SpectreとeBPF - 睡分不足
bcc/eBPFのtraceの使い方を調査 - ソフトウェアプラットフォーム屋のメモ帳
bcc – BCC – BPFベースのLinux IO分析、ネットワーク、監視などのためのツール – GitHubじゃ!Pythonじゃ!
BPFによるパケットトレース――C言語によるBPFプログラムの作り方、使い方 (1/2):Berkeley Packet Filter(BPF)入門(5) - @IT
Berkeley Packet Filter(BPF)入門 - @IT
BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
Cloudflare architecture and how BPF eats the world
BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm BCC - BPF Compiler Collection https://t.co/jtyVfOQPY6」 / Twitter
brendangregg/bpf-perf-tools-book: Official repository for the BPF Performance Tools book
iovisor/bpftrace: High-level tracing language for Linux eBPF
FadisさんはTwitterを使っています 「eBPFをコンパイルしてカーネルに流すBCCはPythonでラップされていてPythonから使うのが一般的だけど、RubyistだからRubyラッパーを作ってRubyから使ってみた、と #kernelvm」 / Twitter
udzura/rbbcc: BCC port for MRI - this is unofficial bonsai project.
BCC(BPF Compiler Collection) for Ruby - Speaker Deck
FadisさんはTwitterを使っています 「LinuxのBerkeley Packet Filter(BPF)の実行環境は元々パケットフィルタをユーザ空間で書いてカーネル空間で実行するために導入されたが、カーネル空間に任意の処理を安全に突っ込めるのはとても便利なので今日ではカーネルのありとあらゆる任意の処理を書きたいところに応用されている。」 / Twitter
FadisさんはTwitterを使っています 「色々な用途で使うとBPFの中でブロックする必要がある処理を書きたくなってくるが、現在のBPFの実行環境は処理を中断できるように作られていない。そこで、一部の用途に限りBPF_F_SLEEPABLEをつける事で中断可能な実行環境で実行されるようにしよう、という提案がなされている https://t.co/0ijGZ9cpVg」 / Twitter
FadisさんはTwitterを使っています 「中断可能なBPFが再開時にRCUでアップデートされるリソースの古いデータを握り続けていると解放済みのデータを参照してしまうため、中断可能なBPFでは代わりにリソースに対するアクセスに制限がかかり、BPFのロード時のチェック内容が変化する」 / Twitter

Twitter

Intel PCM

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 64bitでドライバ開発は署名問題で若干面倒というのはあるが、それ以上に、そもそもIntel PCMをVS2017+WDKでビルドしようとすると、あちこち手直しが必要で骨が折れる。 Intelさん、最新VSに追随する気が薄いのかな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "リリースビルドプロジェクトに_DEBUGが付いていたり、CLR必要なものとそうでないものが入り混じっていたり、warning大量発生したり…linuxやMacと共通コードしようと頑張っている風だが、だったら極一部だけCLR利用とか中途半端感が。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ようやくIntel PCMドライバをカーネルに入れて、関連サービスも登録して、パフォーマンスモニタで監視。だが、いまのところ決め手になる情報は取れていない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "上記の図を解説すると…。 キャッシュライン版とAVX2版のIPCは同レベル。 そして、AVX2のほうが L2/L3のキャッシュミス率はずっと高い。 しかし恐らくReadキャッシュのために実効的なペナルティとしては、キャッシュライン版の方が影響が大きく、AVX2の方が2倍高速だった、というところ。… https://t.co/TwTUKx387Z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この時点ではメモリ帯域用のドライバが入っておらず(これはgithubのgoogle配下にあるsysを入れる必要)、Read/Write帯域は0のままだった。"

とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
satさんのツイート: "perf最強です。もう頭が上がらない… "
まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi bcc-toolsにはいってるcachestat、キャッシュメモリの利用状況みるのによさそうです。ディストリビューションによって微妙に名前がちがったりするのが難です。 https://t.co/bKfHTxjsPA」 / Twitter
sat📒さんはTwitterを使っています 「@moriwaka ubuntuだとbpfcc-toolsのようですね。べんりそう。ありがとうございます。perfよりはとっつきやすそう」 / Twitter

RyotoさんはTwitterを使っています 「gdbやstraceはptrace(2)を呼んでて、実行を止めてしまうので副作用が大きい #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm 代表的なツール gdb, strace: ptrace(2)を利用(実行パフォーマンスに影響大) perf: perf_event_open(2) (ユーザーランド側の処理が多くパフォーマンスに若干影響あり) bpftrace, BCC: bpf(2), perf_event_open(2) (カーネル側で実行されるのでオーバーヘッドが小さい)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「ftrace/systemtapもフィルタリングをカーネルで実行するよ。 #kernelvm」 / Twitter
各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安 - Qiita
計算の高速化のために必要なこと: メモリの観点 - Qiita

遅いコードの改善

herumiさんはTwitterを使っています 「@kazuho @syohex 遅くなってるときはfrontend_retired.dsb_missの値が極端に大きい。 https://t.co/TiuEAKRAI2」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @syohex ありがとうございます!!!!!! これはつまり、uop cacheでコリジョンが発生してるってことなんでしょうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「やっぱり gcc -O3 に頼るとコードがデカくなりすぎるから、 -O2 で同等に動作するように、自前でループあんロールとかするのかなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「uop cache collision ってそういうことだよね。facebook の bolt とか使うとマシにはなるんだろうけど、コードサイズでかいのはそもそもよくない」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kazuho __attribute__((hot)) 使うとかどうでしょう? 特定の関数だけ、他より積極的にアライメント取ってくれないかな。」 / Twitter
herumiさんはTwitterを使っています 「@kazuho @syohex コリジョンというか、ptls_fusion_aesgcm_encryptの最内ループでアンロールできてないところが足かせになってパイプラインがつまっていた感じです。 こんなふうにしたら大分ましになりました。 https://t.co/Qz13rOFyH9」 / Twitter
unroll · herumi/picotls@cadd1e4
herumiさんはTwitterを使っています 「@kazuho -O3でも先程の手動unrollはread-modify-writeが並列実行しやすそうに並んでました。いくつか試す限りでは顕著に遅くなるということは減ってるようです。https://t.co/Byh0OTf8tq のO3-before.txtとO3-after.txt 変動が大きいですが元のコードはストールすることが多いです(with-2.png)。」 / Twitter
picotls/result at master · herumi/picotls
Kazuho OkuさんはTwitterを使っています 「@herumi ありがとうございます。手動アンロールとuop cacheへのプレッシャーという示唆をいただき https://t.co/uzbKp3SzmI を作りました。僕の環境で、手動アンロールは -O3 の自動アンロールと速度差がなかったのですが(続く)」 / Twitter
Optimize for size, while unrolling the hottest loops by kazuho · Pull Request #308 · h2o/picotls
Kazuho OkuさんはTwitterを使っています 「@herumi 、大きなループの手動アンロール廃止と組み合わせることで、半分以下のコードサイズで同等の速度がでるようになりました」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi 当初の問題 https://t.co/gh0JxvBq4A についても、コードサイズが大きく変わったから確かなことは言えませんが新コードの -O2 -fno-unroll-loops では問題が発生しないことは確認できました」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @syohex このスレにやってきた人が解決策にたどりつけるように貼っておきます。問題を修正したPRはこちら https://t.co/uzbKp3SzmI 原因は端的にいうと、コードがでかいわりに無駄が多くて、あちこちに負荷がかかっていたことでした」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今はCPU系の高パフォーマンスのためには、disasで眺めても、perfでキャッシュミスを観察するだけでもダメで、遂に uop-cacheの効きを観察せねばならんのか、、、面白すぎる(笑) StackOverflowにも uop-cache絡みの話が出ていた。 https://t.co/KdcRmh496p https://t.co/24yQj82qp3」 / Twitter
performance - 32-byte aligned routine does not fit the uops cache - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そのうち、コードを書いていると「これだとuop-cacheの効きが悪くなりそうだ」とかピンと来るようになるのかしらん? 下記レベルやTLB, L1, pagingなどは意識していたが、uopレベルはさすがに気にしていなかった。 https://t.co/X5UIyCl0nH」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「しかし(データならともかく)プログラムコードのアドレスがちょっとずれただけで30%も性能が落ちることがあるなんて、イマドキのCPUでの最適化作業って辛いすぎ… https://t.co/2PnxVPe5HH」 / Twitter
Improving LLVM-Generated Code Size for X86 Processors - Ansari-Code-Alignment.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @herumi @syohex このあたりの コードの32byteアライメント問題で良いのですかね。 https://t.co/3QCZHChS9i https://t.co/KdcRmh496p」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho @herumi @syohex https://t.co/87fJsE6Yd1 という話なので DSB が問題ってとこまでは間違いなさそうです。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「uop意識したループのコツ解説があった。 コード整列に問題がある場合、1-2clock / iterのペナルティがある感じかな…最悪値は 1ループのuop数が23,24の場合で、6 → 8clock / iter となり、33%の性能劣化と。 (この周辺以外だと差は相対的に小さい) https://t.co/JA8qYHjy8C https://t.co/5w9f7a5DzI」 / Twitter
assembly - Is performance reduced when executing loops whose uop count is not a multiple of processor width? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ループ内を融合済uop数でカウントして(一覧資料あり)、33~63opsで4N+1 や 4N+2 ならループ展開したほうがいいとか、そこまでやるか的なコツが書いてある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CPU外部から見えないはずの uOp / uOp-Cache が、僅かな命令位置依存の性能変化でその輪郭が顕在化する様子は、物理学で直接見えない / 取り出せない存在を間接的な輪郭から推測 / 確認する姿と似ているかも(笑)」 / Twitter
herumiさんはTwitterを使っています 「みなさん、いろいろ情報ありがとうございます。 Intelの最適化マニュアル3.4やB.5.7章にフロントエンドのストールの細かい話や調査方法が載ってるのですが、複雑です。元の問題は@kazuhoさんが解決されてるので時間を見て調べてみようと思います。 https://t.co/LmxipbOUzs https://t.co/bfvojMN3zK」 / Twitter
xxqiさんはTwitterを使っています 「DSBだとこのエラッタを踏んでいそうな気が https://t.co/dmuo3bW6IG https://t.co/YKhJXwwMiH」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「https://t.co/VnDfTOsrIf 命令が間に合わなくなるの、 PS3 の cell のバグ(?)を思い出した。あれも 128B の空間に load/store がたまたま集まってしまうと命令フェッチが間に合わなくてストールするとかで、一切使ってない関数を消したら遅くなったりして大混乱してた思い出 https://t.co/sWA0ZzqyBP」 / Twitter
Hack the Cell - なんとなく全く使ってない関数消したら速くなった/遅くなった!

プロファイラのしくみ - Backnumbers: Steps to Phantasien
プロファイル測定 | VA Linux Systems Japan株式会社
VS2017 15.8プレビュー2でCPUプロファイリング、F#サポートが改善
flamegraph プロファイリング - Google 検索
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出てこなくなってからが本番やで?」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出て来てるところがメモリコピーとかの必要なコストだけになって来てから、もう、アイデア勝負。どれだけ汚くない最適化をほどこすか。」 / Twitter
0から始めるNode.jsパフォーマンスチューニング | kohsweblog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「プロファイリングとメトリクスの違い: メトリクス: 短い間隔でとられる、自由に選ばれた時系列データ プロファイリング: あらかじめ決まった指標を長い期間でとられる、スタックトレースと紐付けられる統計 #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「自由に」と言うより「自発的に」と言うべきか #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうプロファイリングの結果表示方法初めてだ。網羅的で分かりやすい #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「継続してprofilingするために、バージョンとrevisionをビルド時に埋め込んでおこう。」 / Twitter
k0kubunさんはTwitterを使っています 「perf-profile既に爆裂に便利だけど、(インライン化されてて存在しない) インライン化元のフレームをdwarf読んで計算してカウントできれば更に便利な気がするが、できるのかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「これ、当初は割と荒いサンプル取ってて 「パケットサイズが1320バイト超えるあたりで特性が変わるのは何かTCP/IPスタックにMTUサイズに近いパケット向きの最適化が入ってるんじゃないか」 みたいな推論してたし、統計から裏にあるモデルを推論するのは常に注意が必要。 https://t.co/7wiU0l5Ejp」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ワークセットが27KBあたりになるあたりで数%速度が低下するの、これL1キャッシュの壁なんだろうなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そして、ソフトウェア実験だから仮説を確認するためにサンプル増やした結果、当初の仮説を棄却することができた、という話。他の分野だと、なかなかこうはいかない。 なお、結論としては、パフォーマンスカウンタの値も見ずにL1キャッシュのせいにするようなエンジニアは信用ならない、です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックプレッシャーなしでデータ書いてるからメモリ不足に陥りそうなものなのに、なんでCPU利用率100%でサチるのかなーって思ったら、バッファ量が増えてmemmoveのコストが支配的になる、という変なバックプレッシャーが働いてた」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Ryzenに対する最大の不満は、linuxで使う際にCPUクロックの細かい制御ができないところです(できないよね?)。ベンチマーク条件いじりづらいじゃん!」 / Twitter
Intel VTune Profiler の使い方 - Qiita
144447146.pdf

最適化

その他

x86opti/readme.md at master · herumi/x86opti
最適化レポートの制御方法 | インテルソフト あるある情報局
Aug. 2017
/LTCG (リンク時のコード生成)
コンパイラの構造を解説 | Shinta's Site
adv intro
COINS 解説
MSVC code optimizer improvements in Visual Studio 2017 versions 15.5 and 15.3 | Visual C++ Team Blog
SSA-based Compiler Design
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(2/3) - @IT
Dependency Analysis入門 | κeenのHappy Hacκing Blog
富士通C++コンパイラの最適化機能の改善について
kaityo256/mdacp: MDACP - Molecular Dynamics code for Avogadro Challenge Project
メニーコア時代のアプリ性能検討WG 成果報告書 | サイエンティフィックシステム研究会(SS研)
branch folding - Google 検索
const folding - Google 検索
最適化コンパイラへのいざない (1) 導入 | Zenn
プログラム融合変換 - Google 検索
Branch Divergence Reduction Based on Code Motion
[PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap2-1.pdf
248966-024JA.pdf
命令単体の性能を計測する
Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令

in neuro

基本ベクトルの場合の最適化(3次元幾何) - in neuro
コンパイラの最適化と専用命令について - in neuro
コンパイル時ルックアップテーブル生成について - in neuro
reluを分岐無しで実装する - in neuro

本の虫

本の虫: コンパイラーを負かす
本の虫: なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと
本の虫: ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?
本の虫: とても賢いコンパイラーの逆襲

分岐予測のヒント

配列化による順次アクセス

MasaTamさんはTwitterを使っています 「'L1キャッシュから値をロードするにはわずか3から4サイクルのレイテンシで済むのに対して、メインメモリから値をロードする時のレイテンシは数百サイクルを要することもある。アプリケーションは典型的には時間的局所性(temporal locality)を示すため、キャッシュによってアプリケーションの性能は"」 / Twitter
MasaTamさんはTwitterを使っています 「"向上する。つまり、メモリ中のある位置が最近アクセスされたのであれば、すぐに再び同じ位置がアクセスされる可能性が非常に高い。(中略)アプリケーションは空間的局所性(spatial locality)も示すことがある。つまり、メモリ中のある位置がアクセスされれば、その近くも近いうちにアクセスされやすい"」 / Twitter
MasaTamさんはTwitterを使っています 「ガベージコレクションより Parallel Programmingの授業を思い出した。キャッシュの観点からも配列は順次アクセスされる場合、非常に効率がいい。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 最近のSDRAMのプロトコルを見ても,順次アクセスの方がランダムアクセスより効率良くなるように出来ています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 データだけでなくプログラムコードも,順次アクセスになるように,つまり分岐なしに処理する方が高速になります。どうしても分岐する場合は分岐予測のヒントを与えると高速になります。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 ちなみにPelemayの高速性の源泉は,リストを配列化して順次アクセスすることと,生成するコードに徹底的に分岐予測のヒントを付与することにあります。」 / Twitter

Fadisさんのツイート: "DPDK、同梱のサンプルプログラムがカジュアルに「指定したレベルのキャッシュまでデータをプリフェッチする」と「分岐予測にヒントを付ける」を活用してて、ネットワークプログラミングには使っているプロセッサに対する深い理解が必要です、的なアレを感じる"
インテル アーキテクチャ 最適化
分岐予測 - Wikipedia
条件分岐のヒントとしてlikelyやunlikelyを指定してみる - Qiita
ハードウェアに対する分岐ヒント 竹下世界塔の計算機よもやま話/ウェブリブログ
ARM Information Center
C++ SIMD クラスの機能
fnami: Assembler
Tips IA32(x86)命令一覧 補足
repz ret - repz ret
コンパイラは分岐情報を使って何ができますか?

プリフェッチ

インターネット・ストリーミングSIMD拡張命令
The 3 key challenges in programming for MC
プリフェッチ - Wikipedia
SIMD 演算におけるキャッシュ制御方法とか - kawa0810 のブログ
ASCII.jp:キャッシュの実装方式から見える AMDとインテルの置かれた状況 (2/3)|ロードマップでわかる!当世プロセッサー事情
プリフェッチのサポート

Profile Guided Optimization

Hideyuki Tanakaさんのツイート: "profile guided optimizationをRustでやるやつらしい(´・_・`) / “GitHub - Geal/pgo-rust: Testing LLVM's profile guided optimizat…” https://t.co/Skcuk2aauP"
Hideyuki Tanakaさんのツイート: "profile guided optimizationをCargoのサブコマンドとしてお手軽にできるようにするやつみたい(´・_・`) / “GitHub - vadimcn/cargo-pgo: Supercharge you…” https://t.co/AoA3QjaQUX"
Hideyuki Tanakaさんのツイート: "実際んとこprofile guided optimizationってそんな速くなんの?(´・_・`)"
Hideyuki Tanakaさんのツイート: "2,3割も速くなるケースもあるみたいだけど自分でやってそんな速くなったためしないんだよなあ(´・_・`)"
[Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
Profile-guided optimization - Wikipedia
Profile Guided Optimizationが.NET Coreでも利用可能に
rigayaの日記兼メモ帳 x265 ビルド ~ Visual Studio PGOビルド
koie blog : PGO: Profile Guided Optimizationをためしてみた
[Options (オプション)]: [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
ガイド付き最適化のプロファイル
15%の高速化を達成。Windows版「Google Chrome」でMicrosoftのPGO技術が採用される - 窓の杜
Rust で Profile-Guided Optimization やってみた - はやくプログラムになりたい

x86 C

相沢陽菜さんのツイート: "この間、「x86ターゲットだと謎の計算式に置き換えられるけど、ARMだと普通に計算されちゃう。謎の計算式のほうが速いとおもうけど、最適化のための重み的なのあってるのかなこれ」みたいなことを某学生がいってた"
相沢陽菜さんのツイート: "intの変数を定数でわる関数とか作ってO3とかかけるとなぞの処理になるんだよ(なぜそうなるかはよく考えるとわかるらしい"
相沢陽菜さんのツイート: "コンパイラ「 movl %edi, %eax movl $1717986919, %edx sarl $31, %edi imull %edx sarl %edx subl %edi, %edx movl %edx, %eax ret 、はい、5で割れました」 PG「は???」"
hoge.c

Polly

Hideyuki Tanakaさんのツイート: "これなんだろ(´・_・`) / 他1コメント https://t.co/qAZ1G8NXkr “Polly - Polyhedral optimizations for LLVM” https://t.co/l3yHixsSwP"
はてなブックマーク - Polly - Polyhedral optimizations for LLVM
Polly - Polyhedral optimizations for LLVM
Hideyuki Tanakaさんのツイート: "https://t.co/MyJn2qXtl0 ここのグラフ観てるとpollyに掛けるだけでGEMMのコードが死ぬほど早くなってるけどそんなことできるなら使ってみたいしPEZY-SCで動かすコードに簡単に使えたりせんのかな"
Hideyuki Tanakaさんのツイート: "普通に書いたら当然だけどGEMM全然性能出ないみたいだけどpollyに掛けるだけでたぶんハンドチューンされたBLASとかの2割引きぐらいの性能になるとかすごすぎんよお…"
Hideyuki Tanakaさんのツイート: "“Polyhedral Compilation Techniques”なんてのがあるのか / “IMPACT 2017 - International Workshop on Polyhedral Compilation Tec…” https://t.co/qh3AYAad0E"
IMPACT 2017 - International Workshop on Polyhedral Compilation Techniques

マルチグレイン並列処理

マルチグレイン並列処理
ipsj2003_1.pdf
高速化 | オスカーテクノロジー株式会社
IPSJ-ARC02150007.pdf
マルチグレイン並列処理の意味・用法を知る - astamuse
マルチグレイン並列化技術 オスカーテクノロジー | イプロスものづくり

自動ベクトル化

自動並行化と自動ベクター化
SIMD - primitive: blog
Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム - HPC/並列プログラミングポータル - OSDN
コンパイラー最適化入門: 第4回 自動ベクトル化はどんな時に行われるか | iSUS
自動ベクトル化の使用
ロボ太さんのツイート: "環境やターゲットに強く依存するのだと思いますが、科学技術計算に話を限ると、そんなに「コンパイラが賢いコードを吐く」印象はないですね・・・。わりと残念なコードを吐いててがっかりすることが結構あります。ただ、x86系では(他の石に比べて)特異的にコンパイラが賢い印象があります。… https://t.co/AopKgh6kl3"
SODA Noriyukiさんのツイート: "SIMD命令まわりの使い方の話かな?"
梅澤威志/ゆーむさんのツイート: "自分が書きたい分野(画像処理)のコード(のベクトル化)だとコンパイラが全く当てにならないので結果として人間(=俺)がintrinsicで適当に書いたコードの方が圧倒的に速くて悲しい>RT https://t.co/OjAjEKizyI"
ロボ太さんのツイート: "DEC Alphaはコンパイラが賢かった記憶があり、Cell/B.E.は触ったことないけどコンパイラがまともなコードを吐ける気がせず(違ったらすいません)、逆にIA64的なVLIW系ではコンパイラより賢いコードをかける気がしないので、石というか、ベンダーのコンパイラ部隊のやる気に強く依存している気が・・・。"
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi こちらは 2015年の Cray User Groupでの Sandia National Labによる Intel・Cray・gccコンパイラの x86ベクトル化の比較報告です https://t.co/3xpbYCAXjX TSVC (Test Suite for Vectorizing Compilers) Benchmark LCALS (Livermore Compiler Analysis Suite) Benchmark… https://t.co/KNYzaZGc2s"
インテル® Advisor ユーザー向けベクトル化リソース | iSUS
2018年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
Elixir におけるC言語コード生成・最適化の試み - Speaker Deck

最適化レポート

えびちゃんさんのツイート: "わけわからんすぎる コンパイラしゃんは最適化するときに「これはこんな理由でこんな風に最適化できるんだよ〜」ってコメントをつけといてほしい"
TIke / Ti11192916さんのツイート: "gcc って最適化レポート吐けませんでしたっけ… "
えびちゃんさんのツイート: "うーん、別物を見ていそう(Intel 製だと -opt-report があるらしい?) ループをアンロールしたよ、とかベクトル化したよ、とかくらいの簡素なものしか出なかったです… "

C++ vtable

島鉄雄さんのツイート: "vtable の中身ってインスタンスが生成された時点で決まってるし、オフセットも定数だから、ストールとか発生するはずが無いと思われる。 仮想関数呼び出しが遅く感じるのは、インライン化されない影響の方がデカい気がする。… "
Masayuki Ishikawaさんのツイート: "大昔C++を初めて使い始めた時、会社の先輩がC++の呼び出しオーバーヘッドが気になるって言われた事があります… "
iruka3さんのツイート: "仮想関数のvtableをなるべく手前でloadするようにコンパイラ(か、人間)が工夫するしかないです。 分岐先が直前まで未定のjmpやcallはストールせざるをえない・・・… "
iruka3さんのツイート: "C言語で書けば、(アルゴリズム的に無駄やってないなら)今のCPUは十分早いです。 問題は、C++で仮想関数使い始めてからですねぇ・・・ (呼び出しがレジスタ間接になるけど直前にしかロードされないので投機出来なくてストールとかそんなやつです)… https://t.co/xcVHtcwU4y"
島鉄雄さんのツイート: "パイプラインがストールする案件ってのは、飛び先が分からないからじゃなくて、フェッチした飛び先が実際にジャンプする前に書き換わった時でしょ? フェッチからやり直しになるのをストールという。 vtable の中身は書き換わる事が無いから、ストールしないよ。… https://t.co/XC0Kvm0gMu"
iruka3さんのツイート: "その通り >vtable の中身ってインスタンスが生成された時点で決まってる vtableから、呼び出し先アドレスを得るフェッチをするまで飛び先が分からないので、CPUの命令フェッチパイプラインがストール C++コンパイラが、これを先回りロードしてレジスタに保持出来ればいいけど、そうなるとは限らない… https://t.co/KZv7bsFUoV"
iruka3さんのツイート: "https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); CPUの命令フェッチパイプラインの問題だけであって、命令ステップ数的には、べつにどうということはない感じ"
[雑記] 仮想関数テーブル - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
iruka3さんのツイート: "もしかしたら今のintel CPUは間接分岐命令のアドレス予測をやっているのかもしれないけど。"
島鉄雄さんのツイート: "0:フェッチ→解釈  →実行  →書き戻し 1:解釈  →実行  →書き戻し→フェッチ 2:実行  →書き戻し→フェッチ→解釈 こんな感じでパイプラインがオーバーラップしてるけど、0は実行するまでに2が何かを書き換える可能性があるから、2次第では0はまたフェッチからやり直しになる"
島鉄雄さんのツイート: "フェッチからやり直しになるストールは発生しないけど、プリフェッチがされてなくてL1キャッシュミスでストールするという事を言いたかったのか。 それ言ったら、C++はobj->child->data->func()みたいな長い間接参照しつつ関数呼び出しされまくるからvtableだけ特別遅いとも思えない。… https://t.co/crdPdwLPJt"
iruka3さんのツイート: "それはそうなんですけど、 https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); を普通にマシン語で並べると、呼び出し先アドレスをレジスタに取ってきて、間接call発行なので、命令プリフェッチが効かない場合が多いのです。… https://t.co/DmeaHkGBs8"
iruka3さんのツイート: "仮想関数を呼び出すクラスがほぼ固定されていたら、分岐予測キャッシュに溜まる可能性が高いですけど、多態性を多く持たせている(呼び出される可能性のあるクラスが沢山存在する)場合はそうでもないとかそんな感じ"
島鉄雄さんのツイート: "auto data = obj->child->data; data->func1(); data->func2(); の方が速そうだけど一々手間なんで obj->child->data->func1(); obj->child->data->func2(); と書くけど、これはコンパイラが最適化してくれてるはず。 それと同じで同じオブジェクトの連続した仮想関数呼び出しも最適化されてるはず。"

エスケープ解析

エスケープ解析 - Wikipedia
Golang エスケープ解析 - Qiita
Javaのエスケープ解析についていろいろと実験してみる - Qiita
Java HotSpot仮想マシン・パフォーマンス向上
Linuxはじめました & エスケープ解析の検討 - miura1729の日記
エスケープ解析による御利益: #include <fujita.h>

Self

Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 動的型付け言語の最適化だとselfで用いたテクニックが大体標準かなって思います。動的も静的もLLVMのような話は過去一杯あったけど失敗しています。LLVMはありったけのリソースを投入できるので、静的だからではなくLLVMだから成功したのだと思います。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 これですね。勉強になる。 https://t.co/OufsOKRhTO 静的型だとどの言語でも似たような中間表現に変換しうるようなイメージがあるんですが、私の勘違いなんですかね。データの持ち方も基本的には共通のような。」 / Twitter
A Self Bibliography — Self Papers 4.5.0 documentation
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 SSAが出来てからはそれに収束した感がありますね。その前はいろいろバライティに富んでいましたが。おそらく動的型付き言語もSSAに収束すると思います。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 SSAは様々な最適化に適した中間表現と思いますが、もっと素朴な奴でも動くもの(かついろんな静的言語からコンパイルできるやつ)は作れそうに思います。動くけどネイティブの処理系より遅いので意味ないよね、ていうのがLLVM登場以前の話だったのですよね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おお、selfの論文がまとまっているページがあるんですね。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 動的型はオブジェクトの(最適な)内部表現が言語仕様によって異なる(例えばRubyとJS)ので、SSAの手前の段階で既にunifyするのが厳しいんじゃないか、という気がします。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おそらく、色々な言語に対応しようとするとバカでっかくなり、その開発に耐えられなくなるってのが大きいと思います。LLVMってすごくたくさんの機能や命令があるわけですが、結局そういうのが必要になってくると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 そうでもないと思ったのですが、考えてみると得意分野によって高速化するデータタイプが速くなるように内部表現を変えますね。この辺を抽象化するって言う手はありますけど(mrubyがそうやっているように)」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 A + B みたいな基本的な演算でもAやBの型によって全く違うことやるわけですから、どの言語でも共通に使える(かつ高速な)フレームワークを提供するってのはなかなか困難ですよね。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 その通りと思いますが、動的型だと「そのバカでかくなり具合」がより一層爆発的なものになる気が。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 確かにそうかもしれない。本当の所はどうなのか気になります」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 動的型、静的型関係なく対応すると称しているGraalVMとかありますよね。どうなってんだろう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 GraalVMですか。すごいですね。もし、RubyKaigiで開発者の方がお見えになるならお話したい(どうやって?)ですけど、RubyKaigiがあるのだろうか・・・」 / Twitter

mem2reg

LLVM 6.0 で作るフロントエンドの道しるべ - Qiita
7.3. LLVMにおけるメモリ – 日曜研究室
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@esumii mem2regもLLVMオリジナル版とCoq版で生成されるコードの性能はほぼ同じ(LLVMオリジナル版は内部allocaも知ってるので僅かに有利)。LLVM -O3と-O1はあまり変わらないがmem2regはかなり速くなるので重要(だからCoqで実装&証明した)」 / Twitter
きつねさんとおぼえるLLVM の訂正個所【2013年2月24日追記】 - 餅ちゃんの備忘録
最適化抑制属性(optnone) - Design x Verification
clang - LLVM SSA形式を生成する方法 - ITツールウェブ
Rui UeyamaさんはTwitterを使っています 「@uint256_t mem2reg、定数式畳み込み、レジスタ割り当てくらいがあれば、めちゃくちゃ素直でナイーブなフロントエンドでも普通によいコードが出せるのではという気がしてる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t 計算の途中結果は全部メモリ上の変数に書き出していって、変数は使い捨て。明らかな冗長さは定数式畳み込みで消えるからフロントエンドではまったく気にしない。みたいな方針でなんとかなるんじゃないかなと。(僕がいま作っているのも)」 / Twitter
h_sakuraiさんはTwitterを使っています 「mem2regの後半の処理の本質はmutableな基本ブロックからimmutableな基本ブロックに変換するCPS変換なのだな。 https://t.co/WKSV0XCSLw」 / Twitter
120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita

レジスタ割付

SSA

uint256_tさんはTwitterを使っています: 「#cilk なんか動かないなぁと思ってたら,関数呼び出しをまたいで使用されるvregの保存を実現するために呼び出し前にスタックに退避・後で新しいvreg(SSAなので)に代入してたけど,古いvregのuseを新しいので置き換えるときにbasic blockにループが存在する可能性のことを考えてなかった」 / Twitter
uint256_tさんはTwitterを使っています: 「レジスタ同士を紐付ければいいのかしら」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t Basic block でループがあるとは?」 / Twitter
uint256_tさんはTwitterを使っています: 「@zacky1972 これで伝われば嬉しい: https://t.co/i85rxk6LWN」 / Twitter
problem.txt
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t φを用いないんですか?」 / Twitter
uint256_tさんはTwitterを使っています: 「@zacky1972 どこでどのように使うと良いのでしょうか」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t まず Wikipedia の説明を読んでください。 https://t.co/WVqdkKgYLK」 / Twitter
静的単一代入 - Wikipedia
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t たぶん,こんな感じ? https://t.co/bT9aeZDCgo」 / Twitter
solution.txt
uint256_tさんはTwitterを使っています: 「@zacky1972 わざわざありがとうございます.phi自体はすでに理解できていたみたいです. 物理レジスタ割り当てのことで頭がいっぱいで,phiを使ってコードをまとめ直すことができるという考え方が浮かびませんでした.」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t SSAではphiは基本なので,活用してください。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t 「Basic block にループが存在する」という表現は矛盾している (なぜならば basic block はループを含まないというのが定義だから) ので,表現は正確に。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t この例では「basic blockを複数つなぎ合わせてループを構成する」が正しい表現ですね。」 / Twitter
uint256_tさんはTwitterを使っています: 「basic block '間' にループがある」 / Twitter
ssa-nyumon.pdf
monochromeさんはTwitterを使っています 「@zacky1972 ああ、それはそうですね。ASTをバイトコードに落とす前の段階でSSAっぽいIRを挟んでおき、インタプリタ用にはバイトコードへコンパイル、JITする場合にはSSAに戻って機械語へコンパイルするイメージでした。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 SSAだと評価の途中結果がID付きでずらっと(仮想レジスタとして)並ぶ形になるので、型(RubyなのでClass)の評価がやりやすいのかな?という想像です。 動的型付け言語の場合、型の推論とかプロファイリングが重要かつ一番の難関と考えてますので。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 あとは、一時的に使用されて捨てられるオブジェクトと、生き残るものが明確になるという点もあるかなと。 というのも、アロケーションのコストとGCへの負荷を下げる意味でも、捨てる値が分かってると有り難いんですよね。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 つまり、a-eが文字列のようなヒープアロケートされるオブジェクトだとして、 a = ((b+c)+d)+e みたいな処理があった場合、b+c、b+c+dという2つのオブジェクトが生成され、評価完了とともに不要になります。これらを後からGCで回収するのではなく、その場で開放したい、というモチベーションです。」 / Twitter
Modern Compiler Implementation in C 19章後半(451ページから) - ppt download

Wikipedia

和集合 - Wikipedia
数学記号の表 - Wikipedia
レジスタ割り付け - Wikipedia
データフロー解析 - Wikipedia
Data-flow analysis - Wikipedia
制御フローグラフ - Wikipedia
Control flow graph - Wikipedia

Set
東北大学電気通信研究所 大堀・上野研究室 - レジスタ割り付け
電子情報通信学会知識ベース |トップページ
06gun_03hen_03.pdf
8-w.pdf
www.cs.is.noda.tus.ac.jp/~mune/master/10/m2010.pdf
www.is.titech.ac.jp/~sassa/lab/papers-written/08B24652-mori.pdf
データフロー解析(DFA)とはなんですか? | 東陽テクニカ
フロー解析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社
Compiler Construction Lecture 2/1
コンパイラ講義をなんとなく監視 - Togetter
レジスタ割り付けをしたい(1)データフローを作る - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
レジスタ割り付けをしたい(2)生存情報を求める - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
Liveness Analysis - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
累積レジスタ割付による仮想マシンの高速化 - 一人一党党
LLVM Register Allocation (2nd Version)
LLVM Project Blog: Greedy Register Allocation in LLVM 3.0
dominance frontier - Google 検索
iterated dominance frontier - Google 検索
uint256_tさんはTwitterを使っています 「Dominance frontier, いまは愚直に求めてて遅っいから改善したい (llvmが使ってるアルゴリズムの論文読むのが早い」 / Twitter
uint256_tさんはTwitterを使っています 「LLVMが使っているアルゴリズムの論文に書いてある手法をそのまま実装すると遅いよなあ, と思ってLLVMのコードを見てみたら, より良い手法が使われていた時の気持ち.」 / Twitter
Yatsina-LLVM Greedy Register Allocator - Yatsina-LLVM Greedy Register Allocator.pdf
uint256_tさんはTwitterを使っています 「dominator treeのrootから下へ降りて行って, ある時に注目しているnode dominates its predならloop?」 / Twitter
uint256_tさんはTwitterを使っています 「reducibleなcfgでloop検出, まだ理解できていない」 / Twitter
mem2regを解説してみる - Qiita
静的単一代入形式を用いた最適化(導入編)
A linear time algorithm for placing φ-nodes | Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Rui UeyamaさんはTwitterを使っています 「@uint256_t これって常にSSA形式になってるようにやってるんだと思うんですが、SSAじゃなくなるように単純に書き換えてからSSAに戻すアルゴリズムを走らせるのと比べてどっちがいいんですかね?」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 storeやload は元々SSAからはみ出しているような気がしますが, それ以外の部分も先にSSAじゃないように書き換えるということでしょうか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t レジスタも複数回代入してもいいからとりあえず変換してしまって、その後でSSA形式に再度戻すというやり方もあると思うのですが(それがいいかどうかは別問題で)。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 再度SSAに戻すと言う操作それ自体がmem2regに相当するのではないかと思いました (見当違いだったらすみません)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t そうか、たしかに。」 / Twitter
DrumatoさんはTwitterを使っています 「虎本だとIR生成とベーシックブロックの生成を別のフェーズでやっているような記載があるんだけど,確かにこのほうが実装しやすい気もするな.」 / Twitter
LLVM Spiller 关键代码剖析_Enorsee的博客-CSDN博客_inlinespiller
Partitioned Boolean Quadratic Programming (PBQP)
uint256_tさんはTwitterを使っています 「SATソルバで最適なレジスタ割付をできたとしても, 現実は厳しいのであんまり速くならない」 / Twitter

CFG

gccを使って、制御フローグラフを作成 - Qiita
_pdf
制御フローグラフ - Wikipedia
無限ループ - Wikipedia
201303tanabe.pdf

PDG

26_3_109.pdf

グラフ書き換え系

グラフ書換え系 - Google 検索
33_1_126.pdf
uint256_tさんはTwitterを使っています 「あまり関連性はなさそうな気もしますが,詳しくないのでよくわかりません.色々なCFGがあったときにそれらが同型かを判別できると便利そうですが,最適化に使えるのかなあ. #マシュマロを投げ合おう https://t.co/3qYCxCoxdJ」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t 僕の先輩でCFGの同型性判定に基づいてコードクローンを見つけ出し、他のコード最適化に利用するってことをやってる人がいました。 詳しいところは忘れてしまいましたが。」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど,関連性は一応ありそうですね.ありがとうございます」 / Twitter

blog

RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo
ソフトウェアパイプラインの手書きをDRYで行う - Fixstars Tech Blog /proc/cpuinfo
ソフトウェアパイプラインを考えてみる - Fixstars Tech Blog /proc/cpuinfo
x86/x64最適化勉強会7 で発表しました - Fixstars Tech Blog /proc/cpuinfo
DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
x86/x64最適化勉強会7レポート | Cybozu Inside Out | サイボウズエンジニアのブログ
Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
SIMD vectorization for the Lennard-Jones potential with AVX2 and AVX-512 instructions - ScienceDirect
Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
Cコンパイラの末尾呼び出しを活用した 効率的命令ディスパッチ手法の研究開発
高性能プロセッサの分岐予測のサーベイ論文を読んで分岐予測について学ぶ (4. 予測が難しい分岐のための分岐予測器) - FPGA開発日記
日記 (2019 年 10 月下旬)
コンパイラの最適化や解析手法の論文のサーベイ - Jicchoの箱~情報系大学院生の備忘録~
自作Cコンパイラができつつある報告的な。 - Jicchoの箱~情報系大学院生の備忘録~
Swiftにおける所有権付きSSA形式 | メルカリエンジニアリング

スライド

SIMD化とは何か / Basics of SIMD - Speaker Deck
人間でもわかるLLVMバックエンド入門 // Speaker Deck
Elixirにおける データ並列スケルトンに基づく SIMD並列化の性能評価 - Speaker Deck
Microsoft Word - coins-rensai-ssa-transbacktrans-57.doc
Pelemayの ARMアーキテクチャとNervesへの適用 - Speaker Deck
並列プログラミング処理系Pelemayの ARMアーキテクチャと IoTプラットフォームNervesへの適用 - Speaker Deck
融合変換による最適化の理論的基盤と正当性 (2006-06-27)

Qiita

MDループのソフトウェアパイプライニング:ステップ・バイ・ステップ - Qiita
インテルコンパイラのアセンブル時最適化 - Qiita
関数ポインタと関数オブジェクトのインライン展開 - Qiita
定数配列がからんだ定数畳み込み最適化 - Qiita
ZEAM開発ログ2018年総集編その2: Elixir 研究構想についてふりかえる(後編) - Qiita
WASM3の末尾呼び出しVMがかしこい - Qiita
C++コンパイラはあなたよりも良いコードを書く - Qiita
最適化コンパイラを作りたい人にとって必要な解析器の数学的基礎を与えてくれそうな An Introduction to the Theory of Optimizing Compilers の斜め読みのしかた - Qiita
最適化コンパイラへのいざない (1) - Qiita
最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita
最適化コンパイラへのいざない (3) 定数に関する最適化 - Qiita
最適化コンパイラへのいざない (4) プログラムの構造 - Qiita
オーバーライドされた仮想関数にまつわる最適化 - Qiita

Wikipedia

Interprocedural optimization - Wikipedia
Category:コンパイラ最適化 - Wikipedia
Category:ソフトウェア最適化 - Wikipedia

Twitter

LICM

uint256_tさんはTwitterを使っています 「#sericum LICMしてもstoreとかloadが移動してくれないから、そんなに速くならない。早くエイリアス解析を実装しないとどうしようもないね。」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t エイリアス解析をしなくても、load命令で読み込む先のメモリ番地にあるデータを変更するような命令があったらkillするというような保守的なデータフロー解析をすれば、LICMできますよ。」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 確かにそうですね。 (最終的にエイリアス解析をパスのような形で実装しないと、後々面倒だよなぁと考えていました)」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t まぁエイリアスを全部解析するのは中々難しいですね😔」 / Twitter

PGO

κeenさんはTwitterを使っています 「面白い。Rustコンパイラ自身をPGOで高速化する試み。rustcはRust部分とC++部分(LLVM)がありちょっと複雑だができなくはないと。十数%高速化するらしい。 Exploring PGO for the Rust compiler | Inside Rust Blog https://t.co/JXDhAkaICU」 / Twitter
Exploring PGO for the Rust compiler | Inside Rust Blog
κeenさんはTwitterを使っています 「PGO(Profiler Guided Optimization)はコンパイルしたコードを一度走らせてみて遅い部分などを特定してそこを重点的に最適化するよう再度コンパイルする仕組み。その複雑な仕組みから公式配布するrustcのコンパイルに使うのは簡単ではなさそうと.」 / Twitter
κeenさんはTwitterを使っています 「1つ注意しておくと、これはrustc自身をPGOで最適化する話。普通のRustのコードのPGOは既にサポートされてるよ。 Profile-guided Optimization - The rustc book https://t.co/h0mUbn6pSC」 / Twitter
Profile-guided Optimization - The rustc book
ガイド付き最適化のプロファイル | Microsoft Docs
プロファイルに基づく最適化の概要

basic block parameter

uint256_tさんはTwitterを使っています 「basic block parameters を知りました.Phiより良いかもしれませんね.」 / Twitter
uint256_tさんはTwitterを使っています 「#cilk 難しい. basic block parameter を実装しようとしたけど, そもそもbasic block間をまたいで使われる変数が許容されなくなるのか. だから data-flow analysis しやすい,と. extended basic blockに以降したほうが良さそうだし, 色々仕様を変えないと実現できなさそう.」 / Twitter
uint256_tさんはTwitterを使っています 「#cilk とりあえず, PhiとAllocaだけ扱いを変えよう.」 / Twitter

関数分割

7594591200220899443さんはTwitterを使っています 「あっ、関数を勝手に二個に分けてコールドパスっぽい箇所を別のセクションにしちゃうやつだ。2.33% runtime improvement with a ~32% reduction in iTLB and sTLB misses 強いなー」 / Twitter
Hacker News 200さんはTwitterを使っています 「LLVM merges machine function splitter for reduction in TLB misses https://t.co/9m4HHQIPZ4 (https://t.co/4xFIgNV2mz)」 / Twitter
[llvm-dev] [RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
LLVM merges machine function splitter for reduction in TLB misses | Hacker News
_ko1さんはTwitterを使っています 「@shyouhei Unlikely にレベルが欲しくなるね...」 / Twitter
7594591200220899443さんはTwitterを使っています 「@_ko1 えっ、普通にありますけど…」 / Twitter
7594591200220899443さんはTwitterを使っています 「@_ko1 https://t.co/T7PYXyxYoT __builtin_expect_with_probability」 / Twitter
Other Builtins (Using the GNU Compiler Collection (GCC))
_ko1さんはTwitterを使っています 「@shyouhei gcc 9 からか」 / Twitter
ドッグさんはTwitterを使っています 「LLVM にこんなパッチ出てたのか.profile data から関数の中で cold なパスを見つけ,リンカがそれらのコードを関数の外にまとめて配置.hot なパスの凝縮度が上がってキャッシュ効率が上がる.2%以上のパフォーマンス改善 | '[llvm-dev] [RFC] Machine Function Splitter' https://t.co/3JEoJZ71DL」 / Twitter
ドッグさんはTwitterを使っています 「Google では profile data driven なアグレッシブなインライン化をやっていて,それによってコードの肥大化と実行コードの fragmentation がひどくなっていることの対策.最も hot な関数のコードの実に50%は(hot なのでキャッシュに乗ってるにも関わらず)実際は実行されてないらしい」 / Twitter

支配木

先にcritical edgeを除去

uint256_tさんはTwitterを使っています 「途中でブロックを追加したりするから支配木を再計算しないといけない. 効率が悪いので良い方法を探したい」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t 先にcritical edgeを除去しておくってのはどうでしょう?」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど. ループのヘッダを計算しなくても critical edge を除去することはできますね. ありがとうございます」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 (ループのヘッダを計算するのは, プリヘッダを追加するため)」 / Twitter

uint256_tさんはTwitterを使っています 「CFGで,ブロックxからブロックyへの経路があるかっていうのはどうやって調べるのでしょうか 支配木を使って, xがyを支配する or xの支配辺境がyを支配する, でいいんだろうか」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t それだと2回流入があるケースに対応できないです。 \ \ x--df1--df2-y xがyを支配する or xの支配辺境の支配辺境の…と辿った集合がyを支配するの条件が必要です。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold なるほど. それ以上簡単に判別する方法はないのでしょうか」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t これ以外ないかと言われると自信ないですが、支配木を使ったアルゴリズムは私はこれしか知らないです。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold ありがとうございます.」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t 余談ですが支配辺境の支配辺境の…と辿った集合はiterated dominance frontier(反復支配辺境?)という名前がついているそうです。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold 聞いたことあります. なるほど, こういう場合に役立つのか...」 / Twitter
Basic Block Reordering - GNU Project - Free Software Foundation (FSF)

BOLT

uint256_tさんはTwitterを使っています 「BOLT: a practical binary optimizer for data centers and beyond」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t 並び替えるだけでこんなパフォーマンス変わるとは。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t あとディスアセンブルして並び替えてアセンブルすると元と同じように実行できるバイナリになるっていうのが結構すごい(細かいところを実装するのが大変そう)。」 / Twitter

PRE

uint256_tさんはTwitterを使っています 「partial redundancy elimination よくわからない.これもdominator treeとか使えば綺麗に実装できるのだろうか」 / Twitter
uint256_tさんはTwitterを使っています 「なんか先にglobal value numberingの事を考えた方がいい気がしてきた」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t PREの一つであるLazy Code Motion(LCM)の実装方法が、以前に紹介したBuilding an Optimizing Compilerに載ってますよ。まずLCMの元の論文を読んでみてもいいかもしれませんね。PREはド専門なので、わからなかったら是非聞いてください(^^)」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 ありがとうございます.(今コンパイラの構成と最適化を読んでいて,SSAの場合どうするのが楽なのか考えていました)」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t SSAPREという手法が実は既に提案されています。ちょっと自分で考えてみてから論文を読んでみるといいかもですね。 https://t.co/AK8cMSBIst」 / Twitter
A new algorithm for partial redundancy elimination based on SSA form | ACM SIGPLAN Notices

in-order 発行+out-of-order 完了

R. ShioyaさんはTwitterを使っています 「去年ぐらいから in-order な CPU(正確には in-order 発行+out-of-order 完了)の性能解析をする機会がちょくちょくあって,out-of-order な CPU との性能差の要因の1つとして,分岐命令の処理方法の違いが大きいってのがあんま本とかでは見た覚えがなかったので面白かった」 / Twitter
R. ShioyaさんはTwitterを使っています 「out-of-order 発行だと,分岐命令はディスティネーションがないので(予測が当たっている限りは)全体の実行を遅らせることは基本ないけど,in-order 発行だとロードに依存する分岐とかは依存元の値が取れるまで発行を止めないといけないので,ここで性能差がごりごり出ることが多い」 / Twitter
R. ShioyaさんはTwitterを使っています 「分岐予測が当たってる限りは分岐命令は性能に影響与えないよねとか思っちゃうんだけど,それとは別に in-order 発行の場合は真の依存があると止めないとダメだってのがあって,当たり前ではあるんだけど見落としがちな感じ」 / Twitter

@telmin_orca

Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「「この位置にprintfが無いとなぜか動かないんだ。」 https://t.co/Crr7nvXnJg 注釈の解説が本編だった。 恥ずかしながらTSTの中にもこれと大差ない(副作用に期待した)コードがある。「ここで一回イベントループを終わらせてFirefox側の処理完了後に回さないと動かない」とか。」 / Twitter
「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
富岳てるみさんはTwitterを使っています 「これと直接同じ話ではないけど、コンパイラが賢いせいでスタックを大量に消費するから最適化を無理やり切るために変なブロックを打ち込むとか、レジスタを消費しすぎて割り付けの自由度が著しく低下してるから関数に切り出すとか、世の中には色々辛い話がある(?)」 / Twitter
富岳てるみさんはTwitterを使っています 「最内ループでスピルしまくると涙ちょちょぎれちゃう」 / Twitter

histric

histric-1

とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
satさんのツイート: "perf最強です。もう頭が上がらない… "
まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"

histric-2

histric-3

C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t PLDI, CGO あたりを読むのが良さそうですが,どうでしょうか?」 / Twitter
FadisさんはTwitterを使っています 「LLVMに新しい最適化パスMachine Function Splitterが提案されている。この最適化は関数の中の実行される可能性が高そうな部分と低そうな部分を分離し別々のsectionに吐く。実行される可能性が高いマシン語の列が密に配置され命令キャッシュのヒット率が上がり、性能が向上する https://t.co/soUjc9eLmA」 / Twitter
Google Engineers Propose "Machine Function Splitter" For Faster Performance - Phoronix
Fadisさんのツイート: "gccに新しい最適化フラグ-O1gを追加しようという提案がなされている。-O1gでは-O1で行われる最適化のうち、デバッガで覗いた時に悲しみが溢れる物を除外した最適化を行う。最適化するとデバッグが捗らないけど、最適化しないと遅すぎてデバッグが捗らない時に役に立ちそう https://t.co/woaqbvpahc"
New "-O1g" Optimization Level Proposed For The GCC Compiler - Phoronix
chikoskiさんはTwitterを使っています 「仮定をいくつか置くことでも最適化できる。例えば、今見てるアドレスよりも引くアドレスにはアクセスしないという仮定ができれば、アドレスの足し算を消して、オフセットを使ったメモリアクセスに書き換えられる。これも効く」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "「共用体メンバ」じゃなくて、「共用体メンバのうち、アクセスが無いメンバ」だな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、gcc側の問題のような気も。似た落とし穴に嵌る人も多そうだなぁ…"
ゆたかさんさんのツイート: "Infinibandドライバでstruct sockaddrのアクセス方法が変更となりましたが、元のコードだとなぜダメなのかよく分かりませんでした。共用体は沼が深いです。 × &sgid._sockaddr ○ (struct sockaddr *)&sgid https://t.co/ZYTCUvG3iI #カーネルパッチ勉強会… https://t.co/INOsrww15L"
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 ローカル&static関数でしかアクセスしない共用体メンバは、存在しないものとして最適化が走るんだろうなぁ。… "
とみながたけひろさんのツイート: "https://t.co/gKiaPJMdZ3 コンパイル時間との絡みでどこまでやるかよく議題になる定数・値域伝搬最適化ですな。 f(a,b){int r=a;while (++a<b) r*=a; return r;}はa<0<bとかだと0にできるけど、やります?みたいな"
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
Kazuho Okuさんのツイート: "「コンパイラは、異なる型の仮引数についてaliasingされているとは考えなくてよい」っての、割と一般的な strict aliasing の説明だったと思うけど、それが問題になってるの..."
Kazuho Okuさんのツイート: "Cに落とすことで実装さぼりたいという意図で言うと、aliasingで最適化無効になるの避けたいしスタックベースの中間表現さけたいのはよくわかる"

histric-4

κeenさんのツイート: "「SSAをハッシュして持っとくと共通部分式が見付けやすい」へー。 #compiler_study"
κeenさんのツイート: "「SSAだとGlobal Variable Numberingがやりやすい」 #compiler_study"
κeenさんのツイート: "link time optimizationとwhole program optimization、LTOの方がコンパイル時間が短いけど諸々の理由で中間ファイルにメタデータを埋め込めなかったらWPOになっちゃうよね。"
もっちぃさんのツイート: "形式検証では不変量の自動抽出が鍵になり、Invariant is holy glory of formal verification なんて言われます。で、この不変量、当然最適化にも利用可能です。その意味で、最適化と形式検証は表裏一体であり、ともに協調して発展していく事が大事です https://t.co/BCYQa4kkwM"
Kazuho Okuさんのツイート: "スタックをグローバル配列じゃなくローカル変数な配列でもつようにしたら速くなるはず... っていうけど、そもそも遅いのはエリアシングじゃないのかな。だとすると、ローカル変数な配列にしても関数呼出が発生しうるパスがあるとダメな気がするけど"
もっちぃさんのツイート: "値番号に基づく部分冗長性除去 https://t.co/7PceHkvgGO https://t.co/uoYsZdcu0q #compiler_study"
herumiさんのツイート: "岩永さんによる最近のC#の概要。stackalloc, Span構造体, ref周りの拡張など、C++が無法地帯からなんとか安全な方向を目指すのと逆向きでC#が安全なところからぎりぎりを攻める感じが面白い。if (uint)x < y)みたいな最適化を2018年に見るとは思わなかった。https://t.co/QBcf7GtiNu #decode18 #ad19"
Jacob Torreyさんのツイート: "Still one of the strangest things I've learned from the x86 manuals. ADDING dead/redundant code will improve prefetching and overall performance!… https://t.co/ne5YEHo3oc"
Nerry@さんのツイート: "いまどきのCPUはほぼOoO動作していて、そのとき空いてるユニットにぶち込んで依存性のない命令はどんどん勝手に実行されていくのに、命令生成の段階で命令の順序に気を配る必要性あるんだろうか?"
Nerry@さんのツイート: "いくらコンパイラが頑張って命令配置してもCPUが無理って思った命令は後回しにされるし逆に行けるって思った命令はどんどん実行されちゃうから並べ方に気をつけても???"
Nerry@さんのツイート: "いくらコンパイラが頑張って命令並べてもCPUのOoOの方が優秀で重要ってのがVLIWの知見なわけで…"
hsjoihsさんのツイート: "「言語仕様を盾に、コンパイラが非直感的な最適化をどんどんしてくるようになってきた頃から」なのでは、というのはいろんな話を聞いていて思う… "
デダルス・ユメノさんのツイート: "あるスーパープログラマが「最近の若い人は言語仕様に拘るよね、昔はコンパイラが仕様に従ってないことがざらにあって、現物でちゃんと動くコードを書く(たとえ仕様違反でも)ことに価値があった。」と言っていたのを思い出した。いつ頃から言語仕様が神格化されたのか。"
hsjoihsさんのツイート: "時系列的にはこっちの要素の方が先かも https://t.co/lQ8HkmTHp7"
yoh2さんのツイート: "「現物でちゃんと動くコード (言語仕様違反)」がコンパイラのバージョン違いで動かなくなる地獄に遭遇したからだよ。 かと言って言語仕様通りでもコンパイラのバグで動かないことも稀にあるので、言語仕様+コンパイラの独自拡張通りかつ現物で動くものが大事。 https://t.co/41hEhHEt2p"
電子計算機の沼さんはTwitterを使っています 「ちなみに自動並列化・最適化されてほしいねえという話をさっきからしていますが... 最適化や並列化をすると演算順序の変更により誤差の入り方も変わって答えが変わって...みたいな沼の話もあって楽しいんですが皆さんどうですか」 / Twitter
伊丹十三世さんはTwitterを使っています 「@Hishinuma_t CT再構成はまさにそこですね…並列処理をきちんと考えないと誤差を含んでボケた画像になるので…故に基本GPUは使ってはいけない…」 / Twitter
uint256_tさんはTwitterを使っています 「https://t.co/dBL7fQ4ghB ここらへん眺めながら,面白そうなのを実装していきたいね」 / Twitter
LLVM’s Analysis and Transform Passes — LLVM 12 documentation

uint256_tさんはTwitterを使っています 「- 命令選択マクロは便利だけど、似たような記述が増えていって不便 (正規表現でマッチするものを自動生成してもいいけど、proc-macroが複雑になりすぎる) - DAGをunsafeなノードのグラフとして表現するのはどうなのか - IRのBasic Blockがliveness情報を持っているのはどうなの (Functionとかに渡そう)」 / Twitter
uint256_tさんはTwitterを使っています 「拡張基本ブロックは偉大だなぁ...」 / Twitter
uint256_tさんはTwitterを使っています 「LLVMでいうSelectionDAGみたいなのをどうやって表現すれば一番適切なのか」 / Twitter
uint256_tさんはTwitterを使っています 「動的な命令選択パターンマッチャを作る。costは多分アーキテクチャごとに命令のlatencyやらを考えながら決めるんだろうけど、今は面倒だから cost=1/どれだけ多くのノードをカバーできたか でいいか。」 / Twitter
R. ShioyaさんはTwitterを使っています 「RT 元の表や元のブログ記事はちょっと勘違いがある気がして(ROB とスケジューラの区別がたぶんついてないかも),でも文字では説明がしんどいので絵を描いてみた・・・ らえらいごちゃごちゃになった. インテルや IBM がいろいろ呼び方変えててめんどくさいのは,そうだなぁと思う. https://t.co/W28eoKuOnb」 / Twitter
R. ShioyaさんはTwitterを使っています 「たとえばこの Zen2 の AMD がだしてるブロック図は Scheduler が分散になっているのでそこが少し違うけど,おおむね自分の描いた図と一致しているとおもう. ちなみにサイズは Scheduler が合計92命令,ROB が224命令で,最近はだいたいこんなもんかも. https://t.co/uWnxjWeSV7」 / Twitter
拡大画像 photo12l | Ryzen Deep Dive! 「Zen2」の内部構造を分析する - 第3世代Ryzen+NAVI徹底攻略 (1) | マイナビニュース

V8 release v8.0 · V8
Compressed pointers in V8 (public doc) - Google ドキュメント

セキュリティ

その他

Linuxカーネル4.13リリース | OSDN Magazine
Android Pがコンパイラベースのセキュリティ対策を拡大
An Introduction to Speculative Optimization in V8
seclang01 - essen-wiki
Return-oriented Programmingとは何かを学ぶ|株式会社レピダム
CVSS(共通脆弱性評価システム)3.0から3.1への変更点:OpenSCAPで脆弱性対策はどう変わる?(7) - @IT
ipa ファイル レースコンディション - Google 検索
9_188.pdf
自分のこと、知れてますか。 〜自分のPCをフォレンジック〜 - Qiita

システムコール

FadisさんはTwitterを使っています 「OpenBSDが「libcのようなシステムコールを使うことが意図されたライブラリの置かれたアドレス以外から飛んでくる不審なシステムコールは拒否しよう」という仕組みを導入したら、不審なGo言語で作られたバイナリが全く動かなくなってしまった話良い」 / Twitter
FadisさんはTwitterを使っています 「で、それに対するOpenBSDの対応が「Go言語がきちんとlibc経由でシステムコールを呼ぶように修正する」なのが更に良い https://t.co/8eoSVQEjtr」 / Twitter
κeenさんはTwitterを使っています 「システムコールは叩きたいけどC FFIは用意する気がない言語を作りたいときに非常に困る。極論、OSは場を提供する親なので逆らえないし嫌なら出てけって話なんだけど…」 / Twitter
鯉江さんはTwitterを使っています 「@blackenedgold システムコール直にたたくと移植性が落ちません?」 / Twitter
κeenさんはTwitterを使っています 「@koie 移植すればいいだけです。それに、Cそのまま呼べる特殊な言語でない限りABI気にしないといけないのでどのみちプラットフォームごとの処理は必要です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「syscallレベルで「も」互換性確保しようするとOSの変化の足かせになる、というのはあるのかな。brk廃止できないとかvdsoに移行したあと古いsyscall消せないとか。またtcpみたくライブラリとして提供されがちな機能もあるわけで(Solarisや最近のApple)、syscallで機能がそろうと期待するのがそもそもry」 / Twitter
DrumatoさんはTwitterを使っています 「keenさんほどハイレベルなこと考えているわけじゃないけど,気持ちはよくわかります. 今作っているPeachili言語ではC FFIを用意する代わりにインラインアセンブラみたいな構文を用意して標準ライブラリに組み込んである. (かなり大変だった) (そういう話じゃなかったらすみません」 / Twitter
とみながたけひろさんはTwitterを使っています 「ページ属性に特定のビットが立ってないとシステムコールが発行できない、という仕組みがあったCPUってなんだったっけ…とhttps://t.co/KPAIFeCYVJ をみてそうだPA-RISCとIA-64だと思い出した」 / Twitter
仮想メモリ方式の分類
dancerj 🗾さんはTwitterを使っています 「@takehiro_t sysenterもまあそういうノリな気がします」 / Twitter
FadisさんはTwitterを使っています 「Linuxにシステムコールを呼べるメモリの範囲を制限する仕組みを追加する提案がなされている。ただ、攻撃者の妨害を狙ったOpenBSDの同種の機能と異なり、Linuxの狙いはWindowsの実行可能バイナリをLinux上で実行したときに発行されたシステムコールを捉える事らしい https://t.co/US0EbzPndP」 / Twitter
FadisさんはTwitterを使っています 「WindowsバイナリをWindowsじゃないところで実行するWineは従来Windows APIを自前で実装する事で実現されていたが、近年Windows APIを使わず自分でシステムコールを投げるアプリケーションが増えていて、この方法ではWindows用のシステムコールが飛んでしまうらしい」 / Twitter
FadisさんはTwitterを使っています 「そこでmmapのオプションにシステムコール禁止フラグを追加し、Windowsの実行可能バイナリをロードした領域だけシステムコール禁止にして、Windowsの実行可能バイナリ内から行われたsyscallを捕捉してエミュレーション用のコードを実行しよう、という魂胆らしい」 / Twitter

署名

ASN.1

自堕落な技術者の日記 : オススメASN.1ビューアaatool - livedoor Blog(ブログ)
www5d.biglobe.ne.jp/stssk/asn1/index.html
もいちど知りたい、セキュアコーディングの基本(5):見落としがちな整数関連の脆弱性(後編) (1/2) - @IT
ASN.1 バイナリ変換規則 (BER, CER, DER)
ASN.1 データ生成/解析の事始 — SOUM/misc
Tools
vlm/asn1c: The ASN.1 Compiler
Lev Walkin → ASN.1 Exposed
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
RFC3641 ASN.1での一般的文字列コード化規則(GSER)
RFC 3641 - Generic String Encoding Rules (GSER) for ASN.1 Types
RFC 4792 - Encoding Instructions for the Generic String Encoding Rules (GSER)
Specification # 36.331
2-3_urushima.pdf
Application fields of ASN.1
FFASN1 Compiler
ffasn1dump ASN.1 Message Converter

X.509

RFC

RFC 2459 - Certificate and CRL Profile
Internet X.509 PKI Certificate and CRL Profile
RFC 3280 - Certificate and CRL Profile
RFC 4325 - Internet X.509 Public Key Infrastructure Authority Information Access Certificate Revocation List (CRL) Extension
RFC 4630 - Update to DirectoryString Processing in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

EternalWindows

MakeCert Functions
証明書の形式

Qiita

certificate - RSA鍵、証明書のファイルフォーマットについて - Qiita

Wikipedia

自己署名証明書 - Wikipedia
Self-signed certificate - Wikipedia
X.509 - Wikipedia
X.509 - Wikipedia

Twitter

Kazuho Okuさんのツイート: "PKIの証明書の時間的分解能は、時差がないから24時間以下とかにはできないのか。なるほど #ietf96j"
Kazuho Okuさんのツイート: "「どうせ短寿命証明書はやる方向なんだし、それに乗っかるんだったらLurk WGは不要だよね」 #ietf96j"

情報セキュリティ入門 - PKI(後編)---X.509証明書とPKIの仕組み:ITpro
X.509証明書
電子証明書のデータ形式 - RFC3289 X.509 Public Key Infrastructure Certificate and CRL Profile
X.509 の解説
暗号技術基礎
公開鍵基盤(PKI)の概要

BLS署名

BLS署名と秘密分散を組み合わせる - Qiita
BLS署名の紹介と実装 - Qiita

EternalWindows

署名の格納
ファイルと署名
副署名の設定
署名と属性
署名の構造
署名の取得

Wikipedia

電子署名 - Wikipedia
RSA暗号 - Wikipedia
Abstract Syntax Notation One - Wikipedia
Abstract Syntax Notation One - Wikipedia
X.690 - Wikipedia

Qiita

公開鍵暗号と電子署名の基礎知識 - Qiita
電子署名のファイルフォーマット - Qiita

コードサイニングとは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
コードサイニングの複数署名とハッシュアルゴリズムの異なる証明書の無償発行 -SHA-1署名のみのためインターネットからダウンロードする際に警告されていたりSHA-2署名のみのため旧バージョンのOSで問題が起こっているソフトウェアの作者へ-
デジタル署名とデジタルID用のコード署名デジタル証明書
セキュリティー関連の規格 のメモ
extract-authenticode/README.ja.md at master · trueroad/extract-authenticode
HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第1回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第2回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第3回:最終回) - livedoor Blog(ブログ)
RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
署名を作成する
署名を検証する
セキュリティー関連の規格 のメモ 署名アルゴリズム
自堕落な技術者の日記 : 図説RSA署名の巻 - livedoor Blog(ブログ)
自堕落な技術者の日記 : RSAとECDSA、署名生成と署名検証どっちが速い? - livedoor Blog(ブログ)
RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)
改良型Winternitz one time署名の提案と安全性評価
Hash-Based Signatures Part I: One-Time Signatures (OTS)
jedisct1/minisign: A dead simple tool to sign files and verify digital signatures.
Criminal use of code signing certificates | Firmware Security
macOSにコード署名チェックをバイパスできる脆弱性 - PC Watch

/GS

MS

/GS (バッファーのセキュリティ チェック)
コンパイラ セキュリティの徹底調査
コンパイラ セキュリティの徹底調査
safebuffers
__security_init_cookie
C++ - Visual C++ Support for Stack-Based Buffer Protection

WindowsでSEH overwriteによるstack canary(/GS)回避をやってみる - ももいろテクノロジー
Beyond Zero-day Attacks(2):スタックに対する攻撃とその対策 (3/3) - @IT
スライド 1
/GS ‐ 通信用語の基礎知識
IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御
C言語系/memos/VC++/09, スタック破壊の検出・防止("/GS", "/RTC", "/GZ") - Glamenv-Septzen.net
__security_check_cookie | すなのかたまり
C言語系/memos/VC++/10, "/NODEFAULTLIB"使用時の注意 - Glamenv-Septzen.net
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017でカナリアを有効(/gs)にすると、atoi(0) がスタックオーバーフロー扱いで、例外ハンドラへの遷移を許さずに即時終了する様子。 atoi内部で使っている、パラメータ検査ルーチンにはこんな記述が。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "SetUnhandledExceptionFilterは無視されるが、_set_invalid_parameter_handlerを仕込んでおくと、こちらが呼ばれる様子。 うーん、統一的なハンドリング方法を提供して欲しいところ。"

Intel MPX

インテル® Memory Protection Extensions (インテル® MPX) 利用ガイド | iSUS
Visual Studio 2015 Update 1: New Experimental Feature – MPX | Visual C++ Team Blog
check-pointers-mpx、Qcheck-pointers-mpx
Intel® Memory Protection Extensions Enabling Guide | Intel® Software
How to Protect Apps from Buffer Overflow Attacks | Intel® Software
Study overview
VirtualQuery function (Windows)
GetSystemInfo function (Windows)
SYSTEM_INFO structure (Windows)
Getting Hardware Information (Windows)
Intel GoldmontとMPXとゆるふわなごや
Intel MPX - Wikipedia

Control Flow Guard

Control Flow Integrity

Control-flow integrity - Wikipedia
Control-Flow Integrity - Microsoft Research
Control-Flow Integrity - Microsoft Research
ccs05.pdf
Control Flow Integrity — Clang 7 documentation
Control-Flow Integrity: An Introduction
Control-flow integrity
Out Of Control: Overcoming Control-Flow Integrity
usenix13.pdf
Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM – Google AI
SSTIC2015-Article-control_flow_integrity_on_llvm_ir-fontaine_chifflier_coudray_esfrDAl.pdf
Let’s talk about CFI: clang edition | Trail of Bits Blog
Practical Control-Flow Integrity
Google Online Security Blog: Compiler-based security mitigations in Android P
Kostya Serebryanyさんのツイート: "New security hardening in Android P: CFI and [un]signed-integer-overflow checks. (my team is responsible for the LLVM side of these things) https://t.co/zgylJE9AjW"
Android Developers Blog: Compiler-based security mitigations in Android P
まさみさんは語りたいさんのツイート: "Control Flow Integrityって、コンパイラ屋なのにCFIって略称使うの気持ち悪くないのかな?Call Frame Informationの略でもあるんだけど。"
Google Online Security Blog: Control Flow Integrity in the Android kernel

MS

Control Flow Guard (Windows)
Windows 10 Memory Protection Features | Ask Premier Field Engineering (PFE) Platforms
-guard (有効にする Control Flow Guard) | Microsoft Docs
ガード (ガード チェックを有効にする) | Microsoft Docs
-guard (Enable Control Flow Guard)
-GUARD (Enable Guard Checks)
-HIGHENTROPYVA (Support 64-Bit ASLR)
Memory Management Reference (Windows)
Memory Management Functions (Windows)
Memory Management Registry Keys (Windows)
Memory Management Structures (Windows)
Memory Protection Constants (Windows)
Memory Protection Constants (Windows)
SetProcessValidCallTargets function (Preliminary)
VirtualProtect function (Windows)
VirtualAlloc function (Windows)
LoadEnclaveData function (Windows)
CreateFileMapping function (Windows)
Memory Protection (Windows)
VirtualAllocEx function (Windows)
Control Flow Guard (Windows)
Control Flow Guard - Win32 apps | Microsoft Docs
MSRC-Security-Research/BHUSA16_Weston_Miller_Windows_10_Mitigation_Improvements.pdf at master · microsoft/MSRC-Security-Research
Announcing Changes to Microsoft’s Mitigation Bypass Bounty - Microsoft Security Response Center

MR201412_Control_Flow_Guard_JPN.pdf
Windowsのセキュリティ機能Control Flow Guard解説 « 他人の空似
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CFG export suppression~ « 他人の空似
Run-TimeErrorChecksとBufferSecurityCheck « 他人の空似
Windows開発はclang+lldでも実用レベルか?セキュリティ面から調べてみた « 他人の空似
Rockridgeさんのツイート: "Fx60:Windows版で、firefox.exeがControl Flow Guardに対応。Windows 8.1 Update以降の環境でセキュリティが強化されるという。参照:https://t.co/25VQMWSHXZ https://t.co/J1IuXmnWy5"
Gadgets Zoo: Bypassing Control Flow Guard in Windows 10 - Rafal Wojtczuk Jared DeMott Derbycon 2015 (Hacking Illustrated Series InfoSec Tutorial Videos)
Exploring Control Flow Guard in Windows 10
Manual Control Flow Guard in C « null program
Let’s talk about CFI: Microsoft Edition | Trail of Bits Blog
DerbyCon: Former BlueHat prize winner will bypass Control Flow Guard in Windows 10 | CSO Online
mumumuさんはTwitterを使っています 「Code-Pointer Integrity [OSDI '14] データのRWができる攻撃者からのControl Flow Hijackを防ぐために,Control Flowに影響があるポインタ(Sensitive Pointer)のみ別のメモリ空間に保存し,Instrumentによる安全性の担保を行う.CFI等の既存手法よりも低オーバヘッドで強い保障を与えられるのが売り.」 / Twitter

CET(Control-flow Enforcement Technology)

Fadisさんのツイート: "gcc8からIntel CETに対応する模様。CETはCALL RET等の一部の命令だけが読み書きできるリターンアドレスだけが積まれた裏スタックを作り、従来のスタックとリターンアドレスの比較を行う事でROPを検知する https://t.co/ZQFPQrSZYo"
Control-Flow Enforcement Technology Begins To Land In GCC 8 - Phoronix
るくすさんのツイート: "戻りアドレスをチェックしてROP等の攻撃を防ぐControl-Flow Enforcement Technology (CET)がGCCに追加される予定とのこと。  https://t.co/DKJEXYlI9U"
Intel Posts Control-Flow Enforcement Support For GCC - Phoronix
Rui Ueyamaさんのツイート: "@RKX1209 そういやABI拡張が提案されていた。 https://t.co/zRo7Z2CX23"
RFC: Update x86 psABIs to support IBT

BranchScope

CPU攻撃の新たな手法「BranchScope」、Intel製CPUで実証 - ITmedia NEWS
BranchScope: A New Side-Channel Attack on Directional Branch Predictor
Spectreと同じ分岐予測を利用した新たなCPU脆弱性「BranchScope」 ~Haswell/Skylakeなどで実証に成功、Intel SGXを突破 - PC Watch
まさみさんは語りたいさんのツイート: "BTB対策の時にBPU(BPB)も対策(分離)されてると思うんだけど、どうだろうか。… "
まさみさんは語りたいさんのツイート: "BPBじゃないBHBだ。SpectreBustersのスライドP25にあるやつ。 https://t.co/zh9yE5dYjb"
まさみさんは語りたいさんのツイート: "SpectreもBranchScopeも、Intelの分岐予測実装が、分岐結果を共有しても意味がない、異なるコンテキストに対して共有しているから、そこをサイドチャネルにしてリークしてる、ということかと思うんで、HWの対策としては同じなんじゃないの?と。"
まさみさんは語りたいさんのツイート: "攻撃側でBHBを読み取る試みをする場合は、ソフトウェアで出来ることは殆ど無いから、攻撃手法として強力なのは分かる。HTをオフにした上で、マイクロコードでCR2変更時にBHB消せるようにするしかないんではないかと。"
まさみさんは語りたいさんのツイート: "あるいはカーネルのスケジューラにisolationレベルを導入して、isolation levelが高いプロセスは、他のプロセスと同じコアを使わせないとか、コンテキスト切替時に只管クリーンナップするとか、特別な手立てを講じることになるんじゃないかな。"
CPUの脆弱性を突く新たなテクニック "BranchScope" の仕組みを読み解く (1) - FPGA開発日記
CPUの脆弱性を突く新たなテクニック "BranchScope" で何が攻撃できるのか?(2) - FPGA開発日記

Spectre

Spectre

Spectre:Variant 1: bounds check bypass (CVE-2017-5753)対策:array_index_nospec(array_ptr)

NetSpectre

Fadisさんのツイート: "NetSpectre: よくある通信プロトコルがリクエストで要求された位置が配列内かをチェックするのを利用して、リモートからSpectre V1を踏ませる。通信の応答時間はSpectre V1以外にも様々な理由で揺らぐが、大量のリクエストを投げて統計的な方法でキャッシュに当たったか判別 https://t.co/o97bcB6P04"
NetSpectre Vulnerability Can Reveal Arbitrary Memory Over Network - Phoronix
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei Daniel Grussさん (Graz, University of Technologyポスドク) 等から NetSpectre: A generic remote Spectre variant 1のペーパーが公開されました https://t.co/lFERTGpr6T"
NetSpectre: Read Arbitrary Memory over Network
20180728

WebKit

webkit/Source/WTF/wtf at master · WebKit/webkit
webkit/Poisoned.h at master · WebKit/webkit
webkit/Poisoned.cpp at master · WebKit/webkit
webkit/PoisonedUniquePtr.h at master · WebKit/webkit
webkit/JSCPoison.cpp at master · WebKit/webkit
webkit/LowLevelInterpreter.asm at master · WebKit/webkit

@xharaken

Kentaro Haraさんのツイート: "世間を騒がせているCPUの致命的なバグ、SpectreとMeltdown。Spectreの方は初歩的なプログラミングの知識で理解できるので、4ツイートで簡単に解説してみる。"
Kentaro Haraさんのツイート: "こういうArrayクラスがあったとする。 class Array { char at(unsigned i) { if (i >= length) // (a) return -1; return data[i]; // (b) } un… https://t.co/jqU6n6Gyk4"
Kentaro Haraさんのツイート: "ここで、次のコードを実行する。 char mem[257]; char v = array->at(12345678); // 秘密のデータが保存されているアドレスを指定 if (v & 1) { mem[0]; } else { mem[256]; } // (c)"
Kentaro Haraさんのツイート: "CPUの分岐予測をうまく利用すると、(a)のCPU命令が完了する前に、分岐を(b)の方に予測させて、(c)を投機的に実行させることができる。もちろん(a)が完了した時点で投機実行された(c)は捨てられるのだが、すでにCPUはmem[0]またはmem[256]を投機的にキャッシュへ… https://t.co/fC9k45cW0j"
Kentaro Haraさんのツイート: "よって、mem[0]とmem[256]へのアクセス速度を測ってどっちがキャッシュに乗ったかを調べれば、狙ったアドレスのデータが0なのか1なのかがばれる。バッファオーバーフローを防ぐための範囲チェックが役に立たなくなって、好きなメモリアドレスの値を読めてしまう。。。というのがSpe… https://t.co/0gQGqguJu9"
Kentaro Haraさんのツイート: "CPUの分岐予測に関する根本的なバグなのでソフトウェア側で対処するのは難しいのだが、Chromiumでは、if文を使わない形に範囲チェックを書き換える、(キャッシュへのアクセス速度を調べられないように)タイマーの精度を意図的に落とす、高精度タイマーが作れるAPIを無効化するなどで… https://t.co/FYYt5Nnu1F"

What Spectre and Meltdown Mean For WebKit | WebKit
c - Branchless Overflow Handling - Stack Overflow
End-of-buffer checks in decompressors | The ryg blog
A Branchless UTF-8 Decoder « null program
skeeto/branchless-utf8: Branchless UTF-8 decoder
A Branchless UTF-8 Decoder : cpp
まさみさんは語りたいさんのツイート: "先週末に出てきた別の機能 Array_ptr https://t.co/dkgIBes9Fm これはSpectreV1対策だけど、境界条件チェックをif文なしで行うためのマクロ。境界条件を超えるとNULLが返ってくるようになるので、投機的実行で任意のアドレスにアクセスさせることが出来なくなる。"
LKML: Dan Williams: [PATCH v4 00/10] prevent bounds-check bypass via speculative execution
まさみさんは語りたいさんのツイート: "1月初めに出てきていた Array_ptrの元になったマクロ https://t.co/8OnV6FqMtD これはARM64版のアセンブラを使った実装になっている。CSDBというバリア命令を使う。これはどうやらIntel/AMDがマイクロコードに追加したIBPBみたいな命令らしい。以下のARMのWPにある。 https://t.co/zUOOIHceDk"
LKML: Mark Rutland: [RFC PATCH 0/4] API for inhibiting speculative arbitrary read primitives
prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v2 00/19] prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v3 0/9] core, x86: prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v4 00/10] prevent bounds-check bypass via speculative execution [LWN.net]
まさみさんは語りたいさんのツイート: "最後のミスだけ補足したのは、gccでretpolineを有効にしても、array_ptrを必要なライブラリなどが使わなければ、Spectre V1に対しては脆弱なままだからです。array_ptrは明示的に使う必要があるため、ソースコードの修正も必要になります。"
まさみさんは語りたいさんのツイート: "retpolineについて調べていたはずが、array_ptrの方が闇が深かったという結果になった。"
まさみさんは語りたいさんのツイート: "あっ、この2週間でarray_ptrがarray_index_nospecに変わってる。"
米Red Hat、Spectre脆弱性変種1向けのスキャンツールを公開 | OSDN Magazine
SPECTRE Variant 1 scanning tool - Red Hat Customer Portal

Spectre:Variant 2: branch target injection (CVE-2017-5715)対策:Retpoline

LLVM

[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
⚙ D41760 Introduce __builtin_load_no_speculate
⚙ D41761 Introduce llvm.nospeculateload intrinsic
[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..

Intel

Intel Analysis of Speculative Execution Side Channels
Intel® Product Security Center

Google Online Security Blog: More details about mitigations for the CPU Speculative Execution issue
SpectreBustersあるいはLinuxにおけるSpectre対策
https://docs.google.com/document/d/e/2PACX-1vSnV92CM3w9n_IWCGbqb2txXBDNRgkTmQ5LKQEFkCCMMteLH0AHTm79e8z3a0tMx7_u1xc7u42tcZq7/pub?embedded=true
まさみさんは語りたいさんのツイート: "いっそのこと、retpolineのコード(__x86_indirect_thunk)をVDSOでLinuxカーネルから渡すようにしたらいいのではないか(おい)"
まさみさんは語りたいさんのツイート: "残念なお知らせだ。retpolineで遅くなると思って関数ポインタからSwitch-caseベースに変更したprobe eventだが、かえって数ナノ秒遅くなってる。例外はメモリアクセス。"
Makoto Kato ︎︎さんのツイート: "昨日のx86/x64最適化勉強会とか、前のフロントエンドカンファレンスでも思ったけど、SpectreがJITエンジンにも同じ対策を求められることってみんな理解してないのね。コンパイラな解決方法はすべてJITにも言えることで。。。"
鈴木光宏さんのツイート: "https://t.co/W9RAFezHc2 Spectre 脆弱性の実験コード(論文https://t.co/QSBSfSmutm)、FreeBSD-current / Intel Core i5 で見事動作。メモリ上の文字列の取得に成功してます。 git clone して… https://t.co/LL1zO6Paau"
Eugnis/spectre-attack: Example of using revealed "Spectre" exploit (CVE-2017-5753 and CVE-2017-5715)
Retpoline: a software construct for preventing branch-target-injection - Google ヘルプ
はてなブックマーク - Retpoline: a software construct for preventing branch-target-injection - Google Help
Spectre example code
⚙ D41723 Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
Is MSVC also being updated to include the retpoline mitigation? : cpp
Meltdown/Spectreの脆弱性、リスク、対策
Ubuntu 17.10 その195 - MeltdownとSpectreについて知っておくべきこと(前編) - kledgeb
Ubuntu 17.10 その196 - MeltdownとSpectreについて知っておくべきこと(後編) - kledgeb
プロセッサ脆弱性SpectreとMeltdownのLinux用チェッカー – がとらぼ
CPUの脆弱性におけるEC2(Amazon Linux、Windows)とECSの対応 - Qiita
SODA Noriyukiさんのツイート: "in-order でも、分岐予測とそれに基づいた命令プリフェッチはあるので、Spectre Variant 2 は可能という話ですかね。… "

Spectre:Variant 4: Speculative Store Bypass (SSB)(CVE-2018-3639)

Twitter

LWN.netさんのツイート: "Spectre variants 3a and 4 https://t.co/9LZeAQYrfq"
Hisaki Oharaさんのツイート: "Variant 4について: Addressing New Research for Side-Channel Analysis https://t.co/PaoH1AepPx"
Hisaki Oharaさんのツイート: "Analysis and mitigation of speculative store bypass (CVE-2018-3639) https://t.co/eBAdoCuRbY"
まさみさんは語りたいさんのツイート: "https://t.co/y3DiunBczh あー、Variant4が出てるなあ。OoO技術、実はボロボロやんけ、というのが2018年にわかった事実。"
まさみさんは語りたいさんのツイート: "Spectre Variant4はMemory Disambiguatorが、他のストア命令に依存しないであろうロード命令を予測するのを騙して、実は依存するロード命令を投機的実行させることにより、それに続く命令をL1キャッシュのデータを元に投機的実行させることが出来る。"
まさみさんは語りたいさんのツイート: "予測機構をだまくらかして、あとで反故にされるデータを利用して投機実行し、足跡をキャッシュに残すというところはSpectre v1/v2と全く同じなのでSpectre v4と呼ばれる。"
まさみさんは語りたいさんのツイート: "Spectre v1はまだソフトウェア的に回避しようがあった(array_ptrとか)けど、このV4のいやらしい所は、完全にプロセッサ内部の機構が勝手にやってることなので、このMDと呼ばれる機能を停止させる他無いっていうところ。"
まさみさんは語りたいさんのツイート: "ハードウェア的に改善するなら、MDで投機的実行をある程度許可してもいいけど、その投機実行中にメモリアクセスがあったら一端投機実行を停止する、という処理になるのかなあ。"
Spectre Variants 3A & 4 Exposed As Latest Speculative Execution Vulnerabilities - Phoronix
Fadisさんのツイート: "Spectre Variant4: いくつかの投機的実行を行うCPUが、書き込み先アドレスが未知のwriteの後ろにあるreadを「多分同じアドレスを読まない」と期待して読んで、writeとアドレスが被っていたらreadをやり直す、という処理をするのを利用して分岐の無い所でSpectreする手法 https://t.co/GKKsCMqMaQ"

Spectre派生の新たな投機実行脆弱性が発表。多数のCPUが攻撃対象に - PC Watch
「Spectre」「Meltdown」脆弱性に新たな変種 - CNET Japan
CPU由来の脆弱性情報(CVE-2018-3639 – Speculative Store Bypass (SSB) (Variant 4) / CVE-2018-3640 – Rogue System Register Read (RSRE) – (Variant 3a)) – 脆弱性情報ブログ(仮)
Kernel Side-Channel Attack using Speculative Store Bypass - CVE-2018-3639 - Red Hat Customer Portal
投機的ストアバイパスを使用したカーネルのサイドチャネル攻撃 - CVE-2018-3639 - Red Hat Customer Portal
Spectre/Meltdownに続くCPU脆弱性、GoogleとMSが「Variant 4」公表 | マイナビニュース
Intel製およびARM製CPUに新たな脆弱性「Variant 4 SpectreNG」 | マイナビニュース
1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
INTEL-SA-00115
CPU脆弱性、新種「Variant 4」の存在が明らかに - CIOニュース:CIO Magazine
CPUに内在する脆弱性「Spectre」に新種「Variant 4」が登場、Intel・AMD・ARMは対応策を発表 - GIGAZINE
“Spectre”脆弱性の新しい亜種、各ベンダーが一斉に製品への影響と回避策を案内 - 窓の杜
Spectre/Meltdown脆弱性の新バリアント2件が公表される | スラド ハードウェア
新たに「Meltdown」「Spectre」関連の脆弱性、IntelはBIOSアップデートの準備 - ITmedia エンタープライズ
Speculative Store Bypass に学ぶ現代プロセッサの高速メモリアクセスユニットの仕組み - FPGA開発日記
SpectreNG および Variant 3a 脆弱性の WebClass への影響に関して|メンテナンスのご案内|サポート|WebClass|日本データパシフィック株式会社
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供

Spectre SWAPGS(SWAPGSAttack)

New Windows hack warning: Patch Intel systems now to block SWAPGSAttack exploits | ZDNet
【セキュリティ ニュース】「Spectre」に新亜種、「SWAPGS攻撃」受けるおそれ - MSは7月に対処済み(1ページ目 / 全2ページ):Security NEXT
Bypassing KPTI Using the Speculative Behavior of the SWAPGS Instruction – Bitdefender Labs
CVE-2019-1125: Spectre SWAPGS gadget vulnerability - Red Hat Customer Portal
FadisさんはTwitterを使っています: 「CVE-2019-1125: x86_64のLinuxはGSをユーザ空間とカーネル空間で別の用途で使う → システムコール時にSWAPGSでGSを切り替える → カーネルはSWAPGS前にそれをすべき状況か確認する → この分岐の予測を失敗させCPUに誤ったGSを食べてカーネル空間で何かした夢を見せるSpectre https://t.co/EAzoTz5HYq」 / Twitter
Ivy Bridge以降のIntel CPUに投機実行に脆弱性 - PC Watch
More information on SWAPGS and Speculative only Segment Loads
Deep Dive: Intel Analysis of Speculative Behavior of SWAPGS and Segment Registers
Processors Affected: Speculative Behavior of SWAPGS and Segment Registers

Spectre 1.1/1.2

品川 高廣さんのツイート: "Spectre1.1 と Spectre1.2。進化してる。https://t.co/NRjcocZE7t"
[1807.03757] Speculative Buffer Overflows: Attacks and Defenses
「Spectre」関連の脆弱性、また新たに発覚 IntelやARMのプロセッサに影響 - ITmedia エンタープライズ
2018年7月20日号 18.04.1 Server InstallerのCall for Testing,“Spectre” Variant 1.1/1.2。Bounds Check Bypass Store (BCBS):Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Spectre 1.1および1.2の脆弱性が公開された
Spectre 1.1 (CVE-2018-3693) の論文を読む - FPGA開発日記
ROP(Return-Oriented Programming)についての勉強 - FPGA開発日記

SpectreRSB

CPUの脆弱性を突く新たな攻撃手法「SpectreRSB」 - CNET Japan
「Spectre」関連の新たな脆弱性、米研究チームが発表 - ITmedia エンタープライズ

Spectre/MeltdownPrime

Meltdown-Spectre flaws: We've found new attack variants, say researchers | ZDNet
まさみさんは語りたいさんのツイート: "LLC使った攻撃か。違うコアで実行した投機的実行の結果を知ることが出来る攻撃手法というわけだ。> Spectre/MeltdownPrime"
まさみさんは語りたいさんのツイート: "KPTIで防げるのかな?"
satさんのツイート: "新しい脆弱性の名前、MeltdownPrimeとSpectrePrimeだそうです。絶対ふざけて決めただろ https://t.co/IKpZRYZyiA"
1802.03802.pdf
まさみさんは語りたいさんのツイート: "消して埋めさせる方法と、埋めて上書きさせる方法、の違いというか。… "
ZDNet Japanさんのツイート: "CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 https://t.co/TWhDfKj8tH"
まさみさんは語りたいさんのツイート: "元の方法だと「遅い遅い遅い速い遅い遅い」が Primeだと「速い速い速い遅い速い速い」になる、という感じで良いんだろうか。"
まさみさんは語りたいさんのツイート: "MeltdownPrime→KPTIで防げる(アクセス先がない) SpectrePrimeV1→array_index_nospecで防げる(アクセス先が安全) SpectrePrimeV2→retpolineで防げる(V1が防げればOK) 今回はサイドチャネルの作り方の工夫なので対策法はこれまでと同じ。"
まさみさんは語りたいさんのツイート: "そもそもPrime+Probeにハードウェアサイドの対処ってあったっけ?"
CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 - ZDNet Japan
MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols

Meltdown and Spectre
spectre.pdf
図解でわかるSpectreとMeltdown // Speaker Deck
本当にわかる Spectre と Meltdown
chikoskiさんのツイート: "Spectre対策でSharedArrayBufferは無効化されたと思っていたけれど、Chrome68から再び有効になってたのね。c.f. SpectreとSharedArrayBuffer https://t.co/S2XKSFIE0e"
fantastictimers.pdf
chikoskiさんのツイート: "Site Isolation(Rendererプロセスが保持するdocumentを最大で1つに制限する)ことで、iframeを使ったサイドチャネル攻撃に対処したと。https://t.co/kaCAWOsCry"
Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome
SGX After Spectre and Meltdown: Status, Analysis and Remediations | Firmware Security
SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution | Firmware Security
Windowsアーキテクチャー、Meltdown and Spectre、メモリ、オブジェクト
20180505
【CPU】 Intel CPUに新たな脆弱性『Spectre Next Generation』?ドイツメディアが報じる : ニッチなPCゲーマーの環境構築
インテル® コンパイラーを使用して投機実行サイドチャネルの問題を緩和 | iSUS
日記 (2018 年 1 月中旬)
Long-Term Web Browser Mitigations for Spectre - Google ドキュメント
【連載】SperctreやMeltdownを根本から防ぐSafeSpec | マイナビニュース

MS

その他

投機実行の脆弱性修正、Haswell世代以前では性能への影響大 ~I/O集中型アプリケーションを利用するサーバーは慎重な選択を。AMDはほぼ影響受けず - PC Watch
Microsoft、Intelの脆弱性対策を無効化する緊急アップデートを配信 ~適用で再起動問題を回避、Windows 7/Haswell以降が対象 - PC Watch
【特集】Spectre V2対策による性能低下を緩和する「Retpoline」の効果を確認する - PC Watch
Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
Microsoft、Skylake用のSpectre V2対策コードを提供開始 - PC Watch
Windows月例更新でVIAプロセッサにもSpectre/Meltdown対策が盛り込まれる ~ただしAvast、Avira、Sophosと競合する不具合 - PC Watch
「Windows 10 19H1」、「Spectre Variant 2」対策にグーグルの「Retpoline」を採用へ - ZDNet Japan
「Spectre」攻撃、インテルの「SGX」保護機能に影響 - ZDNet Japan
緊急パッチだけではプロセッサ脆弱性対策は不十分――Spectre&Meltdown対策状況を再チェック:山市良のうぃんどうず日記(117:緊急特別編) - @IT
山市良のえぬなんとかわーるど: 仕事始めは Windows Update から(例の Intel/AMD/ARM CPU 問題に関する追記あり)
山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題にフルアーマーな PC
山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題の Windows 関連の続報(リンクまとめ+α)
Project Zero: Reading privileged memory with a side-channel

Mitigating speculative execution side-channel attacks in Microsoft Edge and Internet Explorer - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
Update on Spectre and Meltdown security updates for Windows devices | Windows Experience Blog
Windows Analytics で Meltdown と Spectre への対策状況が評価可能に - Windows Blog for JapanWindows Blog for Japan
Windows クライアントで投機的実行のサイドチャネルの脆弱性から保護する
Protect your Windows devices against speculative execution side-channel attacks - Windows Help
CVE-2017-5715 (分岐先インジェクション) からのゲスト仮想マシンの保護 | Microsoft Docs
Windows システム上の Spectre および Meltdown に対する緩和策のパフォーマンスへの影響について - Microsoft Security Response Center
2018年11月2日号 Spectre v2対策 “Enhanced IBRS”のマージ,IBMによるRed Hat買収に関するMark Shutleworthからのステートメント:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Intel Prepares "Enhanced IBRS" As Better Spectre V2 Protection For Future CPUs - Phoronix
Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community - 295618
Spectre mitigations in MSVC | C++ Team Blog
Spectre mitigation changes in Visual Studio 2017 Version 15.7 Preview 3 | C++ Team Blog
Spectre diagnostic in Visual Studio 2017 Version 15.7 Preview 4 | C++ Team Blog
Mitigating speculative execution side channel hardware vulnerabilities - Microsoft Security Response Center
Analysis and mitigation of speculative store bypass (CVE-2018-3639) - Microsoft Security Response Center
Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge

Google

Project Zero: Reading privileged memory with a side-channel
Google Online Security Blog: Today's CPU vulnerability: what you need to know
Google、CPU脆弱性“Meltdown”“Spectre”の緩和策を「Google Chrome 64」へ導入 - 窓の杜
Site Isolation - The Chromium Projects
Actions Required to Mitigate Speculative Side-Channel Attack Techniques - The Chromium Projects
Product Status - Google ヘルプ
RealJTG/Meltdown: Meltdown PoC for reading passwords from Google Chrome.
「Google Chrome 66」が正式版に ~新しい開発者機能とセキュリティ・安定性の向上策 - 窓の杜
「Google Chrome 67」が正式版に ~“Spectre”脆弱性の緩和策“サイト分離”をテスト - 窓の杜
なかのん&マジックさんのツイート: "Site Isolationでメモリ使用量1割増、か…… / Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome https://t.co/Akgcac45is"
なかのん&マジックさんのツイート: "Spectreはプロセス境界どころかそれ以上に越境できてしまうのが問題という認識だったんだけど、Site IsolationでSharedArrayBufferを復活させても大丈夫なもんなの?"
なかのん&マジックさんのツイート: "とっとと対策したCPU出てよ、とは思う、そもそも。"
Google Developers Japan: Chrome の Site Isolation で Spectre のリスクを軽減する
Googleの研究者ら曰く、Spectre脆弱性の修正は難しい | スラド
1902.05178.pdf
Google Says Spectre And Meltdown Are Too Difficult To Fix

Mozilla

Meltdown と Spectre
Rockridgeさんのツイート: "MozillaはSpectre/Meltdown問題への当面の対策をFirefox 57.0.4に投入する模様。対策にはSharedArrayBufferの無効化が含まれる。参照:https://t.co/wMmPg7YCtU https://t.co/bN5nYqiV3t"
Mitigations landing for new class of timing attack | Mozilla Security Blog
sharedarraybuffer webassembly - Google 検索
Kazuho Okuさんのツイート: "Meltdown / Spectre 脆弱性の悪用防止のため、高精度のタイマー実装に使うことのできる SharedArrayBuffer が一時利用不可能に / “Mitigations landing for new clas…” https://t.co/rHZAnVN8Og"
more on Meltdown and Spectre | Firmware Security
Mozilla、「Firefox」v57.0.4を公開 ~CPU脆弱性“Meltdown”“Spectre”へ対策 - 窓の杜
Ryou Ezoeさんのツイート: "SharedArrayBufferを高精度タイマーに使うのってどうするんだろ。"
Kazuho Okuさんのツイート: "@EzoeRyou ServiceWorker(要は別スレッド)でビジーループでカウンタアップテードさせる"
Rockridgeさんのツイート: "Fx59:Spectre対策として、デフォルトのタイマー解像度を2ミリ秒に落とした。従来は0.02ミリ秒だった。 / “1435296 - Reduce Timer Resolution to 2ms” https://t.co/TJWWKoS4GM"
Rockridgeさんのツイート: "Project Fissionでは、サイト単位でcontentプロセスを分離することによって、Spectre問題への対策とする。 / “Project Fission - MozillaWiki” https://t.co/LjbKftTgA1"
Project Fission - MozillaWiki

Linux

Mitigation Status by Kernel Version | Intel® Software
2018年1月10日 Linus,Intel相手に“おこ始め”―「メルトダウン」で幕開けの2018年:Linux Daily Topics|gihyo.jp … 技術評論社
2018年1月22日 Meltdown/Spectreの影響は大きく… Linus,Linux 4.15のリリースを1週間延期しRC9を公開:Linux Daily Topics|gihyo.jp … 技術評論社
投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 - Red Hat Customer Portal
Red Hat Enterprise Linux パラメーターで、CVE-2017-5754、CVE-2017-5715、および CVE-2017-5753 で提供されているマイクロコードおよびセキュリティーのパッチによるパフォーマンスへの影響を制御する - Red Hat Customer Portal
LinuxカーネルにおけるMeltdownとSpectre問題の脆弱性対策が出来ているかどうかを調べるコマンド: Project Valkyrie
OSがMeltdownとSpectreに対応しているか確認する | 普段使いのArch Linux

BSD

SpeculativeExecutionVulnerabilities - FreeBSD Wiki
第131回 影響範囲広大プロセッサバグ「Meltdown」と「Spectre」,各プロジェクトの対応現状ほか:BSD界隈四方山話|gihyo.jp … 技術評論社
第133回 OpenBSD on iTWire:BSD界隈四方山話|gihyo.jp … 技術評論社
第136回 FreeBSDのMeltdown/Spectre対策:BSD界隈四方山話|gihyo.jp … 技術評論社
第137回 FreeBSDのMeltdown/Spectre対策,11系にマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
第138回 OpenBSD,Meltdown対策機能をマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
第139回 OpenBSD,Meltdownバイナリパッチ提供開始:BSD界隈四方山話|gihyo.jp … 技術評論社
第142回 FreeBSD Meltdown対策機能による性能影響ベンチマーク:BSD界隈四方山話|gihyo.jp … 技術評論社

blog

Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama|note
Meltdown、Spectre、およびシスコのクラウド コラボレーション セキュリティ
Spectre & Meltdown を防ぐマイクロアーキテクチャSafeSpecの論文を読む - FPGA開発日記
2015年以降のインテルCPUの脆弱性チェックプログラム - 発声練習
山市良のえぬなんとかわーるど: Intel マイクロコード アップデートが再配布?(自動的な再起動にご注意)
CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも

News

【連載】新たな脅威 - SpectreとMeltdown | マイナビニュース
Intel、第8~6世代CPUで脆弱性対策後のベンチマーク結果を公開 ~性能低下はおおむね数%以内 - PC Watch
Intel、Sandy BridgeからKaby Lakeのシステムで“再起動問題”が発生中 ~投機実行脆弱性アップデートが影響 - PC Watch
Intel、脆弱性対処でHaswell/Broadwellシステムが予期せぬ再起動をする原因を特定 - PC Watch
Spectre/Meltdown脆弱性を利用したマルウェアが発見 - PC Watch
Intel、Skylake向けのSpectre脆弱性対策マイクロコードの提供開始 ~Sandy Bridge以降向けも近く提供か - PC Watch
Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
「LLVM 6.0」リリース | OSDN Magazine
SpectreとMeltdownの詳細
CPU“脆弱性問題”の現状と対策 ~セキュリティは? パフォーマンスは? ユーザーへの影響を確認する - PC Watch
「Spectre」攻撃、インテルの「SGX」保護機能に影響 - CNET Japan
大原雄介のエレ・組み込みプレイバック:収束しない現代的CPUの脆弱性と、苦境を脱せないQualcomm (1/3) - TechFactory
IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE
20180616
Boffins offer to make speculative execution great again with Spectre-Meltdown CPU fix • The Register
Your Title Here
まさみさんは語りたいさんのツイート: "かなりストレートな解法ですが、まあそれしかないのかも。… "
fjのYog教祖様さんのツイート: "シャドウキャッシュの管理の仕方次第ではあるだろうが、ほぼ間違いなく「シャドウキャッシュの内容による速度変化」を引きずり出す方法が発見されて終わるだけだと思う。… "
まさみさんは語りたいさんのツイート: "そうですね。SpectreはL2以下のキャッシュの方が影響が大きい気がするんだけど、L1だけで大丈夫か??という。… "
Debian10アートワーク募集中🍥さんのツイート: "IntelのCPUセキュリティバグ、どうやらIntelはDebianとOracleには事前に開示しなかった&Red Hat・SUSE・Canonicalには情報の共有を禁じていたようですね。いやはや。。。 https://t.co/0VWEyQLU51"
​Linus Torvalds talks frankly about Intel security bugs | ZDNet
Debian10アートワーク募集中🍥さんのツイート: "結局、現在はきちんといつもどおりの情報共有ができるようになり対応がスムースになってるようなので、今回の件をハンドリングしたIntelの中の人がおかしな判断をした、ということなのですが。"

GitHub

mniip/spectre-meltdown-poc: A semi-demi-working proof of concept for a mix of spectre and meltdown vulnerabilities
ryanlayer/giggle: Interval data structure
crozone/SpectrePoC: Proof of concept code for the Spectre CPU exploit.
lgeek/spec_poc_arm: Dump privileged ARM system registers from usermode using variant 3a of Meltdown
paboldin/meltdown-exploit: Meltdown Exploit PoC
ryoさんのツイート: "https://t.co/xzyDUqtftW だとN/core-i7でもkernel領域読めた。思ったより成功確立低い。というか特定のアドレスしか成功してないように見える。Intelの謎キャッシュポリシーの影響もあるんだろうなぁ。https://t.co/6kqdx398ux"
HarsaroopDhillon/Meltdown: Meltdown POC
Intel Ivy Bridge Cache Replacement Policy « Blog
IAIK/meltdown: This repository contains several applications, demonstrating the Meltdown bug.
lsds/spectre-attack-sgx: Spectre attack against SGX enclave
GitMirar/meltdown-poc: A PoC implementation of the meltdown attack described in https://meltdownattack.com/meltdown.pdf
ionescu007/SpecuCheck: SpecuCheck is a Windows utility for checking the state of the software mitigations against CVE-2017-5754 (Meltdown) and hardware mitigations against CVE-2017-5715 (Spectre)
idea4good/spectre: Demo Spectre with 70 lines code

Qiita

MeltdownとかSpectreとか騒ぎがあったので、Amazon Aurora(MySQL互換)R4インスタンス再テスト(mysqlslap) - Qiita
LinuxコアメンバーによるMeltdownとSpectre 対応状況の説明 - Qiita

Wikipedia

Spectre - Wikipedia
Spectre (security vulnerability) - Wikipedia
Spectre (security vulnerability) - Wikipedia

Twitter

dynamic function

まさみさんは語りたいさんのツイート: "あー、休み中にSteveがdynamic functionとかいうのを作ってる。ちょっと調査中。 https://t.co/Q6cS65C7gG"
[POC][RFC][PATCH 1/2] jump_function: Addition of new feature "jump_function"
まさみさんは語りたいさんのツイート: "retpolineで遅くなるので、代わりに固定long jumpするトランポリンコードを作っておき、それを使う、というアイデアなんだろうか?なんかSpectre対策になら無さそうだけど。"
まさみさんは語りたいさんのツイート: "多分これはtracepointがretpolineに置換されてしまうという問題に対する回答だけど、これだとalternativesで良くね??"
まさみさんは語りたいさんのツイート: "またマルチスレッドで実行される場合でも、全スレッドを対象にして実行パスを書き換える用途でしか使え無さそうなので、spectreに対するgenericな解ではないと思う。強いて言えば、プレースホルダ付きoptprobeみたいなものへの置換。"
まさみさんは語りたいさんのツイート: "同じツッコミをPeterZがしてた(笑)。… "
まさみさんは語りたいさんのツイート: "あー、なるほど。合点がいった。関数コールをあとから埋め込もうとすると、引数を渡すコードを事前に生成しておかないといけない。それを作らせるために最小関数をアセンブラで作り、それをコールするコードをコンパイルすれば引数準備のコードは実装できると。"
まさみさんは語りたいさんのツイート: "optprobeは性質上あとからレジスタなどを保存して参照できるようにするけど、これは呼び出し元で引数を保存する。本当にretpolineを避けるためだけの構造のようだ。"
まさみさんは語りたいさんのツイート: "retpolineの問題は、対象となる間接参照呼び出しが、スレッドコンテキスト依存の呼び出しなのか、単にplugableな呼び出しなのかを区別せずに適用されてしまうこと。前者はretpolineが必要だが、後者はlivepatchで静的呼び出しに変更できる。これは後者の問題を解くもの。"
まさみさんは語りたいさんのツイート: "Livepatchと違い、consistencyを考慮しないでいい部分についてはこの dynamic functionを使えば良いわけだが、そのためにjmpするトランポリンを設けなくても良いのではないか、というコメントを入れておいた。そもそもデフォルト関数を実装するならそれを変更したら良いと。"

Spectre

さてはGentooだなオメーさんのツイート: "RHELがパッケージとして配布したSpectre variant 2対策のmicrocodeは一部環境で問題があったので差し戻し、今後RHELとしてvarant 2対策のmicrocodeをリリースする予定はない。CPU製造元に問… https://t.co/8Tm70ZTI2s"
What CPU microcode is available via the microcode_ctl package to mitigate CVE-2017-5715 (variant 2)? - Red Hat Customer Portal
Hajime Tairaさんのツイート: "一律同じ microcode を配ったところ、大量のメモリーを搭載できるハイエンドサーバーの一部に影響が出まして…。… "
さてはGentooだなオメーさんのツイート: "恐ろしやー。ちなみにこのリンク先、英語は全公開なのに日本語は隠れてて悲しいです。… "
まさみさんは語りたいさんのツイート: "IBPBって何かと思ったらIndirect Branch Speculation Barrierっていう新しいマイクロコードなんだね。ていうか、新しいマイクロコードの命令を直接使うコードが追加されたぞ・・・。"
まさみさんは語りたいさんのツイート: "Spectre対策を色々探っていると非常に深い。この3週間ぐらいで色んなテクニックが試されている。んで、決定版になっているのがどれかと言うとよくわからない。"
まさみさんは語りたいさんのツイート: "ひとつだけ確かなのは、Spectre V2対策は未だに決定版がなく、いくつかのテクニックを駆使して修正が行われている最中であり、しかもカーネルだけじゃなくユーザアプリも修正が必要で、コンパイラを変えるだけではなくソースコードも修正が必要になるっていうことで影響が大きい。"
まさみさんは語りたいさんのツイート: "昨日出てきた新機能。IBPB https://t.co/9WrTuIzfCV AMD/Intelが導入した新しいマイクロコード命令を使うためのマクロ。MSR越しに呼び出すと、間接分岐命令の分岐先がロードされるまで、投機的実行を止めるものらしい。"
LKML: KarimAllah Ahmed: [RFC 00/10] Speculation Control feature support
Hiromichi Itouさんのツイート: "IBRSを利用するために必要なmicrocodeを導入すると再起動する確率が上がるという問題が解決していないので、代替案としてretpolineによる対策を準備しないといけない勢なので、先週からコンパイルばかりしている。"
IntelによるSpectre対策のアップデート、Core iシリーズのほぼ全世代で不具合が出る可能性 | スラド セキュリティ
Intel Sightings in ESXi Bundled Microcode Patches for VMSA-2018-0004 (52345)
まさみさんは語りたいさんのツイート: "IBRSはSpectre V2向けのマイクロコードで提供される機能のようだが、プロセッサによってはうまく動かない模様なので、Retpolineによる緩和策を使うほうが低リスクかもしれん。やることは多くなるけど。"
まさみさんは語りたいさんのツイート: "IBPBのパッチシリーズの先にIBRSの機能も追加されていた。IBRSはこれも新しいマイクロコードの機能で、Indirect Branch Speculationを止める。提出されたパッチではカーネル空間に入る時に全てのIBSを止めるっぽい。"
まさみさんは語りたいさんのツイート: "RetpolineがあるからIBRSなんて要らないじゃーん?って思ったあなた、大体あってる。問題はRetpolineは半分コンパイラのお仕事になるんだけど、コンパイラが古いと対応できないこと、CONFIG_RETPOLINE=nでビルドされちゃうかもしれないことから、IBRSが必要になる。"
まさみさんは語りたいさんのツイート: "Spectre V2緩和策のオプションとして、IBRSかRetpolineかを選べるようになる模様。基本的にはAutoでいいけど、コンパイラの更新(Retpoline)か、マイクロコードの更新(IBRS)をした上で、カーネルの再構築が必要になる。"
まさみさんは語りたいさんのツイート: "おっと、重要な情報です。この脆弱性はLivepatchでは対処できません。"
まさみさんは語りたいさんのツイート: "たしかにこのシリーズ、indirect_branch_prediction_barrier(IBPB)と(un)restrict_branch_speculation(所謂IBRSの有効・無効コード)が混ざっていて分かりにくいんだよね。最初の4つはIBPB、後の6つはIBRSで、それぞれ使う所が違う。"
まさみさんは語りたいさんのツイート: "両方共Intel/AMDがマイクロコードでSpectre V1とV2に対応しようとして追加した機能なんよ。"
まさみさんは語りたいさんのツイート: "ごめん、IBPBもIBRSもIndirect Branchを安全にするためだからどっちもSpectre V2向けだった。"
まさみさんは語りたいさんのツイート: "もしかして、ARMはSMTサポートしていないから、スレッド間でBTBを共有する可能性がないので、Spectre V2対策はプロセス間とプロセス/カーネル間で逐次BTBフラッシュするだけでOKなのか?"
satさんのツイート: "SpectreとMeltdownはモノがモノだからしゃあないんだが、ソフトの対策、石の対策が入り混じってて何が何だかわかりにくい"
まさみさんは語りたいさんのツイート: "ソフトウェアの緩和策は可能だけど適用されるのに時間がかかるし、石の緩和策もソフトウェアの更新は必要だし型番によってはリスクもある。ハイブリッドで環境によって選んでくださいっていうのをもりもり入れているのが現状ですね。… "
satさんのツイート: "これ、こないだひらまつさんがついーとで言及してたamazonのような情報が集まる位置に居続ける企業でなければ、相当対応がキツいでしょうね… "
まさみさんは語りたいさんのツイート: "IBPBとIBRSについては、ハードウェア(マイクロコード)側で妥協できるならあのラインだろうと思うので、機能が無意味だとは思わない。 が、あんなものでお茶を濁そうとしてるなら、Linusのように怒っていい。いずれにしても新しい世代ではもっとスマートなBTBを導入する必要がある。"
まさみさんは語りたいさんのツイート: "Hyperthreadに対応したBTBと、リングによってBTBを切り替える機能、およびページテーブル切り替え時にBTBを消去する機能があれば、全体的な性能の低下はあってもV2対応は可能だろう。"
まさみさんは語りたいさんのツイート: "めんどくさいのはV1対応なんだよなー。リタイアしてない命令が引き起こしたキャッシュアクセスをなかったことにする、とかが根本解決になるけど、これはめんどくさそう。"
まさみさんは語りたいさんのツイート: "IBPBのパッチは最終的に取り込まれた模様?ちゃんと追いかけないとだけど、IntelかあらIBPBシリーズ前提で拡張パッチが出されている。"
Re: [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
まさみさんは語りたいさんのツイート: "https://t.co/3HeYfQA9Wp Intelの今後の動向がすけて見えるコミット"
[PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
高梨陣平さんのツイート: "VancouverでのLinuxカンファレンスにおいてLinusが対談。IntelのCPUの脆弱性Spectreについて語った。彼は投棄実行自体には問題が無くやるべきで、やるべきでない問題のある投棄実行も知られていたと語った。Intelの当初の対応は酷く彼は自分達が原因でないのに働くのは不公平に感じたと主張(続… https://t.co/lBFzbaEATS"
高梨陣平さんのツイート: "2つ、3つしか存在しなかったと振り返った。SpectreのLinusに対する影響は多大で4.19のマージウィンドウは通常、2週間で終わるものの、公開できないパッチを含んだためにとてもストレスの大きなものだったと述べた。しかしこの問題を超えて良い結果としてLinuxとWindwosの開発者がCPU脆弱性について協力"
高梨陣平さんのツイート: "できるようになったとKroah-Hartmanは述べた。我々は素晴しい裏ルートを手に入れた。御互いに議論し、バグを潰していると言う。5年前に誰が予想できただろうか?(終)"
まさみさんは語りたいさんのツイート: "うーむ、static callのパッチをレビューしようとしたけど、前提条件として役に立つかというと微妙すぎるのでコメントしづらい。indirect callがretpolineのせいで遅くなるのでstatic callに自己書き換えしようという話だけど、適用先が限定的すぎる(コンテキスト依存な場所では使えない)。"
まさみさんは語りたいさんのツイート: "コンテキストに依存しないindirect callってどれだけあるのかというと微妙すぎるし、pv_opsぐらいかなあ。tracepointは関数の引数を準備するところをスキップするjump labelを使っているので意味がある。"
まさみさんは語りたいさんのツイート: "jump labelと併用すればいいんだっけ?いや、ないか??"

TLB

まさみさんは語りたいさんのツイート: "うーん、speculative page table walker問題というのがあり得るのか。投機的にTLBをフィルする挙動がテンポラリにマップしたページをTLBにキャッシュするらしい。"

Linux

とみながたけひろさんのツイート: "Linuxといえどもガチヤバい脆弱性だったらコア開発者だけで公開MLとかなじゃない、非公開のメールのやり取りでパッチ作成するよね…しないのかな(←わかってない)"
KOSAKI Motohiroさんのツイート: "もちろん非公開でやります。非公開MLでだけ、なぜやばいのかを「具体的に」説明してLinusの承認をもらいます。というか、securityをハンドルするMLはコア開発者もあんまり入ってなくて専業メンテなとdistro security屋がハンドルしつつ、関係ある人が個別にCCされて… https://t.co/o7mJ87X2Xu"
とみながたけひろさんのツイート: "@kosaki55tea なるほど。パッチができることよりもパッチを適用することのほうが困難かつ重要だったりするので、そういう運用になるのはよくわかります"
Kazuki Oikawaさんのツイート: "Threadripper + 4.14.14 bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2… "
Kazuki Oikawaさんのツイート: "あ、/proc/cpuinfoの情報もいつの間にか変わってた bugs : cpu_meltdown spectre_v1 spectre_v2"
このコード、オシャカルトっ!さんのツイート: "/proc/cpuinfoのbugs欄の出方が変わってる 前 bugs : cpu_insecure 4.14.13-300.fc27 bugs : cpu_meltdown spectre_v1 spectre_v2"
このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ sysfsの/sys/devices/system/cpu/vulnerabilitiesというディレクトリにcpuの脆弱性情報があるということを知った… "
まさみさんは語りたいさんのツイート: "KPTI有効にしたカーネルつかっても、デスクトップだとそれほど有意な違いを感じない。多分グラフに取ってないとわからない。"
まさみさんは語りたいさんのツイート: "PTIはCONFIG_PAGE_TABLE_ISOLATIONで、Security optionsに含まれているがデフォルトで有効になる。"
henrichさんのツイート: "いやいや、マイナーリリースごとにバイナリリビルドするバイナリディストロなんて聞いたことないんですが。。。… "
henrichさんのツイート: "私が知らないだけで実は存在してるのかしら?(開発版をFTBFS洗い出しでビルドし直しはテストとして実施はするだろうけど。。。)… "
hitoさんのツイート: "しない状態で今まで来ていて、「Repolineするためにはもしやこれは全部リビルドしてリリースせんといかんのではQAどうしよう」つーてみんな頭を抱えてる認識。… "
henrichさんのツイート: "そう(リビルド)すべきもんだろ?という立場から言ってるのであれば、実施する際のトレードオフ考えたら妥当な結論(毎度リビルドしてリリースとかあり得んだろ)ということで… "
Fadisさんのツイート: "現在Intel CPU上で動くLinuxはSpectre/Meltdown対策がデフォルトで有効だが、Atom N270等のin-order実行のCPUにはこれらの脆弱性は無いから、これらのCPUでは対策をデフォルトで無効にして貧弱なネットブックが不必要に更に貧弱になるのを防ごう、という提案がなされている https://t.co/xMyBKxG4kc"
Spectre V2 & Meltdown Linux Fixes Might Get Disabled For Atom N270 & Other In-Order CPUs - Phoronix

microcode

HT, ベンチマーク

インテルがセキュリティパッチの影響示すベンチマーク公表禁止に?--オープンソース界の著名人が批判 - ZDNet Japan
Intel、脆弱性パッチ適用前後のベンチマーク比較禁止の規約を撤回 ただしパフォーマンスはお察しの模様 | ジサクテック
Hideyuki Tanakaさんのツイート: ">Intelが沈黙の誓いを立てているのには、仮想マシンをForeshadowの脅威から保護するためにHyper-Threading機能をオフにする必要があり、それによりパフォーマンスに大きな影響が出るからである。 (´・_・`)なるほどなあ…"
Hideyuki Tanakaさんのツイート: "IntelのHTはもう終わりです…(´・_・`)次の何とかレイクが8コア8スレは正解(´・_・`)Intel自身が一番分かってたんだな"
Hideyuki Tanakaさんのツイート: "TLBleedだけじゃなくて今回見つかったForeshadowも結局HT無効化しか対処法がなくて、実質的にもう現アーキのHT死んでるんすね(´・_・`)"
Tsuzuさんのツイート: "HTTって全然効果実感したことないんだけどそんなに効果あるんですかね"
Hideyuki Tanakaさんのツイート: "(´・_・`)どーなんだろ?レイテンシ隠しには使えるんじゃないんすかね。僕が昔実感した例としては、めっちゃでかいメモリから二分探索を超大量に行うようなアプリでは、ほぼ演算器が回らないので、HTで性能倍になりましたけど、まあこんなのはよっぽどなケースですよね"
Hideyuki Tanakaさんのツイート: "まあそれに最近はHT前提で平均的なコードの命令レベル並列性よりも多くの演算器搭載してるかもしれないし?いやあれ1スレで使い切れる前提なのかな?よーわからんすけど"
Tsuzuさんのツイート: "いまいちどういう場面でHTTが効果を発揮するかわかってないんだけど、以前clangのビルドをした時は並列数を論理コア数でやるより物理コア数でやったほうが早かったので良くわからなかった"
Hideyuki Tanakaさんのツイート: "clangのビルドとか整数演算器しか使わない上に、コンパイル自体はそんなに巨大なメモリを必要としないから、ほぼキャッシュに入って演算器もフルで回るようなタスクになってるんじゃないんすかね。あまりHTきかないタスクだと思う。"
Hideyuki Tanakaさんのツイート: ">Solving these bugs requires new cpu microcode, a coding workaround, *AND* the disabling of SMT / Hyperthreading. 新しいバグ(TLBleedとT1TF)を解決するには、新しいマイクロコードと、コーディングワークアラウンド「と」、SMT/ハイパースレッディングの無効化を要する。 (´・_・`)とな"
Hideyuki Tanakaさんのツイート: "https://t.co/AJLWIRLIt8 >Disable SMT/Hyperthreading in all Intel BIOSes >2018-08-23 18:35:22 (´・_・`)ふーん"
Lucas Holtさんのツイート: "Performance is so bad on the latest spectre patch that intel had to prohibit publishing benchmarks https://t.co/Et8FfNr6EZ"
Intel Publishes Microcode Security Patches With No Benchmarks Or Profiling Allowed - Slashdot
まさみさんは語りたいさんのツイート: "よし、HTが使えない今がARMサーバ飛躍のチャンス・・・"

Shirouzu Hiroaki(白水啓章)さんのツイート: "1/5とはすごい速度低下。 でも、ページ単位かそれ以上でのまとまったI/Oだとすると(=TLBに優しく、ユーザ/カーネル間の遷移も多くない?)、MeltdownやSpectre対策がどう具体的に影響したのか、想像がつかない…… "
SODA Noriyukiさんのツイート: "これ、仕事関係で問題になったことがあって、業務に差し支えるんですが… https://t.co/KAKhYw4JO6 meltdown/spectre のパッチ当てたら RAID の BBWC へ同期書き込み性能が 1/5 以下に低下したことがあった。"
Hideyuki Tanakaさんのツイート: "(´・o・`)・・・。 / “Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック” https://t.co/fcdgMTSq3q"
Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック
SODA Noriyukiさんのツイート: "これは512バイト単位でO_BINARYモードで書き込む計測でした。そのマシンは(RDBじゃないんですが似たような)ジャーナリング・ファイルの書き込みがボトルネックになるので、write(2)がRAIDのメモリキャッシュに書き込む部分の性能が最重要で、システムコール性能の低下が強烈に出たようです… https://t.co/BX7RhItZCj"
SODA Noriyukiさんのツイート: "あ、間違えた。O_BINARYじゃなくてO_DIRECTです。(O_BINARYってMS-DOS時代から数十年使ってないオプションなのに、なぜここで出てくるのか…^^;… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、小さなO_DIRECTはそれ自体でやたらと遅いですよね。(大きくするか非同期I/Oと組み合わせないと、実用的な速度にならない) でも、Meltdown/Spectre対策をすると、それも目でないくらい、write自体の(トランザクションの?)オーバーヘッドが大きくなると。 うーん、不思議…… https://t.co/6tRnbchfvK"
SODA Noriyukiさんのツイート: "普通ならすごく遅いんですが、対象がジャーナルファイルで容量が限られていて、かつRAIDがバッテリバックアップつきのDRAMキャッシュを載せているので、この応用の場合に限ればやってることの本質はメモリコピーに過ぎず、すごく速いです。14000~19000 iopsくらい出てました。… https://t.co/DtTgv91Ft4"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、少し判りました。 それで、syscall自体のオーバーヘッドが分かり易く出てしまう、と。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そうだとしても、1/5はすごいなぁ。… "
SODA Noriyukiさんのツイート: "1/5でも 3000iops 越えなので遅くはないんですが、遠隔地でのactive-standby 構成で性能が揃ってないと足をひっぱられるのに、standby側として予定していたほうを更新したらこうなっちゃって問題になってました…… "
Kazuho Okuさんのツイート: "なんとですね。秒間syscall数がダイレクトにパフォーマンスに影響するネットワークサーバ系ソフトウェアで大きな問題になっていないことを考えると、単純にsyscallのオーバーヘッドではなく、なにかwrite+O_DIRECT特有の事情がありそうですね… https://t.co/c9M073GS0x"
Kazuho Okuさんのツイート: "httpd とかだと 200k network io calls / sec.core くらい出るわけです"
Intelプロセッサ向けマイクロコードアップデートのニュースをファクトチェック!:その知識、ホントに正しい? Windowsにまつわる都市伝説(117) - @IT

@utshina2

品川 高廣さんのツイート: "Meltdown はアウトオブオーダー実行、Spectre は分岐予測の実装の問題を突くという違いはあるけれど、どちらも本来権限のないメモリ読み込み命令を投機的に実行させて、その結果キャッシュに残ったサイドエフェクトから値を読み取るという点ではよく似ている。"
品川 高廣さんのツイート: "Meltdown は今のところ Intel CPU 固有の問題だけど、ユーザ空間から簡単にカーネル空間のメモリを読み出せる(多分JavaScriptとかでは難しい)。これを防ぐには、ユーザ空間とカーネル空間でページテーブルを分ける Kernel Page-Table Isolat… https://t.co/08pPUzRZVb"
品川 高廣さんのツイート: "Meltdown の本質ってC言語で書くとこれだけだよね。 a = *kptr; b = array[a<<12]; aにカーネルメモリの値が入って、arrayの対応する部分がキャッシュに乗る。もちろん例外を起こして実行は取り消されるけど、キャッシュはそのままなので、arra… https://t.co/PX1Em76srz"
品川 高廣さんのツイート: "Spectre のような投機的実行の脆弱性があるCPU上では、共有アドレス空間内で言語処理系の機能によって機密性を担保することは事実上不可能であるという主張ですかね。アドレス空間を分離するしかないと。https://t.co/uDgMpzYZ4a"
[1902.05178] Spectre is here to stay: An analysis of side-channels and speculative execution
品川 高廣さんのツイート: "(1) タイマー機能(解像度によらず)と、(2) 投機的 pointer crafting を可能にする様々な言語機能(の実装)との組み合わせで、共有アドレス空間内の任意の1bitが読み込める universal read gadget が実現可能であると。これらを包括的に防ぐ方法は見つかっていない。"
品川 高廣さんのツイート: "この種の side-channel が生じる根本的原因は、CPUの1つの(外部)アーキテクチャ的状態が、複数の(内部)マイクロアーキテクチャ的状態にマップ可能であることであり、投機的実行をおこなう任意のCPUで起こりうる。これはCPUの設計上の欠陥というより、理論的な「計算」の基部にある問題であると。"
品川 高廣さんのツイート: "平たく言うと、Chrome の JavaScript エンジン V8 で Spectre 対策いろいろ頑張ったけど、もう無理だからあきらめるで、って感じ?"
hrk先生さんのツイート: "これが原因でLLCのShareは止める方向に向かうのではないかと思います。Shareしていて、今後あるであろう種々のアタックに耐えられるとは思えないので。それだけで、CPU問題が解決するわけではないですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コア間でキャッシュを共有しないと…本当にそんな日が来るのかしらん?(SMT無効化くらいにしておいて欲しいなぁ)… "
satさんのツイート: "まずはOpenBSDでLLC共有するコアは一個を除いて全部殺されるところあたりでしょうか… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "確かにありえそう。SMTを無効化した実績もあるみたいですし。 「OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化」 https://t.co/O4m4rK98Uu… "
satさんのツイート: "はい、それを念頭に置いてのコメントでした… "

@r0ktex1209

るくすさんのツイート: "んん、バグというか仕様というか 結構前からある話だけどなー 特にWindowsカーネルとかはKASLRのエントロピーが低くて、初期から叩き台にされてたり"
るくすさんのツイート: "@a4lg いえ、エントロピーは関係あるはずです。 https://t.co/hIVtE6P1aA これの事ですよね? 基本的にカーネルのロードされる場所の候補が絞れる前提かと。WinにせよLinuxにせよKASLRはスライドさせる感じの実装なんですよ。"
るくすさんのツイート: "@a4lg まあ正直KAISERより、KASLRの実装を見直すのが本質的な対策かなと思ってます。まあかなり難しそうですが...."
るくすさんのツイート: "@a4lg 読みました。 なーるほど。 あるアドレス変換に対してページレベル毎のキャッシュ情報が取れるから、幅優先的に探索していけるんですね。 これめちゃくちゃ強いっすね...."
るくすさんのツイート: "普通に勘でも思いつかなかった.... 流石ac4lgさん.... 確かにこれで出来るならエントロピーは殆ど関係ない。"
るくすさんのツイート: "出回ってるPoCの多くはbrute forceなんすよね でも言われてみれば確かに階層まで分かるなら、自明に枝刈りができる"
るくすさんのツイート: "正直初めてKAISERのパッチ見た時は、ええこれまたLinus大激怒するんじゃないの.... だった。まあマージされるまでの細かい議論は追ってないから何ともだけど、パフォーマンス大低下させてまでやるべきなのかというか...."
るくすさんのツイート: "KPTI(KAISER)はカーネルエリアをUnmapする事でサイドチャネルを防ぎますが、カーネルエクスプロイターにはあまり影響ないです。 こいつはあくまでユーザーモード実行中の話で、カーネルモード実行中は今まで通りユーザー空間がMapされたままのモデルだからですね。"
るくすさんのツイート: "要するにret2usrもret2dirも基本的には今まで通り使えるはず。 そもそもKAISERの目指すモデルはARMアーキテクチャのTTB0/TTB1のような完全にユーザー/カーネルでテーブルが分離された"Stronger Kernel Isolation"モデルだったんだけど、… https://t.co/wZHTZiOrlF"
るくすさんのツイート: "Intel CPUの性能低下、何がクリティカルな要因かまでは知らないけど、大体PCIDとかで何とかならないの?と思ったら、何とかなってる事例がMacなのね。"
るくすさんのツイート: "KPTIはユーザー/カーネル空間を完全に排他的にマップする訳では無いんだけど、仮に完全排他"Strong Kernel Isolation"を実現するとどの程度パフォーマンスが落ちるかについてはGruss et al. https://t.co/TCTJEJMH7L に一応書い… https://t.co/jBTMGG1SrC"
prefetch.pdf
るくすさんのツイート: "なので、件の論文はおそらくPCID無効でやってる気がするんですけど、なんでこんなオーバーヘッド少なくなってるんだろう... わけわかんね..."
ファッション自作OSマンさんのツイート: "その筋の専門家=るくすさん https://t.co/6hFDxuzvJO"
るくすさんのツイート: "いやマジで、Spectre/Meltdownとその対策云々については一回その筋の専門家が真面目に検証,解説記事を書いた方が良い気がしてる。 今回のは特に、表面的にもそれなりに理解できてしまう内容だから、正直真に欲しい情報が書いていない事が多い。"

#x86opti

とみながたけひろさんのツイート: "ああそうか、Spectreでページサイズぐらいの間隔にしてたのはページ境界をまたいだプリフェッチが働かないのを使っているのか。TLBのヒット差も入れるためかなあと思ってたんだけど、そっちだったのだな #x86opti"
まさみさんは語りたいさんのツイート: "KPTIで処理速度が落ちる話、カーネル側の処理はこれまで通りじゃなかったっけ?ページテーブル切り替えでオーバヘッドはかかるんだけど、実際のアクセスについては出来るような。"
まさみさんは語りたいさんのツイート: "Unixプログラムの場合Sigsegvは無視できるんだよね。"
まさみさんは語りたいさんのツイート: "Meltdownは本当に大変な問題なんだよね。簡単に出来るから。 #x86opti"
とみながたけひろさんのツイート: "本当にVariant3は怖いよなあ。SELinuxとかでプロセスの権限とか削りまくってもほとんど回避できないからなあ #x86opti"
まさみさんは語りたいさんのツイート: "KPTIのオーバヘッドの話。ページテーブルの切り替えオーバヘッド+TLBフラッシュ、あとはTLBミスとかの増加か。"
まさみさんは語りたいさんのツイート: "PCIDの話もするのかー。"
まさみさんは語りたいさんのツイート: "INVPCIDがないとPCIDを使い回すことができなくなっちゃう(使いまわすと前のTLBとかそのまま使ってしまうので)ので使いようがないよな。 #x86opti"
まさみさんは語りたいさんのツイート: "ああ、なるほど。TSXをつかったらシグナル関係ないからな。その前に実行失敗したかどうかが分かる。 #x86opti"
とみながたけひろさんのツイート: "ああ、サイドチャネル攻撃、TSXが最速だったのか。現状イマイチTSXが有効利用されてないことを考えると、このままでは攻撃専用命令扱いになってしまうな…(ぉぃ #x86opti"
まさみさんは語りたいさんのツイート: "通常 アクセス→例外→カーネルが処理→signal飛ばす→ユーザアプリに戻る TSX アクセス→TSXミス→TSXミスハンドラ(ユーザ定義)に飛ぶ"
とみながたけひろさんのツイート: "TSX使えばシグナルハンドラに飛ぶまでもなく失敗したかどうかがわかるから爆速になる、ということかな #x86opti"
shinichiro hamajiさんのツイート: "というか失敗は常にするけどシグナルハンドラで無視するよりTSXで無視した方が速いっていうだけの話じゃないかなと。TSXを手法の一部と言うの違和感ありました… "
とみながたけひろさんのツイート: "https://t.co/2gHq6FSXnO シグナルハンドラが呼ばれるのは一緒だけどカーネルを経由しない、ということか。なるる"
satさんのツイート: "TSX: 503KB/s signal handler: 123KB/s です。数倍程度早いです P12 #x86opti https://t.co/f9iXXJg3XW… "
satさんのツイート: "最適化勉強会、客層が読めなかったので前提知識として - サイドチャネルアタック - Flush+Reload攻撃 - 分岐予測による投機的実行 - OoO実行 あたりを説明したんだけど、その間半分くらいの人の目からハイライトが消えてたので「なるほどね?」っておもった"
ほろころさんのツイート: "Branch Predictionの機能を既に知っているか否かによりますね。 https://t.co/j2zLG3H26t"
x86/x64最適化勉強会8 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

まさみさんは語りたいさんのツイート: "variant5も打ち込んできたなー"
まさみさんは語りたいさんのツイート: "そういえばgregがspectreで上げた脆弱なコードの例は、脆弱性にならないんだよね。話はもっとややこしい。2つの異なる配列をアクセスしないと、結果が読み取れないからね。"
Thread Reader Appさんのツイート: "Saluti you can read it here: Thread by @ogawa_tter: "Meltdown, Spectreで学ぶ高性能コンピュータアーキテクチャ、 @dev_msyksphinz 、2018/1/6 https://t.co/9fA0aWza4I… 勉強になります 分岐予測 d […]" https://t.co/HtrV9pxEoC Have a good day. 🤖… https://t.co/6b7uIIPICx"
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei HPCアプリケーション (WRF/GROMACS/NAND/GSI) での Meltdown/Spectre Patchesの影響について、 TACC (Texas Advanced Computing Center) の報告です https://t.co/CBAQtk1YXk IXPUG (2018/3/5): Intel eXtreme Performance Users Group"
まさみさんは語りたいさんのツイート: "CD/DVDのデバイスIOについてカーネル内の配列を直接悪用するspectreのexploitを読んで、これだとユーザ空間から直にindexを渡される配列のアクセスについてはすべからく危険だなあと思った。 https://t.co/ViUQBwvHiQ"
linux-exploit/leak_pkt_devs.c at master · jinb-park/linux-exploit
まさみさんは語りたいさんのツイート: "ユーザ空間のメモリをキャッシュアウト→カーネルの配列アクセスに巨大な値を埋め込んで投機的実行させ、キャッシュが乗るかどうかを確認→キャッシュが乗ったら、その配列のvaddrが確認できる。これはカーネルのデータがリークするわけじゃないけど、アドレスはリークするのでKASLRを破れる。"
まさみさんは語りたいさんのツイート: "Spectreを使ってカーネル内のデータを取得するには2つの配列アクセスが必要で、ほとんど無理ゲーだけど、カーネル内のアドレスを取得するだけなら1つの配列アクセスだけで済むので、結構簡単に出来てしまう、という話。"
suzakiさんのツイート: "NDSSマルウェア五つ目。マルウェアを隠すためにSpectreを使うExSectreの発表(Colorado Bouder)。実行を検出することできず、またCPUの状態を覗いてもわからない。 ASN-NI命令がガジェットに使えるのが面白い。Loadは使えるが、Storeはダメ。またsyscallは使えない。 https://t.co/gcfcYmv2eZ"
ndss2019_02B-5_Wampler_paper.pdf
suzakiさんのツイート: "確かSpectreをcovert Channelに使う研究があったけど同じ系統ですね。 そういえば、ARM TrustZoneのCovert ChannelであるPrime+Countの発表がACSAC18であった。"

Spectre/Meltdownとその派生
security rhel disable - retpolineとは何ですか?どのように動作しますか? - CODE Q&A 問題解決
Kazuho Okuさんのツイート: "retpoline「Spectreは俺が倒した」Intel「ペナルティが必ずかかると思ってた?馬鹿め」retpoline「ぐぬぬ」って流れじゃなかったでしたっけ… "
_ko1さんのツイート: "え、そういう話だったんだ(全然調べてない)。call cache があるとかないとか。… "
Kazuho Okuさんのツイート: "return address stackがret命令の分岐先予測に失敗したら、確実にストールするというのがretpolineの設計の前提なんだけど、最近のIntel CPUだと別の予測も組み合わせているのでそうとは限らないみたいな話だったような気がするなーと… "
_ko1さんのツイート: "まじすか最近のプロセッサすげーな… "
Kazuho Okuさんのツイート: "もともと https://t.co/rnFUx2bnP4 みたいな話はあるのですが、これ以外になんのために、なにをやってるんでしょうね… "
はじめてのにき(2010-07-06)
Kazuho Okuさんのツイート: "そういえば、関数ポインタを nullable にして if (p) (*p)() とやるより、non-nullable にして空関数を (*p)() にするほうが速いことがあるって @herumi さんが言ってたのも、call-ret使ってeip取るイディオムを最適化する関係なのかなぁ"
Kazuho Okuさんのツイート: "あーそうか Intel CPU が RET 命令について Return Stack Buffer 以外にも分岐予測を組み合わせてるって件、例外処理とかコンテクストスイッチでずれてフラッシュした際のバックアップなのかなと考えると納得いく"
Kazuho Okuさんのツイート: "分岐「先」予測"
KOSAKI MotohiroさんはTwitterを使っています 「Intelは性能劣化するパッチは全ベンダが性能劣化する形で作ってきますね」 / Twitter
matsuuさんはTwitterを使っています 「KVMにおいてIntel CPUの脆弱性対策パッチが、必要ないはずのAMD CPUにも適用されており性能劣化がおきているらしい。oh。今後修正&バックポートされる見込み。 / “Linux KVM Virtualization Had Mistakenly Been Applying L1TF Workaround To Unaffected CPUs - Phoronix” https://t.co/empisPTwjN」 / Twitter
ChromeとFirefoxの新しいCOOPとCOEPはセキュリティを高めるクロスオリジンポリシー

SPOILER

インテル製チップに新たな脆弱性「SPOILER」--AMD、armにはない固有脆弱性。: なんとなく綴ってみた
インテル製チップに新たな脆弱性「SPOILER」--修正は困難との指摘も - CNET Japan
1903.00446.pdf

Fail-Safe C: Top Page

Checked C

Checked C - Microsoft Research
Microsoft/checkedc: Checked C is an extension of C that adds bounds checking to C. This repo contains the specification for the extension, test code, and samples.
Microsoft、C言語を拡張する「Checked C」を開発中 | マイナビニュース
Microsoft、C言語を拡張した「Checked C」をオープンソース化 | スラド デベロッパー
Microsoft、C言語に静的/動的チェック機能を加えた「Checked C」を公開 | OSDN Magazine
LLVMを拡張してメモリ空間安全性をCで実現するChecked C

Security | すなのかたまり | ページ 2

ASLR Cache(AnC)

既存のx86/ARM CPUほぼ全てに通用するJavaScript攻撃が発見される ~アドレス空間配置のランダム化を突破 - PC Watch
JavaScriptでASLRを無効化する攻撃「AnC」 | スラド セキュリティ
vusec/revanc: Reverse Engineering Page Table Caches in Your Processor

ASLR Cache

int $0x03@SNS部さんのツイート: "cpuの分岐予測のキャッシュ機能がASLRをバイパスするキーになると / “121412” https://t.co/sX6tgMiVHB"
Bypassing ASLR in 60 Milliseconds | Threatpost | The first stop for security news

Stack Smashing Protection

単純なスタックバッファオーバーフロー攻撃をやってみる - ももいろテクノロジー
Buffer overflow protection - Wikipedia
Stack Smashing Protector - OSDev Wiki
000013695.pdf
stack smashing | スタック破壊 - Qiita
Stack-smashing Protection (SSP) - OWASP
Security Technologies: Stack Smashing Protection (StackGuard) - Red Hat Customer Portal
What is the meaning of "Stack smashing protect failure"? · Issue #1455 · espressif/arduino-esp32
Prevent Stack-Smashing Attacks - Network Security Hacks [Book]
ubuntu - is stack-smashing protection on on Debian? - Unix & Linux Stack Exchange
FadisさんはTwitterを使っています 「stack protectorのカナリアはexec毎に異なる値になるが、forkしただけでは変わらないため、子プロセスに通信の相手をさせて子プロセスが落ちたら親プロセスが作り直すようなサーバアプリケーション(よくある)では子プロセスのスタックを破壊して漏らしたカナリアの値が、次の一撃に使える、と」 / Twitter

Automatic Fortification

バッファオーバーフローへの対策技術入門
2017年10月25日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
Advances in Information and Computer Security: 13th International Workshop ... - Google ブックス
Fortification of IT Security by Automatic Security Advisory Processing - IEEE Conference Publication
Bread and Its Fortification: Nutrition and Health Benefits - Google ブックス
gcc4 on cygwin - BOOLEANLABEL

Pwn入門

Fadisさんのツイート: ". @megumish さんの「Pwn入門」が始まります #kernelvm"
Fadisさんのツイート: "Pwnとは: サーバを攻撃して制御を奪う。シェルとかを実行する #kernelvm"
Fadisさんのツイート: "メモリ上の命令列を書き換えるのがPwnを行う最も簡単な方法だが、今日のプロセッサではメモリ領域に対して行える操作が設定されていて普通は実行可能バイナリを直接書き換える事はできない #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "Pwnするにはメモリの値を書き換えたい。そのためにバッファオーバーフローや書式文字列の攻撃を使うわけか。ROP(Return Oriented Programming)もその一つ。 #kernelvm"
Fadisさんのツイート: "バッファオーバーフロー、ROP、Format String Attackなどを使ってPwnを行う #kernelvm"
Fadisさんのツイート: "スタックの変数の範囲外に書き込める不具合があるとリターンアドレスを書き換えられる→retで実行可能バイナリの好きなところに飛ぶ事ができる #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "ASLRがあるとスタック領域の場所がわからないので、.bss領域を使う #kernelvm"
Fadisさんのツイート: "バッファオーバーフローでリターンアドレスが.bssを指す状態にしてbssにシェルコードを書いておく → NXbitが有効に使われているとこの方法は使えない → そういうときはROP #kernelvm"
Fadisさんのツイート: "任意のサイズのmallocが可能 かつ Heap Over Flowができる状況では File Stream Oriented Programmingが可能になる #kernelvm"
Fadisさんのツイート: "発表者「正しく知識として身につけるためにはmallocの実装を理解する必要がある」 #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "小崎先生のmalloc動画を見ていたお陰でmain arenaが何なのかはなんとなく分かるぞ。見といてよかったmalloc動画。 #kernelvm"

Beyond Zero-day Attacks

Beyond Zero-day Attacks - @IT
脆弱性と攻撃をめぐる事件と話題 (1/2):Beyond Zero-day Attacks(1) - @IT
スタックに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(2) - @IT
ヒープに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(3) - @IT
Use After Freeとヒープスプレー (1/3):Beyond Zero-day Attacks(4) - @IT
DEPの仕組みとその回避手法 (1/3):Beyond Zero-day Attacks(5) - @IT

Wikipedia

Transient execution CPU vulnerabilities - Wikipedia
Hardware security bug - Wikipedia
Return-oriented programming - Wikipedia
Sigreturn-oriented programming - Wikipedia
JIT spraying - Wikipedia

GIGAZINE

Appleが「プライバシー上の懸念あり」としてSafariへの一部ウェブAPIの実装を拒否 - GIGAZINE
HDDのコントローラーをハッキングするとデータの傍受やHDD基板へのLinuxインストールが行える - GIGAZINE
Microsoftがオープンソースの機械学習セキュリティフレームワークをリリース - GIGAZINE

スライド

"どこ"から脆弱性を発見するか
セキュリティとプログラミング
スタックの歩き方 - Speaker Deck
マクロな視点から捉える Web セキュリティ / Web Security from the Macro Perspective - Speaker Deck

blog

Project Zero

Project Zero

Project Zero: Detecting Kernel Memory Disclosure – Whitepaper
Project Zero: Drawing Outside the Box: Precision Issues in Graphic Libraries
Project Zero: Adventures in vulnerability reporting
Project Zero: OATmeal on the Universal Cereal Bus: Exploiting Android phones over USB
Project Zero: A cache invalidation bug in Linux memory management
Project Zero: 365 Days Later: Finding and Exploiting Safari Bugs using Publicly Available Tools
Project Zero: Deja-XNU
Project Zero: Heap Feng Shader: Exploiting SwiftShader in Chrome
Project Zero: Adventures in Video Conferencing Part 1: The Wild World of WebRTC
Project Zero: Adventures in Video Conferencing Part 2: Fun with FaceTime
Project Zero: Adventures in Video Conferencing Part 3: The Even Wilder World of WhatsApp
Project Zero: Adventures in Video Conferencing Part 4: What Didn't Work Out with WhatsApp
Project Zero: Adventures in Video Conferencing Part 5: Where Do We Go from Here?
Project Zero: Searching statically-linked vulnerable library functions in executable code
Project Zero: Taking a page from the kernel's book: A TLB issue in mremap()
Project Zero: The Curious Case of Convexity Confusion
Project Zero: Windows Kernel Logic Bug Class: Access Mode Mismatch in IO Manager
Project Zero: Splitting atoms in XNU
Project Zero: Virtually Unlimited Memory: Escaping the Chrome Sandbox
Project Zero: Trashing the Flow of Data
Project Zero: Windows‌ ‌Exploitation‌ ‌Tricks:‌ ‌Spoofing‌ ‌Named‌ ‌Pipe‌ ‌Client‌ ‌PID‌

Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
Project Zero: Internet Explorer EPM Sandbox Escape CVE-2014-6350
Project Zero: Enabling QR codes in Internet Explorer, or a story of a cross-platform memory disclosure
Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
Project Zero: Virtually Unlimited Memory: Escaping the Chrome Sandbox
Project Zero: The Great DOM Fuzz-off of 2017
Project Zero: Down the Rabbit-Hole...
Project Zero: Did the “Man With No Name” Feel Insecure?
Project Zero: In-Console-Able
Project Zero: A Token’s Tale
Project Zero: Dude, where’s my heap?
Project Zero: Escaping the Chrome Sandbox with RIDL
Project Zero: TFW you-get-really-excited-you-patch-diffed-a-0day-used-in-the-wild-but-then-find-out-it-is-the-wrong-vuln
Project Zero: Searching statically-linked vulnerable library functions in executable code

ももいろテクノロジー

WindowsでIDT overwriteによる権限昇格をやってみる - ももいろテクノロジー
IAT書き換えによるAPIフックをやってみる - ももいろテクノロジー
ROP検知手法RAPについてまとめてみる - ももいろテクノロジー
JIT-ROP緩和手法Heisenbyteについてまとめてみる - ももいろテクノロジー
x64でDynamic ROPによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
x64でROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
ROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避 - ももいろテクノロジー
ROP stager + read/writeによるASLR+DEP回避 - ももいろテクノロジー
ROP stagerによるシェルコード実行をやってみる - ももいろテクノロジー
Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIX
osdi16_slides_williams-king.pdf
Amazon EC2のGPUインスタンスでハッシュ解読をやってみる - ももいろテクノロジー
Pythonでネイティブコードを実行する - ももいろテクノロジー
glibc malloc exploit techniques - ももいろテクノロジー
plain RSAに対するLSB decryption oracle attackをやってみる - ももいろテクノロジー
The Malloc Maleficarum (Bugtraq 2005) - ももいろテクノロジー
Exploit系複合テクニックのメモ - ももいろテクノロジー
「Can We Prevent Use-after-free Attacks?」というタイトルで発表した - ももいろテクノロジー
Can We Prevent Use-after-free Attacks?
x64でSigreturn Oriented ProgrammingによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
Windows x64でReturn-oriented Programming(ROP)によるDEP回避をやってみる - ももいろテクノロジー
Windowsでnon-ASLR DLLを利用したROPによるDEP回避をやってみる - ももいろテクノロジー
ROP stager + Return-to-dl-resolveによるASLR+DEP回避 - ももいろテクノロジー

yohgaki's blog

OWASP

2017年版OWASP TOP 10 – yohgaki's blog
2017年度版 OWASP TOP 10 で変るWebセキュリティのルール – yohgaki's blog
OWASP Secure Coding Practices – Quick Reference Guide – yohgaki's blog
OWASP Secure Coding Practices – Quick Reference Guideの訳語 – yohgaki's blog
OWASP TOP 10のセキュリティ対策 – yohgaki's blog
知っておくべきITセキュリティ概念Top 10 〜ショート版〜 – yohgaki's blog
当たり前?非常識?開発者必修のセキュリティ概念 Top 10 – yohgaki's blog

構造・原理・原則・基本・基礎

セキュリティの原理、原則、ベストプラクティス – yohgaki's blog
攻撃可能面の管理 – セキュリティの基本 – yohgaki's blog
アプリとライブラリの違い – セキュリティの基礎 – yohgaki's blog
プライバシーの8原則 – yohgaki's blog
ITセキュリティ対策の構造化 – yohgaki's blog
アプリケーションのセキュリティと必要十分条件 – yohgaki's blog
セキュリティを論理的に構築する方法 – yohgaki's blog
究極のセキュリティ要求事項とは? – yohgaki's blog

分析

データフロー分析とセキュリティ – yohgaki's blog
無視されているリスク分析 – yohgaki's blog
リスク分析とリスク対応をしよう – yohgaki's blog

脆弱性・攻撃

まだ誰も知らない脆弱性/攻撃に備える方法 – yohgaki's blog
コード”だけ”に着目すると脆弱性が量産される – yohgaki's blog
脆弱性を呼ばれた側の責任にする、は通用しない – yohgaki's blog
インジェクション攻撃は3種類ある – yohgaki's blog

対策

セキュリティ対策が論理的に正しいか検証する方法 – yohgaki's blog
OSコマンドのエスケープ – yohgaki's blog
JavaScript文字列のエスケープ – yohgaki's blog
そもそもエスケープとは何なのか? – yohgaki's blog
完全なSQLインジェクション対策 – yohgaki's blog
JSONのエスケープ – yohgaki's blog
PHPとXML eXternal Entity(XXE)対策 – yohgaki's blog
本当にプリペアードクエリだけを使っていますか? – yohgaki's blog
クロスサイト攻撃からローカルネットワークのシステムを守る簡単な方法 – yohgaki's blog
PHPのHTMLエスケープ – yohgaki's blog
validate-phpのPHPスクリプト版 – yohgaki's blog
hash_hkdf()でわざわざバイナリキー/バイナリSaltを使うことに意味はない – yohgaki's blog
SQLクエリと識別子エスケープの話 – yohgaki's blog
PHPでCSRF対策を自動的に行う方法 – yohgaki's blog
ソーシャルメディアフィンガープリントとその対策 – yohgaki's blog
”雑”なソフトウェアセキュリティ対策 – yohgaki's blog
データのセキュリティ対策が無いセキュリティ対策?! – yohgaki's blog
実は知られていない?リスク対策の原則? – yohgaki's blog
出力対策の3つの役割 – yohgaki's blog
PHPセッションとSameSiteサポート – CSRF, XSS対策 – yohgaki's blog
何故こうなった?プログラムの動作原理を無視したセキュリティ対策 – yohgaki's blog

認証

間違いだらけのHTTPセッション管理とその対策 – yohgaki's blog
解答:まちがった自動ログイン処理 – yohgaki's blog
今すぐできる、Webサイトへの2要素認証導入 – yohgaki's blog

バリデーション

Yasuo Ohgaki (大垣靖男)さんのツイート: "結局ところ、セキュリティホールを無くそう、と考えて作るよりも、正しく動く事を保証しよう、考えて作る方が近道。 #セキュアコーディング"
バリデーションには3種類のバリデーションがある 〜 セキュアなアプリケーションの構造 〜 – yohgaki's blog
バリデーションですべきこと – yohgaki's blog
エンジニアなら分かる文字エンコーディングバリデーションの必要性 – yohgaki's blog
数値のバリデーションは無意味なのか? – yohgaki's blog
入力値の種類は3種類しかない – yohgaki's blog
出力対策の3原則 – yohgaki's blog
”形式的検証”と”組み合わせ爆発”から学ぶ入力バリデーション – yohgaki's blog
入力バリデーションで許可した文字で発生するリスク – yohgaki's blog
入力バリデーションが甘いソースコードの検査は本当に大変 – yohgaki's blog
ドイツ人と入力バリデーションについて議論した話 – yohgaki's blog
入力データのバリデーションを簡単に 〜 Validate for PHP 0.7.0 – yohgaki's blog
ゼロトラストとフェイルファースト – yohgaki's blog
「フェイルセーフ」とは何なのか? – yohgaki's blog
データ検証をしない仕様には「脆弱性名」を付けた方が良いのでは? – 未検証入力 – yohgaki's blog

アンチプラクティス

ベストプラクティスもどきのアンチプラクティス TOP 10 – yohgaki's blog
「脆弱性を局所的に潰す」はアンチプラクティス – yohgaki's blog
第一のソフトウェアセキュリティ原則さえ普及しない最大の理由とは? – yohgaki's blog
ホワイトリスト派とブラックリスト派 〜 セキュアコーディングが行われない理由 – yohgaki's blog
「出力対策だけのセキュリティ設計」が誤りである理由 – yohgaki's blog
ソフトウェアは「入り口ノーガード設計」のままで良いのか? – yohgaki's blog

プログラミング言語

X-Content-Type-Options: nosniff はIE以外にも必要 – yohgaki's blog
JavaScriptでインジェクションリスクがある関数/機能など – yohgaki's blog
PHPの危い関数リスト – yohgaki's blog
JSONPは危険なので禁止 – yohgaki's blog
PHPのserialize()/unserialize()を安全に利用する方法 – yohgaki's blog
セキュアコーディングは言語を問わず適用できる – yohgaki's blog
PHPのPharを使ったコード実行 – yohgaki's blog
PHP 5.6.38他で修正された任意コンテンツ送信脆弱性について – yohgaki's blog
PHP用のCookieセッションセーブハンドラー – yohgaki's blog
Railsのリモートコード実行、今昔 – yohgaki's blog
Risk of the session adoption – yohgaki's blog
PHP 7.3 – yohgaki's blog

設計・コーディング

プログラムから「想定外」を無くす方法 – yohgaki's blog
構造化設計とセキュアコーディング設計の世界観は二者択一なのか? – yohgaki's blog
コマンド実行時、コマンドと引数を分離すれば完璧? – yohgaki's blog
命令と引数を分離すれば安全、と考えてしまう”とんでもない誤解”はどこから生まれるのか? – yohgaki's blog
今さら聞けない「コード」と「データ」の話 – yohgaki's blog
今のソフトウェアセキュリティが不十分である原因とは? – yohgaki's blog
正しく動作するソフトウェアの作り方 – yohgaki's blog
APIを過信するとおかしな事になる例 – SAML認証成り済まし – yohgaki's blog
プログラミングを覚えたら先ず知るべきコーディングプラクティス – yohgaki's blog
データのコンテクスト – セキュリティ対策の基本 – yohgaki's blog
セキュリティに拘ってもセキュアにならない – 開発環境セキュリティ – yohgaki's blog
開発者の自由を許容するセキュリティ、自由を束縛するセキュリティ – yohgaki's blog
セキュアコーディングの構造/原理/原則 – yohgaki's blog
ファイルパスを安全に出力可能か? – yohgaki's blog

RDBMS

RDBMSから学ぶデータセキュリティ – yohgaki's blog
PostgreSQLの文字列型の最大長は? – yohgaki's blog
SQLインジェクション対策保証付きソースコード検査はじめました – yohgaki's blog

IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – yohgaki's blog
IPA セキュア・プログラミング講座:IPA 独立行政法人 情報処理推進機構
なぜWebセキュリティはここまでダメなのか? – yohgaki's blog
それは”ただのバグ”なのか?それとも? – yohgaki's blog
知らないと勘違いする「合成の誤謬」の罠 – yohgaki's blog
とあるネットワーク技術者の防御法 – yohgaki's blog
セキュリティ対策の目的 – yohgaki's blog
危険なコードを書くメカニズム – yohgaki's blog
遅すぎるサニタイズではダメな例 – yohgaki's blog
コードで学ぶセキュアコーディング 〜 SQLインジェクション編 – yohgaki's blog
IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – その2 – yohgaki's blog
マイクロサービスアーキテクチャーのSSRF問題とセキュアコーディング – yohgaki's blog
CWE-20は知られているか? 〜 開発者必修のNo.1脆弱性のハズが知られていない 〜 – yohgaki's blog
正規表現をより安全に使う方法 – yohgaki's blog
エラーと例外とセキュアコーディング – yohgaki's blog
IPAの「安全なWebサイトの作り方」は安全な作り方のガイドではない – yohgaki's blog
MITREがCWEを大幅更新 – yohgaki's blog
開発者必修の7PKとは? – yohgaki's blog
コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則 – yohgaki's blog
セキュリティソフトウェア ≠ ソフトウェアセキュリティ – yohgaki's blog
7PK – APIの乱用とは? – yohgaki's blog
欧州の個人データ移転規制が日本は対象外となる件について – yohgaki's blog
セキュリティ機能の利用はソフトウェアセキュリティではない – yohgaki's blog
ソフトウェアには入力バリデーションは必要ない 〜 ただし条件付きで – yohgaki's blog
おかしなCWE-20の読み解き方 – yohgaki's blog
データ型とセキュアコーディング – yohgaki's blog

コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama|note
マイクロソフト、バグや脆弱性の検出を自動化する「Project OneFuzz」をオープンソース公開。すでに同社内でWindowsやMicorosoft Edgeのデバッグに利用中 - Publickey
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CallerCheckとSimExec~ – 他人の空似
【インターンレポート】LINEクライアント内に見つかった脆弱性について - LINE ENGINEERING
セキュリティ・キャンプ全国大会「マルウェアの暗号処理を解析しよう」の紹介, Hiroki Hada
スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帖
Intel 社製グラフィックス アクセラレータ用の Intel Unified Shader コンパイラで発見された脆弱性
Google Developers Japan: Android の FORTIFY

Twitter

その他

港務部長オルミンの温冷鮭サンドイッチさんのツイート: "CVE-2014-9322 #kernelvm [sokutenable]"
OS作れないマン WalB担当さんのツイート: "ROPは、コード領域で自分が欲しい命令列になるアドレスを頑張って探してジャンプする #kernelvm"
るくすさんのツイート: "久しぶりにヒープ系のエクスプロイト書いた。 WebKit OOB 1byte-writeでよろしくやるコードですね。これで分かる人は分かると思う。 (pwn2own 2014のやつ)"
$Hell on Sony Snatch the Kernel privilage from Browser // Speaker Deck
suzakiさんのツイート: "バイナリが本当のソースから作られたことを検証するdiffing Toolsに関するブログ。IDAProに類似度比較のPlugInを入れる。 https://t.co/OP4rHkMeTR Hacktivity18の”Diffing C Sources to Binaries”で発表される。 https://t.co/yJN3HNbi64"
Histories of comparing binaries with source codes | Unintended Results
OSC2019東京・春出展さんのツイート: "HMAC(key, msg) == signature; のどこが問題かという話.比較関数==は(大抵の実装では)先頭から調べて一致しなくなったらfalseを返すので,1文字目が一致するかしないかで応答時間が微妙に異なる.そこを計測できるとMACを推定することが可能."
uint256_tさんはTwitterを使っています 「Anti hacking compiler ってなんだろう」 / Twitter
uint256_tさんはTwitterを使っています 「https://t.co/FMlgTMBDMR」 / Twitter
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】

code randomization

まさみさんは語りたいさんのツイート: "intelの人のcode randomizationのセッションに来た"
まさみさんは語りたいさんのツイート: "honkey tonkだ。"
まさみさんは語りたいさんのツイート: "kaslrはエントロピーが少なすぎてブルートフォース攻撃を許してしまうと。"
まさみさんは語りたいさんのツイート: "あー、これは来るぞ"
まさみさんは語りたいさんのツイート: "日立のときに最後に出した特許と同じ話するんじゃないかなー。"
まさみさんは語りたいさんのツイート: "関数単位でのreorderingか、少し期待はずれだけど、多分このあと変わるんじゃないか。"
まさみさんは語りたいさんのツイート: "function bodyをbasic blockに分割し、初期化時あるいは実行中にBBをreorderあるいはshiftすることでROPを防ぐ、という話を書いたことがある。symbol tableや関数アドレスはそのまま使えるがコードが別の場所に飛んでいる。"
まさみさんは語りたいさんのツイート: "うーむ、タイトルからspectre系の話だと思ってたのに。"
まさみさんは語りたいさんのツイート: "質問したいけど次の発表が隣だから"

kernelvm

2017-11-18

CTF

No.1

Fadisさんのツイート: ". @Charo_ITCODE さんの「BLUE CTF 2017で出した問題の話」が始まります #kernelvm"
Fadisさんのツイート: "プログラムを乗っ取るために書き込みを試みる対象: 関数ポインタ、スタック上のリターンアドレスなどそれらを保持する配列のポインタ等、ジャンプ先を司っている値 #kernelvm"
Fadisさんのツイート: "関数呼び出しはほとんどのアーキテクチャにおいて関数が置かれたアドレスへの特殊なジャンプ(アーキテクチャによっては本当にただのジャンプ命令)だから、飛び先のアドレスが書き換わっていれば違うものが実行される #kernelvm"
Fadisさんのツイート: ".got.pltのポインタを書き換えて本来と違うコードの実行を行う。最近のアーキテクチャではデータ領域に置いた任意のデータの実行を阻む仕組みが備わっている事があるが、プロセス中に実行可能バイナリとしてロードされている他の実行可能バイナリなら実行できる #kernelvm"
Fadisさんのツイート: "ASLR PIEなどを使ったバイナリでは関数はランダムなアドレスに配置され、攻撃者が狙って特定の関数呼び出しを行う事が難しくなる #kernelvm"
Fadisさんのツイート: "バッファオーバーフローによってリンクリストのデータの次にあるnextの値が書き換えられる時、nextのアドレスを書き換えて次の要素に書き込みが起こるような処理を行えば任意の箇所に書き込みを行うことができる #kernelvm"
Fadisさんのツイート: "ASLRがある場合ライブラリ関数の配置がわからないため、アドレスリークが可能な脆弱性が無いと確実な乗っ取りは行えない #kernelvm"
Fadisさんのツイート: "偽のstrtabを用意してdynamicセクションを書き換えてライブラリ関数のアドレス解決時に別のアドレスが返るようにする #kernelvm"
Fadisさんのツイート: "strcmp関数を読んだ時実際に実行される関数がsystem関数になるような偽のstrtabを用意し、strcmpに実行したいコマンドを渡してシェルを得る #kernelvm"
Fadisさんのツイート: "CTFで8/554チームがこの問題をクリア → まずまずの難易度 (まずまずとは) #kernelvm"

No.2

Fadisさんのツイート: "printf("%3$d",2,1,0); // 0が出る printfでは指定した位置の引数を$で引っ張ってくる事ができる #kernelvm"
Fadisさんのツイート: "printf( "%3$*4$d%5$n", 2, 1, 0, 5, &a ) // 文字数を出力することもできる #kernelvm"
Fadisさんのツイート: "printfのformat stringで足し算ができる!!! #kernelvm"
Fadisさんのツイート: "format stringで処理系を作るwww #kernelvm"
Fadisさんのツイート: "プログラムカウンタ、リンクレジスタ、汎用レジスタ、関節参照アドレスレジスタ等を用意し、全てprintfに引数として渡し、format stringを駆使してこのレジスタ上で計算を行う #kernelvm"
Fadisさんのツイート: "引き算: 2の補数の足し算ができれば良い → 補数を求めるテーブルを用意 #kernelvm"
Fadisさんのツイート: "このprintfの問題は狂気じみた問題にもかかわらずCTFで11/554チームが解けた #kernelvm"

@fadis_

Fadisさんのツイート: "最近のメモリで見られる 同じ行に連続してアクセスすると直接アクセスしていない領域の値が化ける現象(RowHammer問題) を利用してLinuxで権限昇格ができる模様 http://t.co/10kwCTzMyJ"
Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
Fadisさんのツイート: "「バッファオーバーランによる脆弱性の仕組みを学びましょう、まずここのリターンアドレスが潰れるようにシェルコードを… stack-protector「スタック破壊を検知しました」 NXビット「そもそもそこ実行できんで」 ASLR「シェルコードの中で呼んでるその関数、そこにはないよ」 「」"
Fadisさんのツイート: "スタックに任意の書き込みが出来る状態から任意の処理を実行出来るようにするためには、popでレジスタに値をロードして、retで走らせたい命令列がある場所にジャンプする、と"
Fadisさんのツイート: "そんなわけでROPはまず目当てのレジスタにpopしてretqしてるところを探す事から始まる、と"
Fadisさんのツイート: "よっしゃ、ROP動いた"
Fadisさんのツイート: "retを使わない事でReturn Oriented Programmingを阻止する話を探してたら、retじゃない命令でReturn Oriented Programmingする論文を見つけちゃったところ https://t.co/pkdYlxJYAr"
Return-oriented programming without returns
Fadisさんのツイート: "CRIU: Linuxで実行中のコマンドのダンプと復帰を行うツール https://t.co/HbYJgGHVn4 #kernelvm"
Fadisさんのツイート: "範囲外参照の不具合とWebCore::CSSSelector::specifyを組み合わせて1bitだけ書き込むことができる → ArrayBufferのサイズの情報を書き換える→ArrayBufferから範囲外の値を読み書きできるようになる #kernelvm"
Fadisさんのツイート: "自由に書き換えられるようになった領域にさらにArrayBufferViewを作って、ベースアドレスを書き換えてさらに広い領域を自由に書き換えられるようにする、と #kernelvm"
Fadisさんのツイート: "そのままこの領域にバイナリを書いてvtableを書き換えてジャンプしてもNXビットが立ってて実行されない → Return Oriented Programmingだ! #kernelvm"
Fadisさんのツイート: "stack pivotを使って書き換え可能な領域がスタックだったことにする #kernelvm"
Fadisさんのツイート: "iretが#SS例外を投げるとユーザ空間のGSのままカーネルが実行されるバグがLinuxカーネルに見つかる → その後呼び出される関数がGSが指す構造体に0を書き込む → ユーザ空間から指定した位置に0を書き込むことができる #kernelvm"
Fadisさんのツイート: "PS4はFreeBSD4で動いている → ページフォルトハンドラが書き換え可能になっているため、ここを書き換える #kernelvm"
Fadisさんのツイート: "Linuxの場合は割り込みテーブルがリードオンリーになっているため、カーネル内でROPをして各種保護を切って書き換える #kernelvm"
Fadisさんのツイート: "A Turing complete ROP compiler https://t.co/olv8tOFzBR #kernelvm"
download;jsessionid=7BE7708C4BC9D07131666776F6159B34
Apple、iOSやmacOSなどの脆弱性を多数修正 | スラド アップル
Fadisさんのツイート: "stack-protectorはスタック破壊を「検知」することはできるけど「修復」することはできなくて、従ってカーネルのstack-protectorは攻撃者がring 0で任意のコードを実行しうる脆弱性を、攻撃者がカーネルパニックさせられる脆弱性に弱める物で、スタック破壊による攻撃を無力化する働きはない"
FadisさんはTwitterを使っています 「stack protector同様ASLRもforkしただけでは配置を変えられない。攻撃者はバッファオーバーラン脆弱性を使って既知のカナリアの後ろのリターンアドレスを書き換える事で「子プロセスがクラッシュしたかどうか」でASLRで配置換えされたページがどこに行ったかを探る事が出来る。これがBlind ROP、と」 / Twitter
FadisさんはTwitterを使っています 「で、ここまでの手法はいくらでも子プロセスをクラッシュさせられる場合専用だったわけだけど、BlindSide(https://t.co/xeEaTxQ5f5)はこれにSpectreを組み合わせて、ないかもしれないページを読んだ後で無かったことにしてその時の応答を観測する事で、プロセスをクラッシュさせずにASLRを乗り越える」 / Twitter
BlindSide - VUSec

@tanimocchi

もっちぃさんのツイート: "Side Channel Analysis via Model Counting Constraint Solvers https://t.co/YbVLNq3pur Side Channel Analysis Using a Model Counting Constraint Solver and Symbolic Execution https://t.co/wXQx1WHOhl String Analysis for Vulnerability Detection and Repair https://t.co/lQsOs1Sb5p… https://t.co/nBTZiopJN6"
もっちぃさんのツイート: "サイドチャネル攻撃耐性のあるコード設計&バイナリ生成技術も既に研究されていて、その紹介スライドは下記が良いかなと。 Verifying Cryptographic Implementations with F* https://t.co/4CEBFBDlPt… "
Verifying Cryptographic Implementations with F*

株式会社リチェルカセキュリティ
オープンソースセキュリティへの取り組みを集約した“Open Source Security Foundation”が設立 - 窓の杜

JIT

トランポリン

trampfd

FadisさんはTwitterを使っています 「libffi等の厄介な関数呼び出しをするソフトウェアは実行時に関数呼び出しを変換するトランポリンを作るが、トランポリンはexecutableかつwritableなページを要する為、攻撃者に絶好の任意のコード置き場を与える。そこでLinuxに新機能trampfdが提案されている https://t.co/iG7mBWegnU」 / Twitter
Microsoft Engineer Proposes "TRAMPFD" For Improving Linux Security - Phoronix
FadisさんはTwitterを使っています 「trampfdは「レジスタを書き換えスタックに何か積んで飛び先に飛ぶ」トランポリンをカーネルに作らせる。trampfdを作成し、レジスタとスタックの操作と飛び先を設定し、mmapして割り当てられた領域にジャンプすると、レジスタとスタックの操作が行われ、飛び先に飛ぶ。この領域への書き込みは禁止される」 / Twitter

トランポリン - 兼雑記
独自CPU開発で学ぶコンピュータのしくみ - 伊藤剛浩, 川田裕貴 - Google ブックス
アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
セキュアなプログラマー: バッファー・オーバーフローに対抗する

PyPy

Tracing JIT

型アノテーション

アノテーション - Wikipedia
26.1. typing — 型ヒントのサポート — Python 3.6.5 ドキュメント
Pythonの関数アノテーションと型ヒント、typingモジュール | note.nkmk.me
Pythonではじまる、型のある世界 - Qiita
Python の型アノテーションと ast モジュールで, python コードから C/C++ コード生成に思いを馳せる - Qiita
Python と型アノテーション
型アノテーション · GitBook
PythonのTypeHints ~型アノテーション~ - Tocyukiのブログ
Pythonと型 〜 Docstring、関数アノテーション、型推論 〜 - Blank File
[翻訳] PEP 0484 -- 型ヒント (Type Hints) - Qiita
RPython 型付け器 — pypyja 1.7 documentation
PyPy - RPython toolchain — PyPy 1.6 documentation

トレーシング実行時コンパイル - Wikipedia
Tracing just-in-time compilation - Wikipedia
PyPy Status Blog JA: 部分評価とトレーシングの比較 Part 1
PyPy Status Blog JA: FlowGraph 言語のための単純なトレーサ
PyPy Status Blog JA: FlowGraph 言語のトレースの最適化
より大きなフローグラフ言語の例
web.archive.org/web/20130122090621/http://www.longsleeper.com/
Wayback Machine
#3 PyPyについての講演,ハンズオン,スプリント:そうだ! EuroPython 2011へ行こう|gihyo.jp … 技術評論社
Tracing the Meta-levelとは?PyPyのJITコンパイラについて - TECH-MICCHON.jar
流行りのJITコンパイラは嫌いですか? — PyPy Advent Calendar 2011 v1.0 documentation
言語のJITコンパイラをその言語自身で作る事の意義とは - Togetterまとめ
どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
Tracing_JITs11_tracing_the_meta_level.pdf
The Essence of Meta-Tracing JIT Compilers.pdf
BoCuFiRi09_246.pdf
Laurence Tratt: The Impact of Meta-Tracing on VM Design and Implementation
Tracing the meta-level: PyPy's tracing JIT compiler | Request PDF
Runtime feedback in a meta-tracing JIT for efficient dynamic languages | Request PDF
Trace-based just-in-time compiler for Haskell with RPython
pycket-draft.pdf
34

RPython

Frequently Asked Questions — RPython Documentation
Getting Started with RPython — RPython Documentation
Welcome to RPython’s documentation! — RPython Documentation
rpython 0.1.4 : Python Package Index
PyPy - RPython toolchain — pypyja 1.7 documentation
PyPy - RPython toolchain — PyPy 1.6 documentation
Building An Interpreter In RPython - PyCon Japan 2016 // Speaker Deck
Pyrlang: RPythonを用いた高性能仮想機械 – 増原英彦研究室
PyPyの基礎知識まとめ その1 - Qiita
RPythonの情報とRPythonで実装されている言語処理系 - rokujyouhitoma's blog
RPythonToolChainでOok!を実装した時のノウハウ紹介。PyPy Advent Calendar 2011 7日目 - rokujyouhitoma's blog
Shibu's Diary: PyPyよりも5倍高速な最速のPython処理系
RPythonで書かれたRuby処理系Topazで遊ぶ
RPythonについて軽く | κeenのHappy Hacκing Blog
Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
Hideyuki TanakaさんはTwitterを使っています: 「なるほどMesaPy(´・_・`) / 2件のコメント https://t.co/40dKogXBMU “GitHub - mesalock-linux/mesapy: A Fast and Safe Python based on PyPy” (11 users) https://t.co/itU9MPPTVE」 / Twitter
mesalock-linux/mesapy: A Fast and Safe Python based on PyPy
Hideyuki TanakaさんはTwitterを使っています: 「RPythonのCの部分はFormal Verificationして、外部ライブラリはRustのものに置き換えてメモリ安全という話なの(´・_・`)」 / Twitter

continulet

覚え書き: Pausable Unittest その1 (continulet と tasklet)
アプリケーションレベルのスタックレス機能 — pypyja 1.7 documentation
Emerge Technology: pypyのスレッドとかgreenletとか何か

OSDN

Python処理系「PyPy 4.0」リリース、起動時間を大きく改善 | OSDN Magazine
「PyPy 5.0」リリース、起動時間やメモリ使用量の短縮が行われる | OSDN Magazine
Python実行環境「PyPy 5.1」公開、ウォームアップ時間やメモリ要求をさらに強化 | OSDN Magazine
「PyPy2.7 v5.6」リリース | OSDN Magazine
「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
「PyPy 7.0」リリース、アルファ段階の機能としてPython 3.6対応を追加 | OSDN Magazine
aarch64に対応した「PyPy 7.2」が公開 | OSDN Magazine

PyPy - Wikipedia
PyPy Advent Calendar 2011 6日目 Frequently Asked Questions - YAMAGUCHI::weblog
ryu22eBlog跡地:第八回ありえるえりあ勉強会 ~PyPyのキホンの気 に参加しました #arielarea
PyPy 紹介
次世代言語 Python による PyPy を使った次世代の処理系開発
PyPy開発へようこそ — pypyja 1.7 documentation
Coding Guide — PyPy documentation
PyPyのPyObjectの実装が謎い - Togetterまとめ
PyPyの論文つぶやき - Togetterまとめ
Python を速くする取り組み - methaneのブログ
PyPyがCより速いケース - karasuyamatenguの日記
PyPy 4.0登場 - SIMDベクトル化機能付きJIT搭載 | マイナビニュース
PyPy 5.0登場 - 起動処理が30%高速化 | マイナビニュース
さらに高速化、PyPy 5.1登場 | マイナビニュース
PyPy ソースコードリーディング事始め - プログラマのネタ帳
PyPy Advent Calendar 15日目 - 低レベルっぽいことをやってみる - プログラマのネタ帳
PyPy Status Blog: PyPy JIT for Aarch64

メソッド・キャッシュ

メソッド実行結果をキャッシュする - うなの日記
rubyのメソッドをキャッシュするコードです。詳細はブログで紹介してます。 http://ameblo.jp/syou007/entry-11468918541.html
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
The Story of Method Lookup - Qiita
第15章 メソッド
API キャッシュを有効にして応答性を強化する - Amazon API Gateway

グリーンスレッド

グリーンスレッド - Wikipedia
Green threads - Wikipedia
Inside Meinheld - Qiita

goroutine

【翻訳】goroutine の仕組み - まるまるこふこふ
build-web-application-with-golang/02.7.md at master · astaxie/build-web-application-with-golang
Go言語の並列処理 goroutineとchannel - Qiita
Go言語感想文 - なるせにっき
nobonoboさんのツイート: "一旦 #golang のgoroutineに慣れちゃうと他の環境でネイティブとグリーンそれぞれに同期操作が別々のため基礎ライブラリが2セットにダブってしまってるの超めんどくさすぎてツライ。"
GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang - niconegoto Blog
Futureとその周辺 | κeenのHappy Hacκing Blog
島鉄雄さんのツイート: "Emacs Lisp に Async/Await を実装しましたよ。 仕事のほとんどは generator.el と promise-core.el で済んでるので、TypeScript のやり方を参考に繋げただけです。 これで非同期処理を同期処理と同じように書けるよ。… https://t.co/YYOhoR1g33"
TAN-Y(たに)さんのツイート: "・コルーチンは使うだけなら簡単。 ・std::futureは標準でawaitできるけど戻ってくるスレッドが毎度生成のワーカースレッドなので事実上使い物にならない。(まあこれは仕方ない) ・C++/WinRTはUWPのランタイムとからめてうまくawaitできるようにしてるんだろうなあと想像。"
Big Sky :: 書評「Go言語による並行処理」
渋川よしきさんのツイート: "既存のgenerator base coroutine、coroutineとしても使えるけど、外部インタフェースとしては第一はiteratorなんだよな。coroutineがプリエンプティブ・マルチタスクのための言語機能というのであれば、今後一番複雑なタスク管理の中心になるasyncioと親和性高くデザインされる、というのは違和感ない"
C++ でコルーチン (async/await 準備編) - Qiita
C++ で async/await をする - Qiita

C3線形化

The History of Python.jp: メソッド解決順序(MRO)
よくわからないので実装して理解するRubyのメソッド解決順序 - Qiita

Threaded code

スレッデッドコード - Wikipedia
Threaded code - Wikipedia
第一級ラベルを持たない言語におけるDirect Threaded VMの実装 | κeenのHappy Hacκing Blog
Rubyist Magazine - YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
direct threaded code - imHo
Direct Threaded Code
Threaded Code - moiの頭の中
楓 software: direct threaded code

NaN boxing

NaN boxing - 枕を欹てて聴く
mrubyのJITの64bit対応 - Qiita
NaN boxing
NaN Boxing - albertnetymk's notes
zuiderkwast/nanbox: NaN-boxing in C
design patterns - What is the purpose of NaN boxing? - Software Engineering Stack Exchange
NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
value representation in javascript implementations -- wingolog
NaN-Boxing [sean.cm]
Yukihiro Matsumotoさんのツイート: "@miura1729 NaN boxingはそのうちやってみたいんですが。64bit対応が難しそうです。LuaJITの対応方法がどうにも理解できない。どうせ自分はまだ32bit環境だから32bitだけ対応するかなあ。"
Internals - SpiderMonkey | MDN

VM

vmgen で簡単なレジスタベースの VM を作る(1/2) - Qiita
vmgen で簡単なレジスタベースの VM を作る(2/2) - Qiita
VMの本を見てみた: なつたん
Dalvik仮想マシンのアーキテクチャ
Software Basic
Java SE Specifications
Java仮想マシン - Wikipedia
Java仮想マシントリビア - JVM仕様のベリファイアの説明がPrologで書かれている! - Qiita
JVMの中身を可視化してみた
JVMのメモ | Java好き
Kazuho Okuさんのツイート: "何度でも言うけど this[n] って C++ だと合法的なテクニックだし実際に使われるから! 僕のMacBookの中にあるコードを検索するだけでも用例が見つかる。ちなみにこれは JavaScirptCore(SafariのJS実装)の CallFrame.h https://t.co/toppExfr7t"
Kazuho Okuさんのツイート: "メモリ上に連続に一次元として配置されるオブジェクトかつ隣接するものの参照が必要になる場合に有用なテクニックであることを考えると、言語処理系以外にエディタの文字処理(バリアントセレクタ)とかでも使ってそう"
Kazuho Okuさんのツイート: "なんでこれが良いか解説すると、言語処理系のVMスタック上の値はそれぞれ異なる型をもつ(例:呼出フレーム、リターンアドレス、引数)ので、たとえば呼出フレームからリターンアドレスを参照するのは this[OFFSET_OF_RETURN_ADDR_FROM_FRAME] になる"
Kazuho Okuさんのツイート: "スタックフレーム上の各値をそれぞれ異なる「正しい型」で表現しているから、コーディングミスを抑制することができるわけで、良いコーディングパターンなわけです。もちろんコンストラクタの呼出をprivateにしたり、サブクラスでメンバ変数の追加を禁止するなどの前提があるけど"
Kazuho Okuさんのツイート: "他の用例としては MySQL のクエリプラン構築コードに this[-1].next_select = sub_select_op; ってのがある。jon用のクエリプラン生成時に、直前の命令の属性を書き換えてる感じなのかな"
Kazuho Okuさんのツイート: "まあ正直mysqlのコードはアドホックなところが割とあるのでアレだけど"
Kazuho Okuさんのツイート: "クラスファイル内のLineNumberTable削除してから比較すればコメントやインデント変更の影響を検知することはなくなると思うけど、それが簡単にできるツールないのかしら / “Javaのリファクタリングした際にclassファ…” https://t.co/7hvYnGXD9u"
Javaのリファクタリングした際にclassファイルの差分比較をしてテスト要否を判断したい - Qiita
[調査]JVMのスタックサイズについて - Akira's Tech Notes
眼力 玉壱號さんのツイート: "JVM、中に interpreter 持ってるけど、byte code 解釈する部分は立ち上がりの時点で template の穴埋めして動的生成していたりもする cf. https://t.co/LFbIMbouhG… "
openjdk.java.net/groups/hotspot/docs/RuntimeOverview.html#Interpreter|outline
今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開 - Fight the Future
Javaは今も無償です - Google ドキュメント
YARV命令ごとの実行コストを知るには - なるせにっき
JVMことはじめ その1: クラスファイル - Qiita
report.pdf
Nextcloud
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「Pharoのツヨツヨ兄ちゃんがSlang(Smalltalk VMを記述している、CにトランスレートされるSmalltalkサブセット)でのVMプログラミングについて「2つの異なる意味論を持つ言語の両方でたまたま同じ動作をするソースコードを書くというパズル」と言っていたのを思い出した。」 / Twitter
Miura HidekiさんはTwitterを使っています 「分かる気がする。確かにそんな感じ。私の場合はソース言語のサブセットではなく、内部構造(ASTや型情報)からターゲット言語(C)の変換メソッドだけど」 / Twitter

バイトコード

バイトコード - Wikipedia
Javaバイトコード - Wikipedia
プログラミング言語を作る/静的・バイトコード実行型言語を作る
簡易スタック型VM(バイトコードインタプリタ)でのフィボナッチ数計算速度 - sileのブログ
Rubyist Magazine - YARV Maniacs 【第 2 回】 VM ってなんだろう
チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (2/2) - @IT
Javaバイトコードの読み方 - わらばんし仄聞記
Java VMとバイトコードとマイコンの親和性は良好? - Lynx-EyEDの電音鍵盤 新館

チューニング(キャッシュ)

herumiさんのツイート: "https://t.co/ge6QtuNysQ MKL-DNNはそのあたり(キャッシュサイズを見て実行時コード生成のパラメータを変える)のことをやってるようです。 https://t.co/gLmXqSEPfS ただcpuidはAWSなどのVM環境(のせい?)では結構適当な値が返ることがあるようでときどきトラブってます。 https://t.co/TV80bXyBnK"
yohさんのツイート: "正直 キャッシュ階層とかメニーコアNUMA構成を活用した"最適"性能チューニングを考え出すと 髪の毛が何本あっても足りないので お近づきになりたくはない領域..."
yohさんのツイート: "#nakamecpp L1$ラインサイズの話題ででてきた L3$による性能ペナルティの話 https://t.co/kzY6aSdzeP このあたりで図解されてて面白いかも x86だとCPUID命令で情報とれるやつ→ https://t.co/wDDyMZn1Lb"
Gallery of Processor Cache Effects
The CPUID Explorer: Part 2
yohさんのツイート: "#nakamecpp で指摘のあった「既存std::lock_guardを複数Mutex対応しないの?」 https://t.co/BOtardjiuQ 当初提案ではまさにその通りで、ABIを壊すからscoped_lockとして新規導入したよとのことでした。ちゃんと書いてありましたね m(_ _;m)"
Variadic lock_guard (Rev. 2)
nakameguro_feature.cpp vol.8
docs/nakamecpp8_20180913.pdf at master · yohhoy/docs
mkl-dnn/jit_avx512_core_fp32_wino_conv_2x3.cpp at 19588d1484911a3dc7933b32ce71d2f1b9bbbb78 · intel/mkl-dnn
Prevent cores_sharing_data_cache being zero on Intel Xeon E5 v2 by playertwo · Pull Request #67 · herumi/xbyak

Ruby

mrubyのJITの概要 - Qiita
「Ruby 2.6.0」が正式リリース ~JITコンパイラーの導入でパフォーマンスが向上 - 窓の杜
「Ruby 2.6」リリース、JITコンパイラを導入 | OSDN Magazine
Ruby 用の JIT コンパイラを作りました。ただし VM のではない。 | Chiba’s website
Yadriggy C · csg-tokyo/yadriggy Wiki
Ruby 2.6正式版リリース。JITコンバイラを初めて実験的に搭載 - Publickey

Java

LTS

Red Hat、Windows版OpenJDKの長期商用サポート提供を発表 - Publickey
AWSが独自のOpenJDK「Amazon Corretto」発表。AWS内部で使っていたJavaを外部提供へ。Java 8は2023年まで、Java 11は2024年まで無償でLTSを提供 - Publickey
Microsoft Azure上での実行目的ならJavaの長期サポート(LTS)を無料提供、MacやWindowsでの開発用途もOK。マイクロソフトとAzul Systemsが提携で - Publickey
AWS版OpenJDKの「Amazon Corretto 8」正式版リリース。少なくとも2023年6月まで無償でアップデート提供 - Publickey
OpenJDK を開発する流れ - #chiroito ’s blog
AWS、Java 11対応の独自OpenJDK「Amazon Corretto 11」プレビュー版を公開 - Publickey

Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識:連載|gihyo.jp … 技術評論社
Java-MA16-JIT.pdf
shuJIT: a Java Just-in-Time Compiler for x86
shudo/shujit: Java Just-in-Time Compiler for x86 processors
Java12新機能まとめ - Qiita
ところでJavaのRaw Sring Literalsはどうなってるの? - きしだのはてな
JDKの新しいリリース・モデル、および提供ライセンスについて
米Red Hat、「OpenJDK 8」と「OpenJDK 11」の開発を統括することを発表 | OSDN Magazine
RedHatがJava 8および11の幹事になる
EclipseとOracle、javaxパッケージ名前空間と商標の扱いに関する合意を断念
Javaは今でも無償ですという話と最近のJava Webフレームワーク / Java is still free and Java Web FW - Speaker Deck
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Java EE仕様はJakarta EEに改名された
米Microsoft、JVMのチューニング技術を持つjClarityを買収 | OSDN Magazine
「AzureをJavaにとってよりよいプラットフォームにする」、マイクロソフトがJavaツールベンダのjClarityを買収 - Publickey
JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】 | Backlogブログ

スライド

Java仮想マシンの実装技術
静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
mrubyのJIT
V6でJIT・部分適用・継続

blog

Scheme インタプリタにおける仮想マシンアーキテクチャの最適化
Gauche:VMの最適化:JIT:予備実験
DSAS開発者の部屋:最近のPython-dev(2017-04)
won't fix: JIT platform by major browser vendor (Feb 2013)
米国から見た日本のRuby事情(翻訳)
VMに手を加えずRubyを高速化するJITコンパイラ「YARV-MJIT」の話 - k0kubun's blog
CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog
ヒープメモリに実行権限を与える件 - syuu1228's blog
LL Future, tracing jit, IBM Java Just-in-Time Compiler - NyaRuRuが地球にいたころ
Binary Size, Partial Memory Mapped File, Just In Time Compile, Latency and Throughput - NyaRuRuが地球にいたころ
JIT コンパイラの Dead Code Elimination を利用して,同一の CIL から複数の実装を生成する - NyaRuRuが地球にいたころ
Kazuho Okuさんのツイート: "局所性が悪い(TLB miss)というよりcache line collisionじゃないのかな / “RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog” https://t.co/DFVdPtX0Cc"
RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
JITあれこれ | κeenのHappy Hacκing Blog
自作JavaScriptエンジンの進捗 - uint256_t's blog
論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog
code bloat - Google 検索
JITコンパイル時の関数呼び出しの扱い方 - 茅の下
melancholic afternoon
melancholic afternoon
https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
v8 "Launching ignition and Turbofan" 和訳 - kakts-log

infoQ

Lua: 組込みスクリプトエンジン、新しい高性能VMを搭載したLuaJIT 2.0
Javaの新JITコンパイラ、Graalを解説

POSTD

JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
JITコンパイルでの冒険 パート2:x64 JIT | コンピュータサイエンス | POSTD

GitHub

Morgan-Stanley/hobbes: A language and an embedded JIT compiler
k0kubun/llrb: LLVM-based JIT Compiler for Ruby
Links.md
vnmakarov/mir: A light-weight JIT compiler based on MIR (Medium Internal Representation)
runtime/docs/design/coreclr/jit at master · dotnet/runtime

Twitter

その他

Miura Hidekiさんのツイート: "mrubyのJIT、インテルさんの言うとおりにしたら速くなったのでインテルすげー https://t.co/QKwwuxomP0"
小倉唯さんのツイート: "あと JIT compiler だと runtime に cpuid に query かけて best op 選ぶチャンスがあるか."
Rockridgeさんのツイート: "JavaScript JITエンジンへの新機能追加をRust言語で行えるようにするメタJITコンパイラをMozillaが実験的に開発中。名をHolyJitという。安全なコードを書けるメリットがある。 / “HolyJit: A …” https://t.co/MUfaa2wq7n"
HolyJit: A New Hope | JavaScript
とみながたけひろさんのツイート: "コンパイラの本はいっぱい(?)あるけど、インタプリタの本ってあんまりないよねえ…。あとバイナリトランスレーションとかCPUじゃなくてGPUとかのエミュレーションとかも。まあ真面目に実装すると色々特許とかリバースエンジニアリングとかが絡んで政治的に面倒くさいからな…"
瑣末u 🗹さんのツイート: "動作中のプロセスを解析してJITコンパイラでメモリ上のプログラムを書き換えてCPU性能を改善するツールらしい。現在対応しているのはMySQL系だが今後増える模様。 / “Dynimize: CPU Performance Vir…” https://t.co/CpLQ4oNwmw"
Dynimize: CPU Performance Virtualization
ロックフリーのkumagiさんのツイート: "JITの効果の結構大事な部分が関数のインライン化だからそれを阻害するネイティブ関数呼び出しは鬼門っていうの、pypyでmsgpackのC拡張動かしてベンチマーク取った時に痛感したな。"
眼力 玉壱號さんのツイート: "JavaScript 界隈でも似たような話は出てましたね(cf. https://t.co/HIBHHtHpRe ) 言語境界を跨いで inlining 出来ないと速くならない(に対する1つの approach が #GraalVM なのかもしれない)… "
ぼうくんさんのツイート: "Js の Array sort と自前 quick sort のパフォーマンス差は JIT がかかればかかるほど大きくなるし、これは V8 とかの JS エンジンがより効率化するほど広がる http://t.co/g0oroGZu"
yemotoさんのツイート: ""HHVM JIT: A profile-guided, region-based compiler for PHP and Hack" https://t.co/7tPa8JC6SP #engineer #feedly"
HHVM JIT: A profile-guided, region-based compiler for PHP and Hack | the morning paper
渋川よしきさんのツイート: "関連研究?では日本語入力で使うLOUDSも簡潔データ構造だし、あれは木構造だから言語処理系の中でも使い所が多そうな気がする。 : 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ https://t.co/GpBB4RW0z1"
簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
渋川よしきさんのツイート: "JIT、ネイティブにするしない、ではなくて、アルゴリズム選択みたいなのもあると楽しそうだなあって少し思ってる"
Shiro Kawaiさんのツイート: "Gaucheはrequireされるfeatureごとに「まだrequireされてない」「require解決中」「providedされた」の状態を持ってる。この状態テーブルは排他制御されるので一つのスレッドが解決中なら参照しようとした他のスレッドは待たされる。循環は検出してエラーにしてる https://t.co/qTJ8urw8uL"
2019-04-20-akr-autoload-rubykaigi-after-party.pdf
Shiro Kawaiさんのツイート: "循環というか相互依存か。自分がrequire中に他のfeatureをrequireしようとしてそれが既にrequire中になってたら諦める。既にそれまで読んで実行されちゃった分は巻き戻せないんだけど、そもそもそういう関係を作るのが設計ミスってことにしてる。"
Fadisさんのツイート: "Webサーバの性能向上の為に度々破天荒な物を作るFacebookが今度はC++をJITコンパイルしてスクリプト言語扱いする手法を編み出したらしい。ソースはコンパイル済みヘッダと共にLLVM IRに変換されOrcJITで実行される。この手法はEuroLLVMで発表されているがOSS化はされていない https://t.co/KRLU1QcQ9C"
Facebook Is JIT'ing C++ Code To Treat It Like A Crazy Fast Scripting Language - Phoronix
FadisさんはTwitterを使っています 「JavaScriptでは関数の引数の型が実行するまで確定しない為、ある型で実行された際に作られたJITコンパイルの結果が以後の関数呼び出しで再利用できるかを実行環境は常にチェックしている → WebAssemblyの関数は型が確定している為この処理を 丸ごと省略できる、を #kernelvm」 / Twitter
R. ShioyaさんはTwitterを使っています 「スクリプト言語では組み込み関数はCとかで書かれてるのでそっちのが高速ってのが相場だと思うけど,javascript に関しては「ネイティブの(特定のパラーメタに)専用化されたコード &gt; JIT された js の専用化コード &gt; ネイティブの汎用コード」があったりして,自前で書いたほうが全然速いことあるな」 / Twitter
R. ShioyaさんはTwitterを使っています 「node.js だと,parseInt(16)(10 は専用化ルーチンが実装されてるのでそっちのが速い),split(入力があんま長くない時),readline あたりは注意深く組めば数割から倍以上のレベルで自前の方が速いね.ただ,古代C言語文字列プログラミングみたいなことを今更やるはめになる…」 / Twitter
R. ShioyaさんはTwitterを使っています 「あとルーチン自体は自前の方が速くなっても,変数の使用量が増えるせいか Minor GC の回数が豪快に増えてかえって遅くなるとかもあるのでなかなかムズカシイ」 / Twitter
κeenさんはTwitterを使っています 「Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS https://t.co/1yikKpSmwf」 / Twitter
Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS

CacheIR

ドッグさんはTwitterを使っています 「Firefox の JIT コンパイラが大きく改善されたらしい.昨年開発された Baseline コンパイラの inline cache を利用することで型情報を削減し,多くのサイトで 5-15% の高速化.Nightly で試せる | 'Dogfooding Warp' https://t.co/fUjJa0ra43」 / Twitter
ドッグさんはTwitterを使っています 「Firefox のインラインキャッシュ CacheIR について: https://t.co/EaAh7b4k04」 / Twitter
CacheIR: A new approach to Inline Caching in Firefox
ドッグさんはTwitterを使っています 「s/多くのサイトで/多くのメトリクステストで/」 / Twitter

smi

R. ShioyaさんはTwitterを使っています 「v8 の JIT トレース見てたらたまに型の一貫性がとれなくなったとかで deopt が起きてて不思議だったのだけど,どうも整数が31ビット範囲を超えると内部的に倍精度型に型が切り替わるのでそのあおりをくらって構造体全体やそれを見てる関数の最適化コードが根こそぎ破壊されてたと言うことがわかった」 / Twitter
R. ShioyaさんはTwitterを使っています 「これ,メンバが必要とする値の範囲の変化に応じて動的に構造体の再構築と関連する部分の再コンパイルをしてるわけで,そう思うと結構すごいことやってるなと思う.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 最初から8byte確保して、適応的にint64 or double切り替えとかではダメなんですかね、、、」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu smi (small integer) というのが定義されていて,union 的にポインタに埋め込む感じの実装になっているからのようです.31 ビットなのは互換性のためらしく,64bit アーキなら本来は 63? ビットまではいける気もします. https://t.co/j9PLf2ntEC https://t.co/3RDJOsANt5 https://t.co/EovPvfPhXK」 / Twitter
Elements kinds in V8 · V8
V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD
V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど。 64bitだと63bitまで行けるにしても、int -&gt; double についてはサイズだけでなく、ポインタ埋め込みから、ヒープ確保なdoubleオブジェクトに変わる感じなのですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「まあこの辺はmrubyのJITでもやっているからこの手のJITコンパイラでは普通かと。mrubyのJITはコードを破壊するコードを使わなくなったメソッドのコード跡に置いておくって方法」 / Twitter

部分評価

Shuhei KadowakiさんはTwitterを使っています 「Dartの話がめちゃくちゃ魅力的。AOTとJITの良い部分を使い分けられたらいろいろな楽しいことできるよね。開発の柔軟性とリリースでのパフォーマンス両立できるとかめちゃくちゃいい。 #camphor_day」 / Twitter
Miura HidekiさんはTwitterを使っています 「どういう話か気になる。Rubyの究極のコンパイラはAOTで徹底的に解析さえれた後、プログラムコードと共にそのプログラムにカスタマイズされたJITもAOTのコンパイル時に生成する形だろうなって今の所思っている。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 部分評価を取り入れた感じですね。わかります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 なるほど、そう言う考え方も出来ますね。コンパイラのサブセットなどをランタイムの一環として持つみたいなイメージでいました。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 Pelemayでも近々同様の仕組みは必要だと見越しています。できるだけAOTで生成し、プロファイラー情報をもとに最小限のJITコード生成をする感じにしたいです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 やはり必要ですよね。実際に実行しなくてもおそらく抽象実行で必要な情報が集められる気がします。コンパイル速度が非現実的になるかもですが。再定義が起きうるとか、evalが実行される・evalでサポートが必要な言語仕様(数値のみとか)、が得られるんじゃないかと思います。」 / Twitter

Java

ABAさんのツイート: "Javaで2 * (i * i)が2 * i * iより速くなる理由。JITのループアンローリングによって生成されるアセンブリコードが大きく変わるため https://t.co/fo92ZP5xwo"
FFFumihiro MMMatsuiさんのツイート: "演算順序変わるからバイトコード変わるまではうんそうだよなって感じだけどその段階では速度差の原因が自明ではなくてJIT生成コードまで掘り下げにゃならんのな"
FFFumihiro MMMatsuiさんのツイート: "確かにスクリプト処理系のVM高速化の時とかもある程度以上はjavap結果からのイメージと素直に繋がらなくなってそれ以上はJVMともっと下側のやり取りまで見えないとわからんなって感じした"
FFFumihiro MMMatsuiさんのツイート: "for文にJVM側でSIMD効かしてくれる挙動も、確かfor文の中身がちょっと複雑になるとJREバージョンによって速度違ったし。そういうシビアさを気にして結局そこは高速化はほどほどにして、部分的には元に戻したりもした"
FFFumihiro MMMatsuiさんのツイート: "ほんとに特定環境で突き詰めたらVnanoのベクトル演算は倍精度8GFLOPS近く出せたんだけど結局5GFLOPSあたりの感じで着地した"
FFFumihiro MMMatsuiさんのツイート: "配列の算術演算を複数コンボで連ねる時に a[ i ] = b[ i ] + c[ i ]; みたいなパックしてSIMDに投げやすそうな雰囲気の単位に切って回した方がいいのか a[ i ] = b[ i ] + c[ i ] + d[ i ]; みたいに詰めた方がいいのかとかそういう試行錯誤だったっけ 確かどっちが速いか環境によってた"
FFFumihiro MMMatsuiさんのツイート: "あくまでも特定の1つのコード内において試しただけなのでこの書き方だけ抜き出して有利不利は言えなさそうだけど、ちょっと前の環境だと後者が結構伸びて数割有利で、今の環境だと両者トントンで、なので後者はなんかシビアそうなので演算器オブジェクト実装したけど無効化して前者が動くようにしてる"
FFFumihiro MMMatsuiさんのツイート: "これだ。 高速化のために実装したもののFLOPSが環境で結構大きくブレるっぽいので無効化してる2連ベクトル加算器オブジェクトの処理: https://t.co/BsHRxKVOhv 代わりに動いてるのは普通に1連のこっち: https://t.co/Vm2MeSsz6h 4~8GFLOPSくらいの間の変動幅なのでたぶんSIMDの効き方が違う?"
FFFumihiro MMMatsuiさんのツイート: "このあたりのやつ演算対象データ全体がCPUの何次キャッシュまでに載りきるかどうかで速度何倍も違うけど、一応は前者も後者も両方全部1次キャッシュに乗り切る領域で測ったはず、確か"
FFFumihiro MMMatsuiさんのツイート: "後者のベクトル長を横軸にしたFLOPS値のグラフはこれ https://t.co/b34UZTqdZK SIMD 有効/無効はjava実行時のオプションでUseSuperWord(だっけ?)有効(確かデフォ)にしたり無効にしたり"
FFFumihiro MMMatsuiさんのツイート: "そんななので、やっぱJava上だけで速くする時って、普段はバイトコード読んで効率的か?はそれなりに有用な情報と思うけど、結局JVMはスタックマシンで、CPUというレジスタマシンにJITして、んでCPUの機能も使ったりするので、バイトコード見た印象から乖離した不思議な速い遅いは確かにあるっぽいなと"
FFFumihiro MMMatsuiさんのツイート: "さっきの記事に納得したのでした。 着地できた"
FFFumihiro MMMatsuiさんのツイート: "そういえばProject Panamaだっけ? JavaでSIMD機能のAPI叩けるようになるとかいうやつ超期待してる"

@RKX1209

るくすさんのツイート: "DalvikVM、最初はDEXインタプリタとプロファイラ動かしつつ、ボトルネックな所をJITにするのは知っていたけど、最近のARTはAOT(Ahead-of-Time)で最初にコンパイルしてしまうのか。加えてランタイムな情報を元に一部だけコンパイルし直すと"
るくすさんのツイート: "けど全てAOTだとコスト高すぎるので最初はJITにしておいて、充電中とかのアイドル時にコンパイルするみたいな仕組みに変わった? いずれにせよすごいチューニング力だな..."
るくすさんのツイート: "@slankdev BSD含め、kernel interpreterは大体JIT対応してるはずですね"
るくすさんのツイート: "ああそういえば今年のセキュキャンには"セキュアなCPUを作ろう"なんてコースがあって、データの型チェックとかUse-After-Free防止のためのシグネチャの仕組みなんかをCPUがやってくれるという中々アツい物っぽいです。興味のある人ぜひ #seccamp"

@kazuho

Kazuho Okuさんのツイート: "歴史的に言うと、インタプリタの歴史においては逐次パース&実行のほうが、CPUとメモリが潤沢になった近年までは一般的な形式だったんじゃないの"
Kazuho Okuさんのツイート: ".@ockeghem @mattn_jp たとえばシェルスクリプトの処理系は今でも行単位だと思います"
Kazuho Okuさんのツイート: "JITの中間表現にCコード使うアプローチ、アムダールの法則との戦い辛そうなの以外にも、エリアシング関連の無駄なオーバヘッドがコンパイル時と実行時にある気がするんだのね"
Kazuho Okuさんのツイート: "crubyのJITがCコンパイラ経由なの、今まで得心が言ってなかったけど、今日の話聞いて納得したというか、競争がある中で段々と速くしていくのは正しいんだろうなと思った"

@shinh

shinichiro hamajiさんのツイート: "MJITのdlopenを置き換えるパッチ書いてたりしてた話について書いた https://t.co/J1mfh50erH まとめるとdlopenのオーバヘッドを調べる程度の役には立つんじゃないの、という気持ちで作ったという感じです。あと .o て定期的に直接ロードしたくなる (https://t.co/cuRJhCqjNm とか tinycc はそれできる)"
MJIT で dlopen 使わずに ELF オブジェクトを直接ロードする話 - 兼雑記
Dynamic Test Runner 0.0.3 - 兼雑記
Shiro Kawaiさんのツイート: "Cコード動的に生成してコンパイルしてdlopenという手は20年以上前にシミュレーションツール作った時にやったことある(シミュレーションの式が変更される度にコンパイル)。ずっと使ってるとメモリ食いつぶすのは再起動してねで済ませた。自力でロードはさすがに考えなかったなあhttps://t.co/TdAbFyRMOG"
Shiro Kawaiさんのツイート: "いや、メモリ食いつぶすのは、処理系のGCの都合でdlcloseできない事情があったせいだったような気がする。だとしたら自力でマップしてても同じことだったかもしれん。"
shinichiro hamajiさんのツイート: "Mach-O とかならともかく、 ELF の arch 追加はたぶんそれほど大変ではないかな…ということで x86:https://t.co/sPnxLg24CD と arm:https://t.co/gAqR0QZyYa やってみた。 MJIT で動くかは謎… https://t.co/bNphJDuJ8C"
Add support for 32bit x86 · shinh/objfcn@fc6d8db
Add support for ARM · shinh/objfcn@92e5047
NeoCatさんのツイート: ".so経由で読むのが不都合ならバイナリを自力で読めば…とは思うけどarch依存もありそうだしやっぱり実用的ではないですよね…。RubyKaigiでLightWeight-JIT作ってるという話もあったけどこれもMRI並のarch対… https://t.co/i7YFGDdUjp"

@blackenedgold

κeenさんのツイート: "VMとかJITとかのテクニックが色々載ってて良い資料だった。所でJITのコードの goto **buf;のインパクトが凄くて… Virtual machine and javascript engine https://t.co/DiFH3mTa6z"
Virtual machine and javascript engine
κeenさんのツイート: "インタプリタを作る本がないとは言ってないですよ。少ないと。そして欲しいのはただ作るだけじゃなくて高速なものを作る本が欲しい。シンプルなインタプリタとVMの話から命令フュージョン、Threaded VMやJIT、word boxingやNaN boxing、global dbとメソッドキャッシュなんかの話が載ってる本が欲しい"

GDB JIT Interface · v8/v8 Wiki
早稲田大学リポジトリ
Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
esbasic0011 - essen-wiki

GC

リージョン推論

Orumin de Izumoensisさんのツイート: "参照カウンタの GC とかはあったほうがいいとおもうけど"
ぶんちょうさんのツイート: "まあ普通に自動でやりたいのでリージョン推論でもGCでもいいのだけど"
Orumin de Izumoensisさんのツイート: "リージョン推論、静的にメモリ管理されるし自動的によくやってくれて最高っぽい"
Experimental Rhino develop-log: 徒然なるままにrust書いて;スタックベースのリージョン推論とGCの話
定義 RBMM: リージョン推論に基づくメモリ管理 - Region-Based Memory Management
リージョンについて | κeenのHappy Hacκing Blog
静的なメモリ管理の話。リージョン推論とλ計算からRustまで | κeenのHappy Hacκing Blog
The GC Handbook - 10.2 Region inferencing(リージョン推論) その1 - 毎朝ほんを30分くらいよむますブログ
The GC Handbook - 10.2 Region inferencing(リージョン推論) その2 - 毎朝ほんを30分くらいよむますブログ
Non-Lexical Lifetimes - Qiita

Boehm GC

Boehm GC - HoneyComb
Boehm GCの使い方
Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう
Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう(1)
LinuxC | GC
A garbage collector for C and C++
Boehm garbage collector - Wikipedia, the free encyclopedia
BoehmGCでC++でもガベージコレクション♪ - きままにブログ
Boehm GC人門 - snipsnipsnip
Lush Green
LLVMで動くオブジェクト指向言語を作ってレイトレした - 近&況
boehm gcを触ってみた - 近&況

Java

Java VisualVM
Javaガベージコレクションのエッセンス
JavaVM監視・解析ツール HeapStatsを使ってみた | キャスレーコンサルティング 技術ブログ
Java 8リリースの変更
www.is.titech.ac.jp/~sassa/kenkyuu-memo/agesen-garbage-collection-PLDI98.010308
G1GCのログの読み方 - sugarlife's blog
チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (1/2) - @IT
チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (1/2) - @IT
インフラエンジニアのメモ : GCログが再起動のたびにログが上書きされてしまう
Java VisualVM
IBM Knowledge Center - 並行マーク
PowerPoint Presentation
正確なGCへの道
第5回 Java VMの情報を取得する(前編):Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識|gihyo.jp … 技術評論社
Java における Scavenge GC と Full GC の違い - スタック・オーバーフロー
ZGC - オラクルの巨大ヒープ向けガベージコレクタ
Java 10 Release Candidate 1 公開
Javaの超低レイテンシなGCアルゴリズム、ZGCをコンパイルして動作を試す - くろの雑記帳
島鉄雄さんのツイート: "Java で開発中の ZGC が驚愕のスペックなんでビビった。 TB 単位のヒープでも止まる時間が 10ms 以下というと、十分ゲームで使えるレベルに思える 代わりに通常の処理が少し遅くなるようだが、少しぐらいなら大した問題ではない 同様のものが自前で実装出来れば最高だが… https://t.co/HZNcbz1L2l"
The Z Garbage Collector - An Introduction
「Java 12」リリース | OSDN Magazine
島鉄雄さんのツイート: "Java 12 の ZGC の性能評価の記事があったけど、やっぱ凄いわ…これ以外の GC が必要なのかと思ってしまう。 メモリが大量に載っている環境用みたいな触れ込みだったけど、8GB でも良好な結果だ。 これを C とかでも使えるようにライブラリ化されないかな。 https://t.co/4hy3x7CJQH"
サマーインターンシップでHBaseをJDK 11で動かしZGCとの性能を評価してもらった話 - LINE ENGINEERING
島鉄雄さんのツイート: "良く考えたらライブラリ化は無理だった… こういう最新の並行 GC は read barrier の様な部分をコンパイル時に仕込まないといけないから、コンパイラ込みの実装が必要なんだよなぁ。"
Switch式とShenandoah GCを試験的に備えたJava 12がリリース
島鉄雄さんのツイート: "Java11のZGCはポインタの上位数ビットにフラグを埋め込んでるけど(いわゆるtagged pointer、ZGCではcolored pointer)、仮想記憶を使う事でマスク不要にしてる。 ポインタを0x0fとすると0x1fや0x2fを0x0fにマップする事で0x0f, 0x1f, 0x2fは同じメモリにアクセス出来る。 だから現状Linux専用のようだ。"
島鉄雄さんのツイート: "64bit ポインタ基本的に 58bit しか使われておらず、上位 16bit が空いている。 ここに型情報やらフラグを埋め込んだりしてるけど、ポインタとして使うたびにマスクして上位ビットを 0 にする必要がある。 使ってない部分は CPU が無視してくれれば、仮想記憶を使ったトリックなんて必要なかったんだ。"
島鉄雄さんのツイート: "おかげで、ZGC は家庭用ゲーム機や組み込み機器などに移植する事は出来そうにない。 なので、もし次世代 GC を移植したくなった場合は、Java12 の Shenandoah GC が候補になるかな。"
島鉄雄さんのツイート: "> 58bit しか使われておらず、 48bit の間違いだった…"
島鉄雄さんはTwitterを使っています: 「コンパクションのあるGCの場合は、大抵ポインタのポインタを使ってるよ。(Java12のshenandoahとか) JavaVMは参照の実装方法を規定してないから、そういう実装も出来ると思うけど、C++も別にコンパイラがそういう風にコンパイルすれば良いだけだと思う。 https://t.co/AVYdETuc5H」 / Twitter
oooooさんはTwitterを使っています: 「@yuyabu2 GCがコンパクションするとオブジェクトのアドレスが変わります。つまりGCのある言語ではポインタが使えません。そのためJavaではポインタよりも抽象度の高い参照という概念を導入しています。ちなみにC++の参照はポインタのシンタックスシュガーでしかないのでJavaの参照とは別物です」 / Twitter
oooooさんはTwitterを使っています: 「@shima_tetsuo そうですね。だからポインタ=アドレス値という関係が壊れるという話しです」 / Twitter
島鉄雄さんはTwitterを使っています: 「@ooooo いや壊れてないよ。 ポインタ=アドレス(オブジェクトのアドレス) ポインタ=アドレス(GCが管理している領域のアドレス)→アドレス(オブジェクトのアドレス) と間接参照が1つ増えてるだけで。」 / Twitter
oooooさんはTwitterを使っています: 「@shima_tetsuo それは言葉遊びでは?ポインタがオブジェクトのアドレスを直接指さないならCで言う所のポインタとは言えないでしょう」 / Twitter
島鉄雄さんはTwitterを使っています: 「@ooooo 自分が言いたいのはC++とJavaの参照はCのポインタと同等という事ですが、C++やJavaでコンパクションを実装するにはポインタのポインタが必要といったけど、もしCで実装する時も同じようにポインタのポインタを使います。 要するにアセンブラ的に全く同じコードになるでしょう。」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo ダブルポインタも一応ポインタでは?」 / Twitter
oooooさんはTwitterを使っています: 「@yuyabu2 @shima_tetsuo そういう意図の話しではないのです。わかりにくかったらごめんなさい」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo うーん理解不足なのでダブルポインタがポインタかどうかという話をしているようにしか見えません。すいません。 https://t.co/8zVH614ZvT (やっぱりこういう論争についていけません...)」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「参照、参照渡し、参照の値渡し あたりの論争はあんまり理解してない」 / Twitter
「Jakarta EE 8」リリース、Java EE 8と完全互換 | OSDN Magazine
[速報]Java 13が登場。ZGCの改善やSwitch文の実現など新機能。 Oracle Code One 2019 - Publickey
高梨陣平さんはTwitterを使っています: 「JDK11にはGCが無ければどれだけ速いかを検査するための何もしないGC、Epsilonが用意されている。 https://t.co/bkiSg689Cj」 / Twitter
Heapothesys - Amazon Corretto によるオープンソース GC レイテンシベンチマーク

Android

富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
Eclipse Memory Analyzer Tool と Android 環境での Out of memory デバッグ | Drowsy Dog's Diary
アンドロイドアプリのThreadがリークするとき « 大阪のアンドロイド/iOS・ Webアプリ開発会社 ノーティス
Leak canaryで メモリリーク調査

C#

[sos]!GCRoot:オブジェクトを参照しているオブジェクトのパスを表示
Microsoftが.NETの手動メモリ管理機構をSnowflakeとして公開
.NET の「実行時型情報」は immutable かつ GC 不可能 - NyaRuRuが地球にいたころ
.NET GC & Memory (1) - NyaRuRuが地球にいたころ
.NET GC & Memory (2) - NyaRuRuが地球にいたころ
変数スコープの最後までオブジェクトは生きているという誤解 - NyaRuRuが地球にいたころ
write barrier - NyaRuRuが地球にいたころ

Ruby

Twitter

κeenさんのツイート: "CoWさせるためにBitMapで管理ってRubyで結構前から取り組んでるよね。 Island Life - GC切って性能向上 https://t.co/lMSGajMKMA"
Kazuho Okuさんのツイート: "ruby専用のarenaを作っとくのが一番いい解決策なんじゃないのかな(そこはGlobal VM Lockとるからひとつでいいわけだし) / “Malloc Can Double Multi-threaded Ruby Prog…” https://t.co/LcY7hq33y9"
Malloc Can Double Multi-threaded Ruby Program Memory Usage
Kazuho Okuさんのツイート: "色んなスレッドに紐付いたarenaに、gc対象のオブジェクトから紐付いたmalloc領域を作っちゃうのが問題、というのが正しいかな。それらの領域のほとんどは短命なオブジェクトなのでgc時に解放されるが、一部は長命なのでスラブは解放されない。というのがいくつものarenaで発生する"
Yukihiro Matsumotoさんのツイート: "Rubyも malloc で確保するメモリについてはやってるんですが、GPU のメモリは対象外ですね。… "
Kazuho Okuさんのツイート: "なるほどありがとうございます。任意のクラスのオブジェクト(GPUメモリ、ファイルデスクリプタ、etc)について、それぞれカウンタをもち、どれかが閾値を超えた時点でGCを動かすのが理想なんだろうなぁと思いました… "
Urabe, Shyouheiさんのツイート: "malloc以外でもrb_gc_adjust_memory_usage() っていう最近追加されたAPIはあるんですよ。 https://t.co/dKQukYvTyU ただGPUみたいなアドレス空間から違うやつは厳しい。あくまでメインメモリのプレッシャーしか計測してないので。… https://t.co/j2VEmprEBM"
Urabe, Shyouheiさんのツイート: "ファイルディスクリプタに関しては一応一発open(2)してみてerrnoがEMFILEとかで失敗したときはGCしてみる、みたいな処理は入ってますね… "
Kazuho Okuさんのツイート: "プロセス単位のfd制限がない場合にosの資源使い切ったりします?… "
Urabe, Shyouheiさんのツイート: "とくに考慮してないから使いきれると思われます。… "
Kazuho Okuさんのツイート: "V8とかだとGC外に確保されたメモリ量のカウンタがあって、それをベースにGC起動するようになってるって話は前にしましたっけ… "
そのっつ (Naotoshi Seo)さんのツイート: "RubyなどGCな言語でGPUを使っていると、GPUメモリを大量に使っていてもメインメモリ上では全然使っていないように見えてGCしなくてもまだ良いんじゃね?って処理系に思われてしまうんだけど、Pythonなど参照カウントな言語だと参照がなくなった瞬間にGPUにメモリを返却できるので嬉しいのです。"
Kazuho Okuさんのツイート: "共有オブジェクトの生成と管理に制限を設けることで、マルチスレッド環境でのGC等の並列性がどう高まるのかが鍵だと思うし、そのへんの話を楽しみにしてる #rubykaigiA"
Kazuho Okuさんのツイート: "共有オブジェクトは専用のGCアリーナにプロモートしてそこで適宜GCするみたいなやり方なのかなぁと想像"
Kazuho Okuさんのツイート: "複数のアリーナをもつGCにして、共有オブジェクトから参照されるオブジェクトは専用のアリーナに移動させるみたいなやりかたではないのか... #rubykaigiA"
Kazuho Okuさんのツイート: "実装としては移動もしくはコピーによるmessage passingなのね #rubykaigiA"
Kazuho Okuさんのツイート: ""shared object" って言い方をしてるけど、"no shared" なmessage passingだって言った方がわかりやすいのでは(内部では必要に応じてデータ共有するんだろうけど) #rubykaigiA"
Kazuho Okuさんのツイート: "immutableなオブジェクトを交換するメッセージパッシングなら意味論的にはメッセージは全部コピーでよくて、GuildごとにVM別で良いし、GCやVMを共有する背景にはメッセージパッシング以外にやりたいことがあるからだと思うんだけど、具体的に何なんだろう #rubykaigiA"
Kazuho Okuさんのツイート: "kh_mt_t をラップする型をつくって、その型の中にROMテーブルへのポインタを追加し、RClass から参照するのはラップされた型にすればうまくいきそう #rubykaigiC"

Rubyist Magazine - レアでアレなGCの話
第5章 ガ-ベージコレクション
GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita
最近のruby-core (2016年2月) | Money Forward Engineers' Blog
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
最近のruby-core (2016年9月) | Money Forward Engineers' Blog
RubyでOSやGCを書く野望 - Qiita

D

D言語のGCの仕組み
ガベージコレクション - プログラミング言語 D (日本語訳)

Go

Go言語の低レイテンシGC実現のための取り組み | プログラミング | POSTD
本の虫: Goは32bit開発に不適
Go言語のリアルタイムGC 理論と実践 | プログラミング | POSTD
GolangのGCを追う | SOTA
論文紹介:The benefits and costs of writing a POSIX kernel in a high-level language | ブログにしてブログにあらず
go gc algorithm 101 - Speaker Deck

Mozilla

ServoのDOMバインディングの話 - snyk_s log
Garbage collection - SpiderMonkey | MDN
Rockridgeさんのツイート: "Fx54:マルチプロセス機能(e10s)有効時、ユーザーの入力中はインクリメンタルGCの処理は停止時間の最も少ないものだけを実行するようにした。 / “1338518 – Consider to not run 40ms GC …” https://t.co/tYITC2kaeA"
Rockridgeさんのツイート: "Fx58:ガベージコレクションに関する処理の一部を非同期化した結果、メモリ解放の処理能力がアップした、ということのようだ。 / “1298018 - Investigate allocating nursery chunks i…” https://t.co/aDjcs0HF1G"
Rockridgeさんのツイート: "Fx63:ガベージコレクションの処理を改善した件について、詳細な内容が綴られている。最近のCPUで効果が高いらしく、Intel Core i7-6600Uの環境でSpeedometerのスコアが2.5%アップした。参照:… https://t.co/QUBapMkcRi"

Cycle Collector

なかのん&マジックさんのツイート: "最近見たクラッシュバグを見てると、Cycle collectionは仕組みかGeckoでの実装のどちらかがまずい感じしかない。普段のrefcountのincrementのコストを無視できるゆるいプロダクトなら良いんだけど。"
GC and CC logs - Mozilla | MDN
Interfacing with the XPCOM cycle collector | MDN
言語の GC 機能と参照カウント (中編) - muddy brown thang
A Cycle Collector on Gecko - Backnumbers: Steps to Phantasien

Google

V8 5.4ではJavaScript Engineのガベージコレクタ改善でヒープメモリ使用量を最大40%削減、パーサ性能も向上 - Publickey
どどんとふ公式鯖中の人さんのツイート: "Ciscoのサーバーは、BIOS設定に標高ってパラメーターがあって、設定値に応じてメモリーのバックグラウンドチェックの頻度が変わるのを最近知った。 会社ぐるみで割と本気で宇宙線気にしてる。 https://t.co/rWosoTuieb"
ロボ太さんのツイート: "宇宙線問題、BlueGeneは例外飛ばしてプログラマ側でチェックポイントリスタートかけるんで、どこで例外が来ても大丈夫なようにコードを書くのが大変だったと聞いたけど、京コンピュータはハード側に命令リトライ機構を備えているので、プログラマはそこを気にしなくて良かった。"
Kentaro HaraさんはTwitterを使っています: "「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユ
Kentaro Haraさんのツイート: "Oilpan(BlinkのGC)でヒープコンパクションが有効化されました。アプリによっては数MBのメモリ削減になります。Operaで先駆けて実装されたものを(Operaブログ:https://t.co/ruZu1wRswf)、Operaのお友だちがBlinkに移植してくれました!"
Kentaro Haraさんのツイート: "ちなみに、そのヒープコンパクションのパッチがこれ(https://t.co/s0hfSf8hmr)。まるでC言語の教科書みたいにポインタのポインタをめまぐるしく駆使した技巧的な実装で、レビューするだけで丸々3日以上かかりました(やってることの複雑性からしてやむをえない)。"
Rockridgeさんのツイート: "本記事ではWebコンテンツの表示のカクつきをジャンクと呼び、Chrome 46時点までにこのジャンクを減らすべくガベージコレクションの一部処理を別スレッド化するなどの改良を加えたことを説明している。 / “V8 JavaScri…” https://t.co/801xJuIaKf"
Rockridgeさんのツイート: "GoogleはChrome搭載のV8にOrinocoと呼ばれる新しいガベージコレクション機構を組み込もうとしている。これまで以上に処理の別スレッド化を進め、スイープすべきオブジェクトの選別手法も洗練させた。 / “V8 Java…” https://t.co/TAuj8oIEJT"
Rockridgeさんのツイート: "Chrome 51ではOrinoco(新しいガベージコレクション機構)の一部機能が実装されているほか、WebAssemblyの初期段階のサポートも行われている。 / “V8 JavaScript Engine: V8 Relea…” https://t.co/9rm2ShZREn"
Kentaro Haraさんのツイート: "Chromeのメモリヒープを眺めてると、Gmailを長時間放置すると3〜5割くらいのフラグメンテーションを起こしている。C++なのでコンパクションするのは難しいのだが、オブジェクトの割当を賢くするだけでもフラグメンテーションは大幅に減らせるはずで、"
Kentaro Haraさんのツイート: "たとえばオブジェクトを割り当てるときに、型やサイズをヒントに寿命を予測して、短寿命のものと長寿命のものを別ヒープに振り分けるだけでも相当マシになる気がする。これこそ機械学習させたいのだが、if文ひとつを挿入することも許されない性能カチカチのmallocの世界でどうやるか。"
Kentaro Haraさんのツイート: "(っていうか一般論として、ブラウザがページを読み込むときに発生するオブジェクトのアロケーションパターンなんてだいたい似通っているはずで、dynamic profilingベースで割当アドレスを最適化できれば相当マシにできる気はする。勝負はいかにそれを軽く実現できるか。)"
V8 JavaScript Engine: Concurrent marking in V8
Kentaro Haraさんのツイート: "Oilpanプロジェクトを始めてほぼ6年、ついにBlinkとV8の統合GCをローンチしました!!(๑˃̵ᴗ˂̵)و https://t.co/KahYum19aQ https://t.co/EXabaWg2lu さて次はBlink側のコンカレントGCを作るか・・・。"
unified-heap: Enable per default (I473f85bb) · Gerrit Code Review
Towards a Unified Blink and JavaScript Heap // slidr.io
Unified V8-Blink Garbage Collected Heaps - Google グループ

Apple

Rockridgeさんのツイート: "Riptideは次期Safariに搭載される新しいコンカレントGCシステム。ガベージコレクション処理の非同期化と並列化を進めるなどし、長い停止時間の発生を極力抑えたという。 / “Introducing Riptide: Web…” https://t.co/vx33WpTcFX"

blog

κeenのHappy Hacκing Blog

WebAssemblyでGC | κeenのHappy Hacκing Blog
Thoughts on GCs | κeenのHappy Hacκing Blog
Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"

Tociyuki::Diary

Oberon システムのゴミ集め - Tociyuki::Diary
型記述子ごとの Cheney Copying ゴミ集め (その 2) - Tociyuki::Diary

DSAS開発者の部屋:最近のPython-dev(2018-06)
ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
clearstackの話 - 兼雑記
LUA 5.1 の GC - NyaRuRuが地球にいたころ
Island Life - GC切って性能向上
Flashのガベージコレクション – 遅延参照カウント « Rest Term
本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
Memory allocation (& GC 処理) : メモリの確保処理 (GC 処理) : slow-path の処理 (4) GC 処理 : ParallelScavengeHeap の場合 : Minor GC の処理
簡単なGCを書いてみたらメモリ使用量が1/1000になって驚いた話 · うさぎ小屋
GCアルゴリズム詳細解説
ガベージコレクションの実装法と評価
GCが止まらない - Documents

スライド

Miura Hidekiさんのツイート: "GCでメタデータを省略すると言えば、Precise garbage collection for Cという論文があって面白いよ、手前みそだけど紹介のスライド作っているので見てみて https://t.co/RDfj88iarb #tcfm"
Precise garbage collection for c
GCと1bit | κeenのHappy Hacκing Blog
introduction-to-modern-gc // Speaker Deck
WebAssemblyでGC | κeenのHappy Hacκing Blog
make of MiniGC
shinjuku.rs#12:ruruby_2 - Google スライド
Rustでつくるガーベジコレクタ - Speaker Deck

POSTD

Haskell、OCaml、RacketでGCのレイテンシを測る | コンピュータサイエンス | POSTD

GitHub

nyuichi/gc.h: Header file-only Non-moving & Precise GC for C (< 100LOC w/o comments)

Qiita

C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
MiniLispのガベージコレクションを解説する - Qiita

Twitter

その他

Fadisさんのツイート: "shared_ptr、計測してみると割と無視できないオーバーヘッドになってたりするから、激しくポインタをつつくループの前とかでは、「shared_ptrをローカルスコープに置いてその範囲での寿命を保証」した上で「同じアドレスを持つ生ポインタを同じスコープに置く事でオーバーヘッドを回避」は良くやる"
INADA Naokiさんのツイート: "昨日 #tcfm のQ&Aで紹介していたGCのデバッグ(エンバグしたところからずっと後で問題が起こる)に使ったツール、これです。 https://t.co/lJCIEDXOSB"
渋川よしきさんのツイート: "参照カウントも、カウンタの増減を自動化できるかどうかで、GCとしての使い勝手はだいぶ変わるよね。"
Kentaro Haraさんのツイート: "同僚「去年、家をコピーGCしたときにさー・・・」(邦訳:去年、家を引っ越したときにさー) マイナーGC => 毎週のお掃除 フルGC => 大掃除 コピーGC => 家のお引越し コンサーバティブGC => また使うかもしれないから取っておこうと断捨離できないタイプのお掃除"
NaOHaq(仮性ソーダ)さんのツイート: "Copying GCだと解放されるTreeのtraverseは起きない。けど代わりに生きているTreeがcopyのためにtraverseされる。 https://t.co/wUbatymBiQ"
Rockridgeさんのツイート: "Fx57:インクリメンタルGCのスライス時間を調節し、応答性に影響を及ぼすような長い処理停止を抑制。 / “1368972 - Increase slice time for long-running incremental G…” https://t.co/zTA79nT3lL"
INADA Naokiさんのツイート: "#tcfm Python の GC は言語仕様じゃなくて、実際に PyPy は参照カウント使ってないので with 文使わないとリソース開放が遅延して問題起こしますね。"
shinichiro hamajiさんのツイート: "世代別GCと命令融合を持ち、従来の最速実装の2倍速く2倍省メモリなインタプリタすごい!(ただし言語はUnlambda)… "
iroriさんのツイート: "はてなブログに投稿しました Unlambdaインタプリタを作った - iroriの日記 https://t.co/CnBPs0q648 #はてなブログ"
Unlambdaインタプリタを作った - iroriの日記
hikaliumさんのツイート: "主流のアーキで上方伸長スタックを採用しているものは聞いたことがないです。(「熱血アセンブリ入門」曰く、xstormy16というマイコンは上方伸長のようです。) 上方伸長だとスタックオーバーフローでreturn pointerを書き換えられずに済むという利点があると知って、なるほどと思いました。… https://t.co/Kx1yOaFH9u"
Kazuho Okuさんのツイート: "mrb_str_catが非破壊結合だから非効率ってのはそのとおりだろうけど、なんで12GBもメモリ使ったんだろう。GCはlive objectのメモリ使用量の定数倍しかメモリ使わないように設計してると思うんだけど、なにか秘孔があるのかな #builderscon"
島鉄雄さんのツイート: "Unity の GC がどうなってるか調べたら Boehm 使ってるのかよ… これじゃゲームがカクカクになるだろうと、更に調べたらみんな苦労して GC が発生しないように頑張ってるようだ。 ゲームプログラマは、ホントによく訓練されてるよ… https://t.co/q3BN03ngjq"
UnityのGCはどんな実装になっているのか │ Aiming 開発者ブログ
島鉄雄さんのツイート: "インタプリタを実装する時には C を使う事が多いけど、例えば Lisp の場合 Object form = list(...); eval(form); の様に書くけど、こうなると form はレジスタやスタックに載ってる可能性があって、GC を行うときにルートから辿れなくなり、コード実行中での GC がほぼ不可能になる。(続く)"
島鉄雄さんのツイート: "Bohem GC は、アセンブラを使ってレジスタやスタックにアクセスしてこの問題に対処しているけど、C だけで実装したい場合は、自前のスタックを用意して PUSH(list(...)); eval(); ← 引数はスタックから取り出す こんな感じで全てのオブジェクトを自前のスタックに積むことにより、(続く)"
島鉄雄さんのツイート: "コード実行中でも全てのオブジェクトを走査する事が出来て GC が実装可能になる。 要するに、スタックマシーンを実装する事になり、GC の観点からもバイトコードにコンパイルする事は必要な事だという結論に至った。"
島鉄雄さんのツイート: "PS4版ドラクエ11の記事だけど、 > まだガベージコレクションに絡む画面のカクつき問題が残ったままになっていました。 > さっき言った画面のカクカク問題の対策は1月から始めて5月まで続いて、すごく時間がかかりましたね。 GC は罪な奴だぜ… https://t.co/j6JneI70KP"
島鉄雄さんのツイート: "一方、UE4 ドキュメントには > UE4 のガーベジ コレクションは高速かつ効率的です。 ホントかよ… リアルタイム3Dゲームでカクつかない GC が出来ればいいけどね。 Java11 に実装された ZGC がそうであるんじゃないかと思ってる。 https://t.co/n472hA2m6O"
島鉄雄さんのツイート: "でも、ドラクエ11 の成果が UE4 に盛り込まれたらしいから、今の UE4 は大きめのプロジェクトを動かしても、カクカクしないのかもね。"
Kazuho Okuさんのツイート: "GCの有無の基準は、「いつ回収するか」を意識する必要があるかどうかで決まるんだろうな。その基準でいうと、refcountは「穴があるGC」。Rustの所有権は、いつ回収するかを明示するための手法であって、意識しなくてよくなるわけではない"
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Cのコード生成系をいじって正確なGCをサポートして、LinuxにGCを入れた例がありますね。 (https://t.co/dX31V8jVjT (PDF)) この論文紹介を私が発表したことがありますのでよかったこっちも...  https://t.co/RDfj88iarb」 / Twitter
ismm09-rwrf.pdf
monochromeさんはTwitterを使っています: 「@miura1729 なるほど!面白いですね。今だとGoで書き直せ、って話になるんでしょうけど。 CRubyには全く使えないな〜と思って読んでいたら、論文中でも動かそうと頑張ってみたけど全く動かないのでさじを投げた唯一の例として挙げられていました。まあそりゃそうだ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 たしかにGoで書き直す方が現実的ですね。あの論文を読んでからOSはむしろGCのある言語で書くべきと思っています。CRubyはまあポインタでビット演算しているから無理でしょうね」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 gVisorみたいなバリバリに使われているシステムソフトウェアがGoで書かれて普通に動いているので、実用上も問題なさそうですね。あとはRustみたいな方向性ですかねえ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Rustみたいな方向性は制約が強すぎてリファレンスカウントの山になって却ってよくないと思うんですけどね。定量的な評価がみたいです。」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 GoでOS作る話はdrumatoさんが論文紹介していました。ちょっと遅いけどまあまあ良い、という話。 https://t.co/RL8aZUKUP4」 / Twitter
The benefits and costs of writing a POSIX kernel in a high-level language
DrumatoさんはTwitterを使っています: 「この論文ではHLLの機能の中でもGCについてフォーカスしていて、 自動的メモリ管理による「安全性」と「パフォーマンス」はトレードオフの関係にあると主張しているんだけど、 あれ、じゃあRustでOSカーネルを実装してC実装と性能比較したみたいな論文って無いのかな? と思ったらあるっぽい https://t.co/8ReN7PGFVe」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 Rustはunsafeなコードを認めていないわけじゃなくて、必要なら範囲を明示して使えるし、unsafeなライブラリ関数も多数用意されているんですよね。あと、標準でスレッド安全が保証されているのは大きいと思っています。(まだ勉強中なので見当違いかもしれませんが」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほど、静的解析。昔はOSを高級言語で書くなんてって言われたわけですから変っていくんじゃないでしょうかね」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 OSだとunsafeじゃない部分がどのくらいあるのかな?って思いましたが、結構あるのかな?unsafe割合しだいですが、スレッド安全はありがたそうです。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 リフレクションタワーはリフレクション話で一番面白いところですからね。Rubyはこの辺で出てきた知見を取り入れていますが、タワーが無かったり当初より美しくないですね。まあ、当初のは実装がすごく難しいですけど」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 Ruby、クラス定義とかが不必要なまでに動的に可能で処理系作りながら何なんだこれは…と思っていたんですが、動かしながら自分自身に機能を追加したり変更したりするモデルが念頭にあったんだとすると、なるほど~と感じました。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 この手の話はもともとLispが発祥なんですけど、30年くらい前に色々混乱していたのを整理してリフレクションって名前を付けたものです。この時整理したものをまともに実装すると凄く重いのでいまではリフレクション機能っていうとRubyも含めて昔のLispのもののようなものが多い気がします。」 / Twitter
ドッグさんはTwitterを使っています 「ガベコレで Eden 領域というのがあって,何だろうと思ったらいわゆる Nursery のことなのか.オブジェクトが生まれるところが Eden で,Young 領域に"追放"される(一度 Young に行くともう戻ってこれない).オブジェクトが犯した罪とは…」 / Twitter

Learned Garbage Collection

Masahiro SakaiさんはTwitterを使っています 「Learned Garbage Collection https://t.co/JVH3M4pHi2 CPythonのGCタイミングを強化学習で。状態はアロケーションを行うバイトコードのアドレスと現在の使用メモリ量、アクションはGCしないかk以下の世代のGCで、報酬は時間あたりのリクエスト処理数などで、(DQNではなくテーブルを用いる)Q学習。」 / Twitter
Learned garbage collection | Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages
Masahiro SakaiさんはTwitterを使っています 「いくつか工夫を入れたバージョン&ベンチマークプログラムではCPythonのデフォルトよりも良い結果。Webサーバの例で、GCをOSのI/Oとオーバーラップするような方策が学習出来てたりするの面白い。 スライド: https://t.co/tbBO5kN7Wi 講演動画: https://t.co/RcLvn1zbJd」 / Twitter
Learned Garbage Collection - Google スライド
Masahiro SakaiさんはTwitterを使っています 「CPythonではGCはあくまでリファレンスカウンタの補助で、(回収可能な)サイクルが存在しない状態でGCしても無意味というのがやっぱり特殊なのと、あと一般にはコンテキスト(=コールスタック)の情報を何らかの形で状態に含めないとうまくいかないんじゃないかと思った。」 / Twitter

ハザードポインタ

Ryou Ezoeさんのツイート: "ハザードポインターの概要は理解した。ハザードポインターというのはGCの手段だ。ロックフリーデータ構造では複数のスレッドが同時にポインターを参照していることがあるので、メモリーを破棄するには何らかのGCが必要になる。"
Ryou Ezoeさんのツイート: "GCをどうやって実装すればいいのか。参照数をカウントしてしまえばいいが、他の方法としてハザードポインターが考案された。"
Ryou Ezoeさんのツイート: "ハザードポインターの仕組みは簡単だ。 1. スレッドはポインターを使う前にスレッドに紐付けられたハザードポインターにポインターを格納する 2. ポインターの参照するメモリを破棄する前に、すべてのハザードポインターに同じ値のポインターが存在しないことを確認する。"
Ryou Ezoeさんのツイート: "ハザードポインターにポインターが存在するポインターはどこかのスレッドが使っているので破棄してはいけない。あとで破棄する。ハザードポインターに存在しないポインターはすぐに破棄してよい。"
Ryou Ezoeさんのツイート: "問題は、スレッドごとにハザードポインターを確保し、必要がなくなったら解放する仕組みを効率よくしかもロックフリーで実装するのが難しいということだ。"
Ryou Ezoeさんのツイート: "正直ハザードポインターがロックフリーで実装できるならリファレンスカウントもロックフリーで実装できるのでは。"

@blackenedgold

Rust

κeenさんのツイート: "ふむ。メモリ管理やスレッドセーフティに厳格なRustの上になんでもありなGCを実装するのはかなりの苦しみなんだけどやってのけたのか Shifgrethor I: Garbage collection as a Rust library https://t.co/NdA6XdM1K7"
withoutboats/shifgrethor: research
κeenさんのツイート: "withoutboats/shifgrethor: research https://t.co/JIPM4BNW5B"
Shifgrethor I: Garbage collection as a Rust library
κeenさんのツイート: "これ使ってkappaLisp作り直してみるかな"

κeenさんのツイート: "そういえばブログ記事、なんか勢いで書いたのでCopy GCのゴミ回収が速いって書いてたけどあれ、多くの場合嘘だよね"
κeenさんのツイート: "そうか。分散合意しようとすると1つのノードでGCが走ると他のノードにも影響があるのか。 Rust in TiKV · TiDB Blog https://t.co/vTRg2l2TuO"
κeenさんのツイート: "CopyGCについても言及しようと思ったけど巨大なTree育ててる時点で既にGCコスト払ってるのでいっかと思って放置してました"
κeenさんはTwitterを使っています 「全てイミュータブルで使われるときにコピーする、それでGCレスにできると思うけどコピーコストが嵩んで恐ろしく遅くなるんじゃないかな?例えばconsなんて何回コピーが走るか怖くてできなくなる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「たとえば、線形論理っていう理論を使って注意深く参照数を高々1にすることでGCを無くしたLisp、liner lispってのがあります。昔、その記事を書いたことがあるので、良かったらどうぞ https://t.co/PN4xfy9RZy」 / Twitter
GC撲滅への道 - GC Advent Calendar - miura1729の日記
ACM Sigplan Notices 27, 8 (Aug. 1992), 89-98.
1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Let's try ML Kit with Regions
Home Page
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「メモリ管理の手法としては ・スタックのみ ・手動メモリ管理 ・参照カウント ・GC ・リージョン推論 などがあって、それぞれメリットデメリットがあるわけで、既存の手法にあるような欠点を持たない全く新しい手法が無から生まれることは考えづらい」 / Twitter
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「もしも全く新しい方法が登場するとしても、いきなり実用的な言語に実装されるのではなく、先に論文が出てそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「処理をトランザクションとして見て、そのトランザクションを終了したらそれに関わるメモリを開放するって言う感じのメモリ管理は組み込みでは一杯やられていそうだし、あんまり論文は無さそうな気がする」 / Twitter
uint256_tさんはTwitterを使っています 「計算理論 破綻しそう」 / Twitter
╹ω╹linguini.leanさんはTwitterを使っています 「@uint256_t どういうふうに」 / Twitter
uint256_tさんはTwitterを使っています 「@1inguini 事前にどのようにメモリが消費されるのかわかるなら, 停止性問題解けそう (適当)」 / Twitter

@anohana

Shiro Kawaiさんのツイート: "#tcfm 16回 https://t.co/JfkqRA6N4P VMWareの二重スワップ問題、二重丸め問題とかデュアルGC問題とか、「賢い二者がお互いに相手のことを気づかずに手を出してダメダメになる」みたいなメタな問題構造があるようなないような。"
Shiro Kawaiさんのツイート: "いや二重丸めやGCは乱択化(一方の賢さを減じる)では解決にならないから別のクラスの問題と考えるべきかな。"
Shiro Kawaiさんのツイート: "今主流のアーキテクチャ(CPUで選べる場合はOS込み)で、上方向に伸びるのを採用してるのってありますか? 自分でGC書いてた頃はautoconfマクロでチェックしてた覚えがありますが最近気にしたことないなあ… "

GPU

SPIR-V

KhronosGroup/SPIRV-Cross: SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
KhronosGroup/SPIRV-Headers: SPIRV-Headers
KhronosGroup/SPIRV-Tools
KhronosGroup/SPIRV-LLVM: LLVM framework with SPIR-V support. It's intended to contain LLVM <-> SPIR-V converter and serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
Khronos SPIR-V Registry
OpenGL で SPIR-V のシェーダー
すらりんさんのツイート: "OpenGL 使い(自分) が求めていたのは GL_ARB_get_program_binary ではなく GL_ARB_gl_spirv 。コードからコンパイル済みの中間データなのでおそらく他環境へ持って行っても大丈夫なはず(未検証"
Fadisさんのツイート: "OpenGLではシェーダはGLSLという高級言語の状態でランタイムに渡し実行時にコンパイルするが、大量のシェーダを使う今日のグラフィックではこのコンパイル時間が深刻な問題になっていたため、事前にコンパイルしておける中間言語SPIRを後付けで規格化し、拡張で対応していた"
Fadisさんのツイート: "VulkanではSPIRの後継にあたる中間言語SPIR-Vがランタイムが要求するシェーダの形式になっており、Vulkanに対応した環境ならどこでも事前にシェーダをコンパイルできる。Vulkanの規格は高級言語に何を使ったかは問わない"
Fadisさんのツイート: "で、使い慣れたGLSLをVulkanで使いたい人の為にGLSLをSPIR-Vにコンパイルする拡張が用意されてる https://t.co/fLUP7rhFd3"
Fadisさんのツイート: "これ、VulkanにGLSLを足す拡張ではなく、OpenGLランタイムがVulkan用のSPIR-Vを吐けるようにするOpenGLの拡張なんだなw"
Fadisさんのツイート: "MesaのAMDGPUドライバのGLSLコンパイラをNIRに対応させたい→Vulkan側にSPIR-V→NIR→マシン語の実装が既にあるからGLSLをSPIR-Vにコンパイルしよう→MesaにARB_gl_spirv実装の機運 https://t.co/S00U7UHxz1"
Fadisさんのツイート: "ARB_gl_spirvってのはOpenGLランタイムがGLSLをコンパイルして、それを自分で実行するのではなくVulkanの中間言語形式SPIR-Vで出力できるようにする拡張。これを使えばGLSLで書いたシェーダをコンパイルしてVulkanに食べさせる事ができる"
Fadisさんのツイート: "今年のGSoCに「SPIR-VをLLVM IRにコンパイルしてCPUで走るVulkanレンダラ」を目指す学生さん登場。メンターはMesaのRADEON用Vulkanドライバの人。まだ殆ど何も無いけどgithubにリポジトリが出来てる https://t.co/42YzLu8KMq"
The Git Repository For The Vulkan Software Renderer In Development - Phoronix
google/clspv
SPIR-Vシェーダー拡張を統合した「OpenGL 4.6」が公開 | OSDN Magazine
Christopheさんのツイート: "SPIR-V back-end in Microsoft HLSL compiler: https://t.co/GdN1DC0nP8"
Fadisさんのツイート: "HLSLをSPIR-Vにコンパイルする場合の機能の対応関係について https://t.co/B9LNM9RfgW"
DirectXShaderCompiler/SPIR-V.rst at master · Microsoft/DirectXShaderCompiler
GPGPU戦争の歴史を紐解く ―勃発から現在に至るまで― - syghの新フラグメント置き場
OpenGL 4.6の進化点やOpenCLの将来について,Khronos Group代表のNeil Trevett氏に聞いてみた - 4Gamer.net
いぐにすさんさんのツイート: "GPGPU黎明期に飛びついて少し触った人(の一部)、「自分もGPGPUの経験あるけどメモリ足りないしhost/deviceのメモリ転送コスト高い」と言い出すんやけど、現代は1枚10GB搭載グラボ簡単に手に入るので知識をアップデートして欲しい"
Fadisさんのツイート: "マッピングでややこしいメモリ転送が簡単になったし、カーネル内からカーネル呼べるようになって動的な並列度の変更もしやすくなったし、コンパイラは初期より正しくC++を読むようになったし、ちょっとした用途なら便利なライブラリが揃ってるし、確かに初期のCUDAの感触は微塵も役に立たないな"
Fadisさんのツイート: "クロノスグループ、LLVM IRとSPIR-Vの双方向の変換を行うトランスレータを公開。LLVM IRに落とせるプログラミング言語を使ったシェーダの記述やLLVMがサポートするアーキテクチャ上でのシェーダの実行等への応用が期待される https://t.co/WYUcm2otdF"
Khronos Officially Announces Its LLVM/SPIR-V Translator - Phoronix
FadisさんはTwitterを使っています: 「RustのサブセットをSPIR-Vにコンパイルする猛者が現れた。SPIR-VはGPUで実行する処理の中間表現で、従来GLSLやHLSLをコンパイルして作る物だった。Vulkan等はこれを食べてGPUのネイティブバイナリを作る。サブセットはRust Like Shading Language(略してRLSL)と呼ばれている https://t.co/hHFlGkCoJp」 / Twitter
RLSL Allows Running A Subset Of Rust On Vulkan/SPIR-V Enabled GPUs - Phoronix
FadisさんはTwitterを使っています: 「W3CがWeb Gameに関する進捗報告の中で、WebGPUでSPIR-Vをシェーダの形式として利用できないかクロノスグループと議論した事が述べられているのがPhoronixの記事になっている。SPIR-VはVulkan等で使われているシェーダの中間表現、WebGPUはWebGLの後継とされるグラフィックAPI https://t.co/cr9bwswUPp」 / Twitter
Khronos + W3C Collaborating On SPIR-V Potentially Being The Shading Language For The Web - Phoronix

MIAOW

【連載】Hot Chips 27 - ウィスコンシン大学のOpen GPU「MIAOW」 | マイナビニュース
MIAOW GPU
VerticalResearchGroup/miaow: An open source GPU based off of the AMD Southern Islands ISA.
Raghuraman Balasubramanian's research works | University of Wisconsin–Madison, Wisconsin (UW) and other places
Enabling GPGPU low-level hardware explorations with MIAOW: An open-source RTL implementation of a GPGPU | Request PDF
Enabling GPGPU Low-Level Hardware Explorations with MIAOW: An Open-Source RTL Implementation of a GPGPU: ACM Transactions on Architecture and Code Optimization: Vol 12, No 2

PC Watch

【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第1回 ~固定機能からシェーダへの移り変わり - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第2回 ~GPGPUへの最適化や電力効率向上へ進んだNVIDIA GPUの歩み - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第3回 ~ビッグGPUから効率重視へ、そしてGCNへと繋がるAMD GPUの歴史 - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第4回 ~GPGPU性能引き上げのカギとなるCPUとGPUの連携 - PC Watch
Apple、macOS/iOSで「OpenGL/CL」の利用を“非推奨”に - PC Watch
【後藤弘茂のWeekly海外ニュース】GTCでKhronosが明らかにしたAPIアップデート - PC Watch

マイナビ

コンピュータアーキテクチャの話

310-324

コンピュータアーキテクチャの話 (310) 超マルチスレッドプロセサである「GPU」に見るグラフィックス処理 | マイナビニュース
コンピュータアーキテクチャの話 (311) 現在のGPUの主流となっている「ユニファイドシェーダ」 | マイナビニュース
コンピュータアーキテクチャの話 (312) 固定小数点の演算から、浮動小数点の演算へ | マイナビニュース
コンピュータアーキテクチャの話 (313) 1つの命令で複数の演算器を動かす「SIMD」 | マイナビニュース
コンピュータアーキテクチャの話 (314) Teslaアーキテクチャが採用した「SIMT方式」 | マイナビニュース
コンピュータアーキテクチャの話 (315) ばらばらのメモリアクセスパターンを処理する必要があるSIMT方式 | マイナビニュース
コンピュータアーキテクチャの話 (316) GPUが高性能な理由 | マイナビニュース
コンピュータアーキテクチャの話 (317) 浮動小数点演算器の搭載により科学技術計算分野での活用が進んだGPU | マイナビニュース
コンピュータアーキテクチャの話 (318) GPUはどうやってマルチスレッド処理を行っているか | マイナビニュース
コンピュータアーキテクチャの話 (319) CPUに比べて圧倒的に多いレジスタ数 | マイナビニュース
コンピュータアーキテクチャの話 (320) なぜGPUにはDDR DRAMではなくGDDR DRAMが用いられるのか? | マイナビニュース
コンピュータアーキテクチャの話 (321) GDDR5の後継として検討されるHBM | マイナビニュース
コンピュータアーキテクチャの話 (322) GPUが用いるメモリのアクセス時間の短縮方法 | マイナビニュース
コンピュータアーキテクチャの話 (323) GPUで用いられるメモリのエラー検出手法とその訂正手法 | マイナビニュース
コンピュータアーキテクチャの話 (324) GPUのエラー発生頻度はどの程度のものであるか? | マイナビニュース

325-349

コンピュータアーキテクチャの話 (325) エラーの検出方法 | マイナビニュース
コンピュータアーキテクチャの話 (326) 1ビット訂正ハミングコード | マイナビニュース
コンピュータアーキテクチャの話 (327) CMOSにおける消費エネルギーと動作速度の関係 | マイナビニュース
コンピュータアーキテクチャの話 (328) 「GPU」はスループット重視のプロセサ | マイナビニュース
コンピュータアーキテクチャの話 (329) GPUは膨大なバンド幅をどうやって実現しているのか? | マイナビニュース
コンピュータアーキテクチャの話 (330) レジスタファイルとシェアードメモリ | マイナビニュース
コンピュータアーキテクチャの話 (331) 汎用の科学技術計算におけるGPUのキャッシュの必要性 | マイナビニュース
コンピュータアーキテクチャの話 (332) シェアードメモリとキャッシュメモリは何が違うのか | マイナビニュース
コンピュータアーキテクチャの話 (333) GPUにおける1スレッドあたりのキャッシュ容量の考え方 | マイナビニュース
コンピュータアーキテクチャの話 (334) キャッシュのコヒーレンスはどのように保たれているのか | マイナビニュース
NVIDIA GPUのキャッシュを考える (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA | マイナビニュース
GPUのコアと2次キャッシュの関係性 (336) CPUと異なるGPUにおけるコアと2次キャッシュの関係性 | マイナビニュース
CPUと異なるGPUのキャッシュ活用 (337) 実はそれほど速くはないGPUのメモリアクセス時間 | マイナビニュース
実はGPUは低速処理のプロセッサ!? (338) 1命令の実行時間は遅いが、複数命令の同時処理で高性能を実現するGPU | マイナビニュース
コンピュータアーキテクチャの話 (339) よくわかっていないGPUのハードウェアの造り | マイナビニュース
NVIDIA GPUの基本的な実行方式 (340) NVIDIAのGPUにおける実行方式 | マイナビニュース
事実上標準のGPUの実行方式とは? (341) GPUの事実上の標準となりつつある実行方式 | マイナビニュース
GPUで用いる2つの変数の大きな違い (342) 「nBlocks」と「nThreads」、2つの変数の大きな違い | マイナビニュース
NVIDIAの「ギガスレッドエンジン」 (343) 多数のスレッドを実行させるNVIDIAの「ギガスレッドエンジン」 | マイナビニュース
ワープスケジューラの仕組み (344) ワープスケジューラの仕組み | マイナビニュース
Kepler GPUの構成を読み解く (345) Kepler GPUの構成 | マイナビニュース
GPUの演算単位を推測する (346) Kepler GPUとMaxwell GPUの演算単位を推測する | マイナビニュース
レジスタ対応が固定ではないGPU (347) CPUとは異なり、レジスタ対応が固定ではないGPU | マイナビニュース
GPUにおけるメモリアクセス (348) 複数のデータの処理を一度に行うGPUのメモリアクセス | マイナビニュース
GPUにおける条件分岐の方法 (349) GPUにおける条件分岐の方法 | マイナビニュース

350-374

コンピュータアーキテクチャの話 (350) NVIDIAの世代別GPUに見るハードウェアの違い | マイナビニュース
GPUでスレッドを同期させる手法 (351) GPUでスレッドを同期させる手法 | マイナビニュース
コンピュータアーキテクチャの話 (352) GPUで用いられるシェアードメモリの原理 | マイナビニュース
コンピュータアーキテクチャの話 (353) GPUにおける1次キャッシュのコヒーレンシ | マイナビニュース
GPUのデバイスメモリの考え方 (354) GPUのデバイスメモリのアドレスの考え方 | マイナビニュース
GPUにおけるECCの考え方 (355) GPUにおけるECCの考え方 | マイナビニュース
なぜHBMが期待されるのか (356) 積層することで性能向上を図ったHBM | マイナビニュース
コンピュータアーキテクチャの話 (357) CPUとGPUの通信 | マイナビニュース
HPCでのCPU-GPU間データ転送方法 (358) HPCにおけるCPU-GPU間のデータのやり取り | マイナビニュース
コンピュータアーキテクチャの話 (359) GPUプログラミングを難しくするCPUとGPUのメモリの分散 | マイナビニュース
コンピュータアーキテクチャの話 (360) CPUとGPUで処理を分担する場合のメモリのコピー手法 | マイナビニュース
コンピュータアーキテクチャの話 (361) 仮想化で1つのGPUを複数ユーザで活用する | マイナビニュース
コンピュータアーキテクチャの話 (362) ATIを買収してGPUを手に入れたAMD | マイナビニュース
コンピュータアーキテクチャの話 (363) VLIW命令をSIMD実行することで効率を高めたATI | マイナビニュース
コンピュータアーキテクチャの話 (364) AMDの新GPUアーキテクチャ「GCN」 | マイナビニュース
コンピュータアーキテクチャの話 (365) GCNのブロックダイヤグラムを読む | マイナビニュース
コンピュータアーキテクチャの話 (366) GCNのスカラユニットとベクトル演算 | マイナビニュース
コンピュータアーキテクチャの話 (367) GCNの性能を活かすのに必要なコンピュートユニット内蔵メモリ | マイナビニュース
コンピュータアーキテクチャの話 (368) GCNアーキテクチャにおける1次データキャッシュの構造 | マイナビニュース
コンピュータアーキテクチャの話 (369) AMDのGPUが用いているデバイスメモリの種類 | マイナビニュース
コンピュータアーキテクチャの話 (370) ディープラーニングを支えるGPU | マイナビニュース
コンピュータアーキテクチャの話 (371) AlexNetの構造を読み解く | マイナビニュース
コンピュータアーキテクチャの話 (372) ディープラーニングの入力の重みの値を決める「学習」 | マイナビニュース
コンピュータアーキテクチャの話 (373) 「推論」の精度 - INT8でも性能低下は僅か | マイナビニュース

GPU MEMORY BOOTCAMP

GPU活用のためのMEMORY BOOTCAMP (1) 新人のCUDAプログラマを一人前に育て上げるGPU MEMORY BOOTCAMP | マイナビニュース
輸送機で考えるGPUのメモリ移動 (2) 輸送機で考えるGPUのメモリバンド幅とレーテンシ | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (3) 行列の転置を行う場合のメモリアクセス | マイナビニュース
NVVPでGPUアプリの性能を改善 (4) プロファイラの活用で、性能改善を図る | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (5) グリッドを大きくする方法 | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (6) メモリバンド幅の解析を実行し、さらに並列度を上げる | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (7) スレッドのメモリ読み出し要求の仕組みを知る | マイナビニュース
GPUにおける行列の転置を考える (8) 行列の転置では書き込みは飛び飛びアドレスになる | マイナビニュース
GPUのシェアードメモリを活用する (9) シェアードメモリ中での転置で、連続アドレスへの書き込みを実現 | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (10) バンクコンフリクトを避けるには? | マイナビニュース

Wikipedia

GPGPU - Wikipedia
General-purpose computing on graphics processing units - Wikipedia
FLOPS - Wikipedia
FLOPS - Wikipedia

Twitter

GPGPU

猫 a.k.a INAさんのツイート: "これ読むとPEZYがあのL1でやれてるのが不思議なんだけど隣の読みに行けるとか階層キャッシュのテクニックとかソフトウェア的なあれこれがあるんじゃろか"
Hideyuki Tanakaさんのツイート: "1コア当たり8スレッドにすることでレイテンシーを隠蔽しようとしてて、実際L2のレイテンシまでは完全に隠せるように行列乗算コードを書いているから、L1は現在のコードならば、どんだけ小さくてもそれなりの速度は出ますね…"
Hideyuki Tanakaさんのツイート: "700Mhzで、4サイクルに一回しか実行回ってこないし、ロード隠ぺいするための裏スレッドを使ってるので、まあそこらへんは一応頑張れば隠せるように用意はしてありますね…"
Hideyuki Tanakaさんのツイート: "GPGPUだと死ぬほど多いスレッドを使って勝手にレイテンシ隠そうとしてる感じだけど、まあ、PEZY-SCのでもそんなに大変なわけじゃないよ(大変)GPGPU向けのGEMM書いたことないからわかんないけど…"
Hideyuki Tanakaさんのツイート: "ほんとは4x2じゃなくて、8スレのラウンドロビンにしてくれ~って感じだけど、無理らしいからまあいいかという(´・_・`)"
Hideyuki Tanakaさんのツイート: "@objectxplosive うーん、パイプライニングなのかなあ?命令のレイテンシはMAD以外全部1命令分のサイクルだけど、メモリのレイテンシー隠蔽だけでそういうものなのかな?"
Hideyuki Tanakaさんのツイート: "@09SEPGR スレッド増やせば増やすほど簡単になるけど、増やし過ぎてもリソース食いすぎるし、そもそもレイテンシを隠すためだけにスレッドたくさん使うのもなんかよくない気がする(多分ハードウェアリソース的に?)んでまあその辺のバランスをとってるんだと思う"

ライセンス

VさんはTwitterを使っています 「自分が調べた限りハードウェアエンコーダで特許料支払われているのはほぼありませんよ。ちゃんと払っているのは Raspberry Pi くらいです。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「普通はハードウェアエンコーダつかうし当然そのハードウェアで特許料支払いされてるので関係ないのだけど、Dockerとかで動画エンコード機能を持ったツールを公開したいときとかにはハードウェア前提にしたり商用エンコーダ同梱できないから無償ソフトエンコーダ必要なのよね。」 / Twitter
VさんはTwitterを使っています 「NVIDIA や MPEG-LA にきちんと確認しているので間違いないです。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas ええぇ、ハードウェアエンコーダ屋さん、ライセンス料払ってなかったの!!! まぁ買う側で何とかしてくれ責任持たねぇって言いたい気持ちも分かるけど。 といっても、私がここでいうハードウェアエンコーダってチップやSBCレベルじゃなくて商用エンコーダ機器レベルのつもりだったのだけど。」 / Twitter
VさんはTwitterを使っています 「@dynamitter ARM / Apple / Intel / NVIDIA / AMD に搭載されているハードウェアエンコーダを商用で利用する場合はすべてライセンス取得が別途必須という認識です。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas まぁエンコード専用チップではないので、その機能使うなら自分でライセンス払ってねと言うのが自然よね。 組み込みのルネサスとかもSoC側で払ってなかった気がする。 エンコード専用チップの方は例えばソシオネクストとか払ってたりするのかな。やはりそれも採用側に任せてるのかな。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas そうか、Jetson Nanoちゃん...」 / Twitter

libcu++

FadisさんはTwitterを使っています 「NVIDIAがlibcu++のソースコードをApacheライセンスでGitHubに上げたらしい。libcu++はC++標準ライブラリに似たAPIをcuda::の下に生やすライブラリで、標準ライブラリと異なり定義された型や関数はデバイス側で使用する事ができ、値はホストとデバイスで直接やり取りできる https://t.co/WIEoSJLEsU」 / Twitter
NVIDIA C++ Standard Library Now Available Via GitHub - Phoronix
Overview - libcu++

histric-1

Out-of-Domain Awardさんのツイート: "今まで踏んだ一番ひどいエラーは、数千個あるCUDAコアのどれか1個だけバグでNaNしか返さなくなっていて、運悪くそのコアがアサインされるとbackpropagationで伝播してモデルが台無しになる。NaNを弾くコードを入れていないと数日経ってから気づくことになる"
Rockridgeさんのツイート: "Blinkの開発チームがWebGPU(新3DグラフィックスAPI)の実装を開始。WebGL/WebGL 2の後継となるもので、Safariが既に実験的に実装しているが、EdgeやFirefoxでも採用されるらしい。 / “Int…” https://t.co/elmcqYDaTl"
渋川よしきさんのツイート: "WWDCの話で1番やべえなってのは、Metal推奨でOpenGL非推奨化へ、という話ですね。"
Dustin Westphalさんのツイート: "OpenGL is deprecated in 10.14 Mojave. /eyetwitch… "
Apple Deprecates OpenGL & OpenCL - Phoronix
Jun Mukaiさんのツイート: "MetalとVulkanの関係ってどうなってるんだっけ?と思って調べたらhttps://t.co/InEoEGsj4b こういうのあるのか。OpenGLがなくなっても、こういうのをつかえばよいのかな"
Molten | Vulkan, and faster OpenGL ES, on iOS and macOS
Makoto Kato ︎︎さんのツイート: "MS has stopped investment for OpenGL at Windows 2000 era, then their API moves to DirectX. Apple wants to control APIs for GPU like MS..."
Fadisさんのツイート: "いまのAppleのOpenGLの扱いに対して、ジョブズの時代はこうではなかったというのは全くの間違いで、ジョブズ氏の時代からAppleのOpenGLの扱いは酷かった。ただ彼にはOpenGL2を強いられたあの時代でさえ、それを世界で最も先進的なグラフィックと言い切る能力があった"
ハガさんのツイート: "モバイルGPUのタイルベースなレンダリングとか複雑になるだけじゃん要らねーよと思ってたけど、タイルごとにラスタライズの解像度を変えられると知って急にとても良いものに思えてきた・・・。"
次世代のWebGPUの可能性 - WebGLと比較して理解する描画機能の違い - ICS MEDIA
Makoto Kato ︎︎さんのツイート: "自分の知ってる話と他の情報からすると、WebGPUはプロトタイプはAppleが作ったけど、正式なAPIは作り直し (他のOSやブラウザ的にありかないかも含めて) になるかもって話なので、今はAPIを覚えるのはフィードバック用でしかないと思うんだ"
Makoto Kato ︎︎さんのツイート: "No more Canvas API的な"
Makoto Kato ︎︎さんのツイート: "誰もVulkan -> Metalのトランスパイラ作りたいなんて思ってない (ANGLEのGLSL -> HLSLみちゃうとね)"
Fadisさんのツイート: "Vulkan 1.1で利用可能になったsubgroupは、同一Warp内の別のスレッドの計算結果を覗き見して演算を行う事が出来る。これによってイケてるハードウェア上ではWarp内でのreductionのような計算がシェアードメモリを使った場合より高速に行えるようになる。 …何この後ろのハードウェアが透けて見える機能"
chikoskiさんはTwitterを使っています: 「WebGPUの紹介記事。まだ先かな、と思っていたけどChromeでenable-unsafe-webgpuのフラグを立てると使える模様。簡単なコードとGPUの説明が続く。最後に行列の掛け算を使ったベンチマーク。256x256以上はGPUの方が早く、512x512以降は大きな差がつく。という内容: https://t.co/YtW91JmNES」 / Twitter
Get started with GPU Compute on the Web  |  Web  |  Google Developers
FadisさんはTwitterを使っています: 「プログラミング言語Taichi: 空間的に疎なデータを処理するコードを汎用的な言語で書くのが煩雑過ぎるから、データの保持方法の定義と、何らかの方法で保持されたデータを操作する処理を分離して書いて、CPUやGPUで効率よく実行出来るコードに落とせるDSL https://t.co/przYp05IzO」 / Twitter
Taichi
FadisさんはTwitterを使っています: 「あれば便利には違いないけど、これがオーバーヘッドなくライブラリで実現出来ないか、という点についてはC++なら出来んことはない気がする」 / Twitter
FadisさんはTwitterを使っています: 「Mitsuba2: オープンソースのグラフィックレンダラーMitsubaの後継。Mitsubaとの違いはメタいC++で書かれたレイに対する処理をCPUだけでなくGPUでも実行できるようになった点、それを自動微分して逆レンダリングができるようになった点、スペクトルレンダリングに対応した点等 https://t.co/MLf4BPe30G」 / Twitter
RGL | Mitsuba 2: A Retargetable Forward and Inverse Renderer
FadisさんはTwitterを使っています: 「いろんなプラットフォームで効率の良いSIMDな実行可能バイナリを生成する為の最適化はMitsuba2本体から分離されていて、Enokiなるライブラリにまとめられているらしい https://t.co/eNkdTLTII2」 / Twitter
mitsuba-renderer/enoki: Enoki: structured vectorization and differentiation on modern processor architectures

FadisさんはTwitterを使っています: 「学習済みのニューラルネットワークを使って評価を行う際に、重みの精度は出力の品質に影響を与えにくい事が知られている。このためGPUの命令は精度を下げて一度に計算できる行列のサイズを大きくするように拡張されており、NVIDIA Turingでは4bit整数で出来た行列の演算を高速に行う事ができるらしい」 / Twitter
FadisさんはTwitterを使っています 「今は昔ほどGPUが多様でないから低レイヤーAPIでいけるというのは間違ってて、メモリの構成はGPU毎に異なるし、タイルベースGPUがでかい顔してるし、TensorCoreみたいなの生えてくるし、出ていく先はsRGBじゃないかもしれないし、VRでマルチGPU(以下略)で、控えめに言って世紀末なんだよな」 / Twitter
FadisさんはTwitterを使っています 「じゃあ何でVulkanみたいな薄いAPIで多様なハードウェア抽象化できるかと言うと、抽象化出来てないんだ。Vulkanはハードウェアの違いを吸収しない。Vulkanは世の中には色んなGPUがあるという現実をそのままプログラマにつきつけてくる。プログラマは倒れる。」 / Twitter
FadisさんはTwitterを使っています 「VulkanとOpenGLの方向性の違いがわかりやすく出てるのがVK_KHR_surface拡張で、この拡張は普通の画面とはどんな物で、どうすれば画面に描画結果を表示できるかを定義する。これが拡張であるという事は「Vulkanが動く」だけでは画面表示能力は無いかもしれない、という意味になる」 / Twitter
FadisさんはTwitterを使っています 「@RKX1209 Bounding Volume Hierarchy。AABBを再帰的に重ねた木構造で、logオーダーである範囲に存在する要素を探せる。これを作っておくとある直線と交差する面を高速に求める事ができるからリアルタイムレイトレーシングには欠かせない。」 / Twitter
FadisさんはTwitterを使っています 「@RKX1209 動くシーンのレイトレーシングでは動きに合わせてBVHを素早く更新できる必要があって、これがリアルタイムレイトレーシング実現のための難題だったんだけど、ナウいGPUはBVH作る専用ハードウェア積んで解決してしまった」 / Twitter
FadisさんはTwitterを使っています 「netgpu: 1つのマシンに収まらないニューラルネットワークを扱うにはGPUの計算結果をネットワークに載せ、別のGPUを積んだマシンで受ける必要がある。このデータの移動をCPUが行うとボトルネックになるので、GPUとNIC でバッファを共有させ送受信の要求だけをCPUから行うLinuxカーネルのパッチがnetgpu」 / Twitter
FadisさんはTwitterを使っています 「netgpuの作者が、このパッチをバニラカーネルに入れようと提案したら激しく燃えた話。netgpuは現状nvidiaのGPUのみをサポートしており、nvidiaのプロプリドライバに付いてくるカーネルモジュールのコードが所定の位置にインストールされている事を期待しているのが原因 https://t.co/oNSAK4U0Ow」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CPUよりも高速に計算させようと思うと意外と大変です。ボトルネックがCPUとGPUの間のI/O転送にあるので。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CUDAやMetalの潜在能力を出し切るようなコーティングも結構大変ですね。」 / Twitter
FadisさんはTwitterを使っています 「GL_NV_command_list: OpenGLでGPUへのコマンドを記録して何度も繰り返し流せるようにする拡張。ランタイムのAPIから実際にGPUで実行するコードへ落とす作業はCPUを要する処理で、コマンド列を塊にする事でこの作業を事前に行いフレーム毎のCPUの負担を抑える。なにこのVulkan https://t.co/NX07BdsLEi」 / Twitter
https://www.khronos.org/registry/OpenGL/extensions/NV/NV_command_list.txt
FadisさんはTwitterを使っています 「ARMがPanfrostの開発に協力することにしたらしい。ARMのGPU Mali Midgardには純正のプロプリLinuxドライバと、リバースエンジニアリングで開発されているOSSなドライバPanfrostが存在するが、純正ドライバの品質があまり良くない事から各方面でPanfrostの利用が推奨されていた https://t.co/C38A5lWdGs」 / Twitter
Arm Is Now Backing Panfrost Gallium3D As Open-Source Mali Graphics Driver - Phoronix
FadisさんはTwitterを使っています 「Linux 5.11からTTMの実装が変わるらしい。TTMはGPUが触るメモリの管理を行うDRMのアロケータで、書き直された実装はロックの回避でメモリ確保がより高速になり、出来るだけ連続したメモリを塊で割り当てる事でTLBキャッシュヒット率が向上、AMDGPU等で性能の向上が期待できる https://t.co/MsDyLXhf9W」 / Twitter
New TTM Allocator For AMDGPU Graphics Memory Landing With Linux 5.11 - Phoronix
Ryo SuzukiさんはTwitterを使っています 「大量の三角形を、CPU で色や座標の情報を決めずに GPU だけで描画する機能を追加 #OpenSiv3D (v0.6) 複雑な形状を早く処理できる。 https://t.co/Tmg7VXhbcK」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「いわゆる null vertex buffer.」 / Twitter
FadisさんはTwitterを使っています 「ZLUDA: Intel oneAPI Level Zeroの上に実装されたCUDA Driver API。早い話がIntel GPU上でCUDAするための実装。ちなみにIntelはoneAPIをプラットフォーム非依存でアクセラレータを利用するためのAPIとしているが、Intel以外は乗り気ではない為事実上Intel専用になっている https://t.co/uuYSYSDQbD」 / Twitter
vosen/ZLUDA: CUDA on Intel GPUs

OpenCLやる前にSIMD使い切れっていう幻想 - aokomoriuta's blog
002: HW Validation List · heterodb/pg-strom Wiki
本の虫: vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPU版AirBnBみたいなサービス
Vectordash: GPU instances for deep learning
GPUSound入門 - Qiita
研究が"飛ぶ"瞬間 - Qiita
ハードウェアの速度をどう評価するか考える(2) ~メモリ、メモリ律速~ - arutema47's blog
GPUの温度と性能低下 - Fixstars Tech Blog /proc/cpuinfo
OpenACC vs OpenMP GPU Offloading (環境構築編) - Fixstars Tech Blog /proc/cpuinfo
Intel GPU専用言語C for Metalの解説 - Fixstars Tech Blog /proc/cpuinfo

Wikipedia

動的コンパイル - Wikipedia
トレーシング実行時コンパイル - Wikipedia
キャメルケース - Wikipedia
カーゴ・カルト・プログラミング - Wikipedia
Cargo cult programming - Wikipedia
フィーチャートグル - Wikipedia
命令スケジューリング - Wikipedia
タプル - Wikipedia
オフサイドルール - Wikipedia
グラフ理論 - Wikipedia
グラフ彩色 - Wikipedia
Data dependency - Wikipedia
インテンショナルプログラミング - Wikipedia
インタプリタ - Wikipedia
シェープ解析 - Wikipedia
ポインタ解析 - Wikipedia
エイリアス解析 - Wikipedia
エスケープ解析 - Wikipedia
スレッデッドコード - Wikipedia
バイトコード - Wikipedia
ファイバー (コンピュータ) - Wikipedia
コルーチン - Wikipedia
ジェネレータ (プログラミング) - Wikipedia
イテレータ - Wikipedia
ワードマシン - Wikipedia
操車場アルゴリズム - Wikipedia
木構造 (データ構造) - Wikipedia
ボックス化 - Wikipedia
LISPマシン - Wikipedia

ビルドシステム

トポロジカルソート

強連結成分

強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
連結グラフ - Wikipedia
強連結成分分解 | グラフ | Aizu Online Judge
目指せグラフマスター
Microsoft PowerPoint - ad11-12.pptx
Microsoft PowerPoint - 6.6-6.7配布
ALG2012-B.ppt
グラフとネットワーク 第 10回 連結性:モデル化
強連結成分分解 (Tarjan) | libalgo

AWK 本記載の循環検出付き改良版 Tarjan のトポロジカルソート - Tociyuki::Diary
Tarjan のトポロジカルソート - Tociyuki::Diary
Kahn 系統のトポロジカルソート - Tociyuki::Diary
トポロジカルソート - Wikipedia
ネットワーク・トポロジー - Wikipedia
tsort - Wikipedia
有向非巡回グラフ - Wikipedia
二項関係 - Wikipedia
順序集合 - Wikipedia
全順序 - Wikipedia
深さ優先探索 - Wikipedia
Depth-first search - Wikipedia
Spaghetti Source - トポロジカルソート
Topological sort
アルゴリズムと データ構造
第 7 章: グラフ (graph) — WTOPIA v1.0 documentation
隣接行列 - Wikipedia
グラフ理論の基礎 | 高校数学の美しい物語
オイラーグラフの定理とその証明 | 高校数学の美しい物語
隣接行列,接続行列,ラプラシアン行列 | 高校数学の美しい物語
グラフを表すデータ構造(隣接行列と隣接リスト) - 具体例で学ぶ数学
Microsoft PowerPoint - ad11-09.pptx
Microsoft PowerPoint - 数理計画と最適化101210prn.ppt
オイラーグラフとハミルトングラフ
スペクトラルグラフ理論入門
隣接行列 — WTOPIA v1.0 documentation
グラフ構造で位相空間のイメージをつかむ - Qiita

CMake

MSVC

Use CMake Converter — CMake-Converter 1.2 documentation
visual studio - How to support both vcxproj to cmake on a project? - Stack Overflow
cmake-converter · PyPI
cmake_converter Documentation
Visual C++ での CMake プロジェクト | Microsoft Docs
visual-studio vcproj2cmake convert - How to support both vcxproj to cmake on a project? - CODE Q&A Solved

MSBuild

MSBuild

MSBuild (Visual C) | Microsoft Docs
MSBuild (Visual C) の概要 | Microsoft Docs

MSBuild

MSBuild | Microsoft Docs

MSBuild

ブックマーク マネージャ
チュートリアル: MSBuild の使用 | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成 | Microsoft Docs
MSBuild プロパティ | Microsoft Docs
MSBuild 項目 | Microsoft Docs
MSBuild でのビルド ログの取得 | Microsoft Docs
MSBuild でのログ | Microsoft Docs

MSBuild リファレンス | Microsoft Docs

MSBuild リファレンス

ブックマーク マネージャ
MSBuild の条件構造 | Microsoft Docs
MSBuild の予約済みおよび既知のプロパティ | Microsoft Docs
MSBuild プロジェクトの共通項目 | Microsoft Docs
MSBuild .Targets ファイル | Microsoft Docs
MSBuild 既知のアイテム メタデータ | Microsoft Docs
Msdn forums - MSBuild
WPF MSBuild リファレンス | Microsoft Docs
エスケープする特殊文字 | Microsoft Docs

MSBuild プロジェクト ファイル スキーマ リファレンス | Microsoft Docs

MSBuild プロジェクト ファイル スキーマ リファレンス

Choose 要素 (MSBuild) | Microsoft Docs
Import 要素 (MSBuild) | Microsoft Docs
ImportGroup 要素 | Microsoft Docs
Item 要素 (MSBuild) | Microsoft Docs
ItemDefinitionGroup 要素 (MSBuild) | Microsoft Docs
ItemGroup 要素 (MSBuild) | Microsoft Docs
ItemMetadata 要素 (MSBuild) | Microsoft Docs
OnError 要素 (MSBuild) | Microsoft Docs
Otherwise 要素 (MSBuild) | Microsoft Docs
Output 要素 (MSBuild) | Microsoft Docs
Parameter 要素 | Microsoft Docs
ParameterGroup 要素 | Microsoft Docs
Project 要素 (MSBuild) | Microsoft Docs
ProjectExtensions 要素 (MSBuild) | Microsoft Docs
Property 要素 (MSBuild) | Microsoft Docs
PropertyGroup 要素 (MSBuild) | Microsoft Docs
Sdk 要素 (MSBuild) | Microsoft Docs
Target 要素 (MSBuild) | Microsoft Docs
Task 要素 (MSBuild) | Microsoft Docs
TaskBody 要素 (MSBuild) | Microsoft Docs
Task 要素の使用 (MSBuild) | Microsoft Docs
When 要素 (MSBuild) | Microsoft Docs

MSBuild コマンド ライン リファレンス | Microsoft Docs

MSBuild コマンド ライン リファレンス

MSBuild プロジェクトの共通プロパティ | Microsoft Docs
MSBuild での複数のプロジェクトの並行ビルド | Microsoft Docs
Import 要素 (MSBuild) | Microsoft Docs
方法: 複数のプロジェクト ファイルで同じターゲットを使用する | Microsoft Docs
ターゲットのビルド順序 | Microsoft Docs
方法: 最初にビルドするターゲットを指定する | Microsoft Docs
MSBuild ターゲット | Microsoft Docs
Project 要素 (MSBuild) | Microsoft Docs
ToolsVersion 設定のオーバーライド | Microsoft Docs
MSBuild ツールセット (ToolsVersion) | Microsoft Docs
標準ツールセット構成とカスタム ツールセット構成 | Microsoft Docs
MSBuild のマルチターゲットの概要 | Microsoft Docs
MSBuild ターゲット フレームワークおよびターゲット プラットフォーム | Microsoft Docs
MSBuild 応答ファイル | Microsoft Docs
Binary Log · Microsoft/msbuild Wiki

MSBuild タスク リファレンス | Microsoft Docs

Visual C++ に固有の MSBuild タスク

Visual C++ に固有の MSBuild タスク | Microsoft Docs
MSBuild の条件 | Microsoft Docs
Target 要素 (MSBuild) | Microsoft Docs
方法: タスクで発生したエラーを無視する | Microsoft Docs
BscMake タスク | Microsoft Docs
CL タスク | Microsoft Docs
CPPClean タスク | Microsoft Docs
LIB タスク | Microsoft Docs
Link タスク | Microsoft Docs
MIDL タスク | Microsoft Docs
MT タスク | Microsoft Docs
RC タスク | Microsoft Docs
SetEnv タスク | Microsoft Docs
VCMessage タスク | Microsoft Docs
XDCMake タスク | Microsoft Docs
XSD タスク | Microsoft Docs
MSBuild リファレンス | Microsoft Docs
MSBuild タスク | Microsoft Docs
タスクの作成 | Microsoft Docs

ビルド システムの変更 | Microsoft Docs
チュートリアル: MSBuild を使用した Visual C プロジェクトの作成 | Microsoft Docs
方法: MSBuild プロジェクトでビルド イベントを使用して | Microsoft Docs
方法: MSBuild プロジェクトにカスタム ビルド ステップを追加 | Microsoft Docs
方法: カスタム ビルド ツール MSBuild プロジェクトを追加する | Microsoft Docs
方法: プロジェクトのプロパティにカスタム ツールを統合 | Microsoft Docs
方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更 | Microsoft Docs

Visual Studio 2015

MSBuild リファレンス
MSBuild プロジェクト ファイル スキーマ リファレンス
MSBuild Task Reference
MSBuild Conditions
MSBuild Conditional Constructs
MSBuild の予約済みおよび既知のプロパティ
Common MSBuild Project Properties
Common MSBuild Project Items
MSBuild Command-Line Reference
MSBuild .Targets ファイル
MSBuild Well-known Item Metadata
MSBuild Response Files
MSBuild の追加のリソース
WPF MSBuild Reference
Special Characters to Escape

コマンドライン

コマンドラインで C/C++ コードをビルド | Microsoft Docs
C/C++ プログラムのコンパイル | Microsoft Docs
リンク |Microsoft ドキュメント | Microsoft Docs
Visual Studio Devenv コマンド ライン スイッチ | Microsoft Docs
NMAKE リファレンス | Microsoft Docs

GitHub

Microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
Microsoft/MSBuildSdks: MSBuild project SDKs
Microsoft/MSBuildLocator: An API to locate MSBuild assemblies from an installed Visual Studio location. Use this to ensure that calling the MSBuild API will use the same toolset that a build from Visual Studio or msbuild.exe would.

CMake

CMake
Licensing | CMake
Download | CMake
CMake / CMake · GitLab
Documentation | CMake
CMake - KitwarePublic
CMake FAQ - KitwarePublic
CMake Reference Documentation — CMake 3.10.3 Documentation

Command-Line Tools

cmake(1) — CMake 3.10.3 Documentation
ctest(1) — CMake 3.10.3 Documentation
cpack(1) — CMake 3.10.3 Documentation

Interactive Dialogs

cmake-gui(1) — CMake 3.10.3 Documentation
ccmake(1) — CMake 3.10.3 Documentation

Reference Manuals

cmake-buildsystem(7) — CMake 3.11.1 Documentation
cmake-commands(7) — CMake 3.11.1 Documentation
cmake-compile-features(7) — CMake 3.11.1 Documentation
cmake-developer(7) — CMake 3.11.1 Documentation
cmake-generator-expressions(7) — CMake 3.11.1 Documentation
cmake-generators(7) — CMake 3.11.1 Documentation
cmake-language(7) — CMake 3.11.1 Documentation
cmake-server(7) — CMake 3.11.1 Documentation
cmake-modules(7) — CMake 3.11.1 Documentation
cmake-packages(7) — CMake 3.11.1 Documentation
cmake-policies(7) — CMake 3.11.1 Documentation
cmake-properties(7) — CMake 3.11.1 Documentation
cmake-qt(7) — CMake 3.11.1 Documentation
cmake-toolchains(7) — CMake 3.11.1 Documentation
cmake-variables(7) — CMake 3.11.1 Documentation
cmake-env-variables(7) — CMake 3.11.1 Documentation

CMake/Windows-MSVC-C.cmake at master · Kitware/CMake

Learning CMake

Learning CMake
Learning CMake
Learning CMake

Ninja

Ninja — CMake 3.11.1 Documentation
Building with CMake, Ninja and Clang on Windows - Stack Overflow
CMakeでNinja向けファイルを生成する - なんとな~くしあわせ?の日記
10.2.3で CMake with Ninjaを使う - Community Blogs - Embarcadero Community
cmakeゆとり用 - 藻ログ

blog

CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog
CMakeを使ってみた(2)もう少しまともなプロジェクト - wagavulin's blog
MakefileをCMakeLists.txtに置き換える - Narrow Escape
CMakeとProtocol BuffersとVisual Studio 2015 – sgryjp.log
CMakeを使ってOpenCVを楽にセットアップする方法 (for Visual Studio 2010) - 意識の高いLISPマシン
Qt4のプロジェクトを CMakeLists.txt (Cmake) で作る - 座敷牢日誌
Cmakeの使い方 – インストールと実行 | Sumire Lab Docs
CMakeの基礎とTheolizerの組み込み方 | Theolizer®
参°ぼっくす: cmakeの使い方
CMake の練習
モジュールセットファイルの構文
ビルドシステムとしてCMakeを導入する - FPGA開発日記
cmake チートシート - Qoosky
cmake での shared library/static library のテストプロジェクト
CMake を利用したライブラリの作成 - def yasuharu519(self):
CMake に入門&対処事例
超初心者の Visual C++ , CMake とともに。 – o6asan's soliloquy-part2
Makefileなんて書いてられない・・・CMakeでいってみる - alpaca2unix blog
CMakeで生成されたファイルを一気に削除 - Ry0 Note
CMake - CMakeLists.txtで用いられるFIND_PACKAGEについて(63275)|teratail
出力ディレクトリを指定する - Faith and Brave - C++で遊ぼう
CMakeによって生成されるVisual C++プロジェクトの構成 - Faith and Brave - C++で遊ぼう
CMakeで設定されているすべての変数を出力する - 座敷牢日誌
CMake と SWIG を使って C++ と Python と ROOT に対応させる - 宇宙線実験の覚え書き
Android C++開発 [1] : CMakeプロジェクトの作成 - つくるの大好き。
CMakeをSchemeにする -- S式のtokenize - .mjtの日記復帰計画
cmake tutorialその1:プロジェクトバージョン設定、C++規格指定、out-of-sourceビルド - 誰にも見えないブログ
cmake tutorialその2:ライブラリ、テスト、Usage Requierment - 誰にも見えないブログ
cmake-tuorialその3:実行環境の確認 - 誰にも見えないブログ
cmake tuorialその4:ファイル生成,インストーラーのビルド等 - 誰にも見えないブログ
cmakeチュートリアルその5 - 誰にも見えないブログ
cmake tutorialその6 - 誰にも見えないブログ
自作Cコンパイラのビルド基盤をMakeからCMakeに移行してます(途中) - 誰にも見えないブログ
cmakeでinstallしたtargetを削除する方法 - 誰にも見えないブログ
cmake tutorial その7(最終回):EXPORT,find_package()など - 誰にも見えないブログ
CMakeでARM用にクロスコンパイルする - simotin13's message

GitHub

How to write CMakeLists
HelloWorld for cmake
ijt/cmakelists_parsing: Python module for parsing CMakeLists.txt files
CMake 3.8.0以降のCTestの文字化け対策 · Issue #37 · yossi-tahara/Theolizer
CMakeをより便利にするライブラリ "CMakeSupports" がオープンソースになりました
flokart-world/cmake-supports: A collection of utilities for creating projects with CMake scripts.

Qiita

CMake Advent Calendar 2014 - Qiita
CMakeLists.txt から始めよう - Qiita
CMake言語の基本構造 - Qiita
CMakeの構文調べてみた - Qiita
CMake: 条件分岐 - Qiita
CMake: コメント - Qiita
ごく簡単なcmakeの使い方 - Qiita
CMakeで大きめのプロジェクトを構成するためのメモ - Qiita
CMake: ポリシー - Qiita
CMake: 便利なコマンド・変数 - Qiita
CMake の情報と 3.1.0 での変更点 - Qiita
CMake+Ninja 使ってるヤツは直ちに CMake-3.9 に乗り換えろ - Qiita
CMakeの使い方(その1) - Qiita
CMakeの使い方(その2) - Qiita
たのしい組み込みCMake - Qiita
CMake: target_link_libraries(PUBLIC/PRIVATE/INTERFACE) の実践的な解説 - Qiita
CMakeスクリプトを作成する際のガイドライン - Qiita
CMakeでマルチプラットフォーム開発 (ラズパイ用クロスコンパイル含む) - Qiita

Wikipedia

CMake - Wikipedia
CMake - Wikipedia

Twitter

渋川よしきさんのツイート: "C++で開発する時にまずやったのは、CMakeListsを自動生成もしてくれるパッケージマネージャをGoで作ることだった。"
渋川よしきさんのツイート: "C/C++のMakeっぽいものを作ろうとする人はかなり環境を限定しないとムリだよね。CMakeはこの世の闇をすべてその身に宿すことで世界に仮りそめの秩序をもたらす存在(modulesフォルダ以下を眺めながら) https://t.co/Wpv4tZBNbK"
渋川よしきさんのツイート: "CMakeのレイヤーはそのままで、CMakeラッパーというのが最近よく観る流れ。"
mitsutaka.takedaさんはTwitterを使っています: "https://t.co/PCM6K74XHy https://t.co/mRUQvdD8ar cmakeビルド時にinclude-what-you-useでチェックすればOK。直すのも自動化用のスクリプトがあるあらしいが未確認 https:
ロックフリーのkumagiさんのツイート: ".cファイルを新たに追加した時に漏れ無くビルドシステムに追加するようにする方法、cmakeならGLOBでゴリッとできるやんと思ったけどcmake的にGLOBは非推奨らしく(cmake初回時にしか実行しないから?)結局大抵の真面目なプロジェクトはGLOB使わずいちいちファイル名列挙しておりこの世に神はいない。"
Kazuho Okuさんのツイート: "CMakeは色んな環境で動いて色んなビルドツール用のファイルを生成できるというのが売りであって、あとは見るべきところないと思ってる"
Makoto Kato ︎︎さんのツイート: "*NIX環境で使われるautotoolsのほうが技術的負債だよ。Windows本体ののビルド環境はコンパイラまでレポジトリに入ってるからね。"
Ryou Ezoeさんのツイート: "autotoolsの競合はだいたい失敗している。CMakeとかひどい有様。いまMesonが流行りだがどうなることやら。… "
Makoto Kato ︎︎さんのツイート: "結局ChromeもFirefoxもコンパイラをダウンロードするってのが一番正しいということにたどりついたわけだし、まぁ多様性がありすぎるってのは変なバグを発生させる原因だと思うんだよね。。。"
Ryou Ezoeさんのツイート: "OSやブラウザーのような大規模なソフトウェアにはできるが、一般にはやりづらい。… "
Makoto Kato ︎︎さんのツイート: "Firefoxがビルドできないという話をIRCとかで見るたびに、どこから持ってきたのかわからない変なオプション使ってたり、タイポあったりするので、自動でできる限り設定されるべきなんだよね、いろんなデフォルトビルド設定は"

CMake-3.11.0
cmake-converter 0.0.2 : Python Package Index
peg-cmake - npm
Policies/CMake and Source Compatibility - KDE Community Wiki
cmake の使い方 - PukiWiki
cmakeコマンド構文の質問 [build-process] | CODE Q&A [日本語]
初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 3.1.0】 - Build Insider
CMake チュートリアル — Cmake-Tutorial
Learning CMake
CMakeの使い方.pdf
CMake を使ったクロスプラットフォーム開発環境 : LINE Engineering Blog
クイックCMakeチュートリアル - 公式ヘルプ | CLion
libressl cmake - Google 検索

Ninja

本の虫: 新しいビルドシステム、ニンジャ
Big Sky :: 高速なビルドシステム「ninja」
Linux kernelをninjaでビルドする - Gentoo metalog
kati とか依存関係とか strace とか - 200MB-300MBのbuild.ninjaファイル
ninja-build/ninja: a small build system with a focus on speed
Ninja, a small build system with a focus on speed
The Ninja build system
ninja-build/ninja-build.github.io: github pages
FAQ · ninja-build/ninja Wiki
build.ninja
michaelforney/samurai: ninja-compatible build tool written in C
本の虫: C++標準化委員会の10月の興味深い文書
shinichiro hamajiさんのツイート: "アンドロのヌルビルドがまだ遅いぽいの悲しい。3年前にねじ込めてれば、一回3秒ほどだったか、トータルでは結構な時短だった気がするんだよなあ https://t.co/LJwEeotrl8 https://t.co/md5k1YDMMj… "
mayahさんのツイート: "ninja 速くするアイデアは色々あるけど大体 nico に ninja はシンプルなままでいたいと言われて却下されるんだよな… ninja fork の機運か?"
Introduce binary manifest format by shinh · Pull Request #1093 · ninja-build/ninja
Add a flag to remain persistent. by jmgao · Pull Request #1389 · ninja-build/ninja
shinichiro hamajiさんのツイート: "本題関係ないけど、今はninjaが1.5GBあるのか…katiやってたときは500MBくらいだったぽい [generated by kati, 412MB] [generated by soong, 1078MB]… "
tzikさんのツイート: "ninjaの並列化proposalが出てる。https://t.co/ZggyThRvXk 。マルチスレッドなプログラムは一般にforkと相性悪いけど、.protoがあるし、forkする部分を別プロセスに分離してるのかな。"
Parallelized Ninja for faster Android builds - Google グループ
tzikさんのツイート: "並列化してるのはhttps://t.co/88NHGe7UXmのパースとかグラフ生成とかの部分で、コマンドの実行時にはスレッドプールはいらなそう。現状joinせずにそのままforkするフェイズに入っているけど、スレッドたちをjoinしさえすればよさげ。"
cmake経由でmake実行時に-jオプションを渡す(未解決) - 誰にも見えないブログ
Ninjaの速さを体感するともはやMakeには戻れない - Qiita
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaが話題になっている。やることはありきたりだが、細かい最適化を積み重ねて早くしている。 https://t.co/aWEtQ9gokP」 / Twitter
Tech Notes: The Success and Failure of Ninja
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは常駐を考えずに設計された。常駐する理由はキャッシュのためだ。でもカーネルはすでにファイルをキャッシュしているから不要だろ。 https://t.co/aWEtQ9gokP」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは依存関係のグラフ構築だけをやる。ユーザー向けの機能は別のフロントエンドにまかせる。この仕組みはうまく言った。 https://t.co/aWEtQ9gokP」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そんなのは誰でも考えつくがなぜninja以外のビルドシステムはうまくやれていないのか。厳密に分離するのは強い意志が必要だからだろう。みんな軟弱な思想で混ぜてしまう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Windowsへの移植が大変だった。ninjaはカーネルがファイル情報をキャッシュしてくれて速いということを当てにしていたのだがWindowsはぽんこつにもそうではない。 https://t.co/aWEtQ9gokP」 / Twitter

kati

DSan

Dependency Sanitizer - Google ドキュメント
Diff - f0a465c2cb5921762d7d17d65cd7352d0f64c261^1..f0a465c2cb5921762d7d17d65cd7352d0f64c261 - platform/build - Git at Google
shinichiro hamajiさんのツイート: "動機も似てて、kati+ninja+gomaで並列度上げてビルドするとはじめて発生するバグとかが出てきて、調べてみると依存関係壊れてるだけで俺悪くないやんけ、てことがたまにあったので根本的に解決したくなったっていう話"
shinichiro hamajiさんのツイート: "あとmakeは普通に書くと依存関係を適切に設定するのを絶対に間違えてしまうようなツールなので、Androidみたいに宣言的に記述するDSLにして定型パターンは間違えにくいようにするのは理に適っていると思う……がそのトレードオフとしてあの遅さを得たわけだった"

kati について - 兼雑記
kati とか依存関係とか strace とか - システムプログラミングぽい最適化
SetProcessAffinityMask 関数
はじめてのにき(2018-02-22)
google/kati: An experimental GNU make clone
StringPiece というライブラリの話 - 兼雑記
C++1z 文字配列をコピーせず参照してbasic_stringライクな操作をするstring_view - Faith and Brave - C++で遊ぼう
はじめてのにき(2018-08-17)
SetAffinityForMultiThread before execve. by yoshisatoyanagisawa · Pull Request #154 · google/kati
はじめてのにき(2018-10-31)
Improve regen performance by setting cpu affinity by danw · Pull Request #156 · google/kati
ラムダ式とMakefileマクロ - Qiita

make cmake convert - Google 検索
GENTOO INSTALL 週間さんはTwitterを使っています 「コンテナ時代の自動ビルドツール。各種言語と各種CIの橋渡しになるらしい。ビルド用のMakefile、シェルスクリプト、Dockerfileなどの代替。ほう / “GitHub - vladaionescu/earthly: Build automation for the container era” https://t.co/WwRQmgkQ4l」 / Twitter
vladaionescu/earthly: Build automation for the container era
Kazuho OkuさんはTwitterを使っています 「実際のところ、gmakeに足りないのって ・依存チェックをもっと書きやすくする (pkgconf およびテストプログラム) ・前回の設定を覚えておいて、次回のmakeで使える くらいの気がするんだよねぇ。 ついでにいうと、CMakeみたくCLionとかでプロジェクトファイルとして使えると良い(ハードル上げる)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかしこれconfigureとかlibtoolが逆に移植をめんどくさくしている感じがする。2020年現在はもう変な野良Unixみたいなのほとんど存在しないわけだし、こういうツールは意味あるんだろうかと思ってしまう。」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「make はコマンド変わった時にリビルドする機能が追加されるとだいぶ良くなる気がしてる」 / Twitter
sccache - Google 検索
ドッグさんはTwitterを使っています 「パッケージのコンパイル時 feature flag が増えて特定の組み合わせでしかテストしてない時,他の組み合わせでも最低限コンパイルは通ることぐらいは確認してくれる機能が cargo check あたりの拡張でほしいな」 / Twitter
Kazuho's Weblog: komake: Make の -j オプションに潜む罠とその解決策

UEFI

その他

UEFI

Windows 10 PC UEFIの役割としくみ - DXR165の備忘録
Windows 8.1クロスロード:第9回 UEFIサポートとセキュアブート (1/2) - @IT
BIOS・UEFI操作画面の起動とブートデバイスの設定
BIOS or UEFI及び起動メニューの出し方:パソコン活用方法:So-netブログ
UEFI(BIOS)設定の知識 : 初めてのLinux
現在、Windows® OSをUEFIモードでインストールして使用しています。レガシーOSブートデバイスを第1 起動デバイスとして設定した場合、あるいはWindows Boot Managerを第2 起動デバイス以降に設定するとWindows® OSを起動することができません。 この問題の解決方法を教えてください。
毎秒2.7GBで神速!NVMe対応超高速SSD『Intel SSD750シリーズ』がヤバすぎる - 週刊アスキー
本の虫: LenovoのWindows 10 Signature Edition PCにLinuxのインストールを妨害する機能が発覚
本の虫: LenovoのWindows 10 Signature EditionがSATAがRAIDモードに固定されているのはIntelのせい
Tech TIPS:Windows 10で素早くUEFIの設定画面を起動する - @IT
UEFI モードまたは従来の BIOS モードでの起動
UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法 - ぼくんちのTV 別館
UEFI: The Oft-Rumored Death of UEFI's CSM Prophesied Again by Intel
retrageさんのツイート: "EFI Byte CodeのVMを作っている。一通りの命令セットの実装が終わったので、デバッグをしていく。デバッガ対応とかnative codeの呼び出し、バイナリのロードなど、まだやるべきことがたくさんある https://t.co/GbbikoxJs0"
retrage/ebcvm: EFI Byte Code Virtual Machine

セキュアブート

セキュアブート - ArchWiki
Linux FoundationがUEFIブート向けのセキュアブートシステムを公開 | マイナビニュース
Linuxのブートをセキュアにする「UEFI Secure Boot System」 - @IT
Acer Iconia W4にLinuxをインストール…失敗 ( UNIX ) - 占い猫 ペンタクル★キャット - Yahoo!ブログ
certificate 入門 パッケージ管理 - LinuxベースのディストリビューションでWindowsアプリケーションに署名する - CODE Q&A 問題解決
OpenSSL-based signcode utility download | SourceForge.net
ej-technologies blog Signing launchers and installers
druides
セキュアブートについて知ってほしい10のこと - wolfSSL
Device Identity as Yet Untold - Speaker Deck
ken\dさんはTwitterを使っています 「@KuniSuzaki @EurekaBerry @hkuni 今まではTPM内のみで電子署名ベースで完結していたSecure Boot in UEFIですが、動的な検査ができるようになったと解釈しております」 / Twitter
ArchLinux にSecure Boot を導入する - Qiita
3.2. Shim
suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 私のIIJセミナースライドがリンクされ恥ずかしい。 Trusted OS一覧は有用 HiSilicon/Huawei (TrustedCore) Qualcomm (QSEE) Motorola (Qualcomm SoC) HTC (Qualcomm SoC) Trustonic (Kinibi &amp; MobiCore) Samsung (TEEGRIS) @enovella_ Thank you.」 / Twitter
enovella/TEE-reversing: A curated list of public TEE resources for learning how to reverse-engineer and achieve trusted code execution on ARM devices
suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 書ききれなかったけど、下記の項目すごく大事。 TEE Fuzzing TEE Secure Boot Microarchitectural attacks applied to TEE」 / Twitter
ほぼすべてのLinuxのブートローダーに脆弱性 - PC Watch
There’s a Hole in the Boot - Eclypsium
ADV200011 | Microsoft Guidance for Addressing Security Feature Bypass in GRUB
ブートホールの脆弱性 - GRUB 2 ブートローダー - CVE-2020-10713 - Red Hat Customer Portal
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「grub[.]cfgが書き換えられた時点でそのシステム終わってますけどね https://t.co/V4NsylK3Wb」 / Twitter
Linuxで広く使われるブートローダー「GRUB2」にセキュアブートを回避できる脆弱性「BootHole」が見つかる - GIGAZINE
FadisさんはTwitterを使っています 「BootHole: GRUB2のgrub.cfgのパーサにバッファオーバーランを起こすバグがあり、細工したgrub.cfgで任意のコードを実行できる脆弱性。セキュアブートが有効であってもgrub.cfgは元々署名されていない為攻撃者によるコードの挿入を許してしまう https://t.co/kHuMomzj1n」 / Twitter
FadisさんはTwitterを使っています 「ブートローダの脆弱性、アップデートでトラブルが起きそうだなと思ったらもう起きてた。 RHEL8でBootHole修正版のGRUB2にアップデートするとshim経由でGRUB2を起動している環境でGRUB2がメニューにたどり着く前にハングする不具合が報告されている https://t.co/hrESKklfN1」 / Twitter
1861977 – RHSA-2020:3216 grub2 security update renders system unbootable
ブートローダーの「GRUB2」にバッファオーバーフローの脆弱性 | マイナビニュース
BootHole対策パッチによってRed HatやUbuntuが起動不能に。さらなるパッチが公開 - PC Watch
Bypassing UEFI Secure Boot with Thin-Hypervisor - Speaker Deck

mjg59

mjg59 | Microsoft's compromised Secure Boot implementation
mjg59 | Announcing the Shim review process
mjg59 | Avoiding TPM PCR fragility using Secure Boot
mjg59 | Linux kernel lockdown and UEFI Secure Boot
Fadisさんのツイート: "SecureBootが有効な場合に署名のないカーネルモジュールのロードの禁止、パワフルすぎるデバイスの使用の禁止等を行うKernel LockdownにLinus氏が難色を示している。SecureBootの有無でカーネルの振る舞いが変わると報告された問題の再現が難しくなるのが理由 https://t.co/ZrpQi26TSl"
Torvalds Expresses Concerns Over Current "Kernel Lockdown" Approach - Phoronix

Linux

UEFIBooting - Community Help Wiki
Comment #162 : Bug #1040557 : Bugs : Ubuntu CD Images
Unified Extensible Firmware Interface - ArchWiki
GRUB/EFI サンプル - ArchWiki
Linuxカーネル3.15リリース、サスペンド/レジュームの高速化など多くの新機能を追加 | OSDN Magazine
"えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita

技術評論社

2020年2月14日 "Windows on Btrfs"を実現!? オープンソースのWindowsブートローダー「Quibble」:Linux Daily Topics|gihyo.jp … 技術評論社
maharmstone/quibble: Quibble - the custom Windows bootloader
2020年10月7日 RISC-VのUEFIブート,Linux 5.10でイニシャルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

PC Watch

2020年、ついにIntelのx86でDOSが動作しなくなる ~UEFIからレガシーBIOS互換を削除 - PC Watch
ESET、UEFI検査やホームネットワーク保護機能が強化されたセキュリティソフト最新版 ~他社ソフトの窓口サポートにも対応 - PC Watch
OS再インストールやHDD交換でも排除できない、UEFIルートキット「LoJax」 - PC Watch
Kaspersky、UEFIに感染するブートキットを発見。OS再インストールでは排除できず - PC Watch

Firmware Security

Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
Ulf: Attacking UEFI over DMA | Firmware Security
Google Pawn: Intel firmware dumping tool! | Firmware Security
new Apple tools: eficheck (and nvm) | Firmware Security
UefiToolsPkg: making UEFI more useful to system hackers | Firmware Security
UEFI-CheckScript: PowerShell script for SCCM/WinPE | Firmware Security
diablolot53/uefi-checkscript
William reviews ru.efi/ru.exe | Firmware Security
Toms Hardware: Win10 unsupported disk layout UEFI error howto | Firmware Security
efivalidate (and mojo_thor) | Firmware Security
VisualUEFIShell | Firmware Security
proposal: add Security Version to Linux Shim | Firmware Security
Apple Secure Boot | Firmware Security
RaspberryPiPkg – 64-bit Tiano Core UEFI for the Raspberry Pi 3 | Firmware Security
ARM adds ACPIView tool to UEFI Shell: dump ACPI tables | Firmware Security
ebc.asm: EFI Byte Code Assembler macroinstructions for fasmg assembly engine | Firmware Security
Intel releases Firmware Engine for Linux and Windows | Firmware Security
LUV 2.2-rc2 released | Firmware Security
UEFIStarter: framework to simplify UEFI development with TianoCore EDK2 | Firmware Security
efi_analyzer: Analyze EFI binaries | Firmware Security
bootoption – Create a new EFI RT variable like BootXXXX but store the data in a property list | Firmware Security
DBXtool has support for Microsoft dbxupdate.bin | Firmware Security
Eclypsium at OPCDE: UEFI BIOS firmware analysis at scale | Firmware Security
Tianocore Security Advisory 27: Minnowboard UEFI Variable Deletion/Corruption | Firmware Security
RomDump: EFI BIOS dumping tools | Firmware Security
Gloader: A simple wrapper for efibootmgr that can be used to create an entry in UEFI. | Firmware Security
FindESP: tool to find the associated EFI System Partition from a given disk object or mount point | Firmware Security
UEFImarkEbcEdition: UEFI Byte Code (EBC) benchmark utility | Firmware Security
dkmsscripts: scripts to help with DKMS and UEFI boot keysigning | Firmware Security

英文記事

Adventures in Microsoft UEFI Signing | James Bottomley's random Pages
Display UEFI Firmware Version, Vendor, Revision and Build Date « Musings
BIOS and UEFI Firmware Version - Find in Windows
flat assembler - View topic - Multiprocessor support in UEFI
Another attempt at blogging
Simonas / huehuehuehuehue · GitLab
The bootstrap process on EFI systems [LWN.net]
Address Range Memory Mirroring
Linux 5.5 To Finally Wire Up EFI RNG Code For x86 As Another Source Of Entropy - Phoronix

blog

cupnes/bare_metal_uefi
UEFIやセキュアブートの勘違いしやすい設定30個 まとめ - ぼくんちのTV 別館
Step to UEFI (78) —–SERIAL_IO_PROTOCOL | www.lab-z.com
EFI_EVENTを使って非同期処理を行う - genkami.github.io
[FreeBSD-users-jp 95884] Re: UEFIモードでインストールしたがHDDから起動できない
*BSD_サポート_FAQ_FreeBSD_ハード、ソフト等_ハードウェアセットアップ(a) | HPE 日本
ディスクイメージをネットワークブートする – Raphine Project
UEFI + iPXE で自作 OS をネットワーク起動する - uchan note
【マザボ】 ASUSのZ390マザーボード環境にWindows10をインストールすると、勝手に『AsusUpdateCheck』というサービスが登録される。これはいったい? : ニッチなPCゲーマーの環境構築
BIOSとUEFIの歴史 - syuu1228's blog
UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
PCのUEFI BIOS NVRAM(設定情報) 調査メモ - DXR165の備忘録
Ubuntu14.04 と GPT と UEFI - Going My Linux Way - りなっくすいろいろ
ASUS Z97-ProのM.2 SSDにOSをインストールして起動する: 論外なおちゃん
Plextor M8Pe M.2 PCIe NVMe SSD 128GB 購入しました - DXR165の備忘録
Z77 Extreme4でPCIe NVMe SSDをOSブートさせる起動ドライブとして使う(BIOS書き換え,SM961+ST-M2PCE4XB) - If you are going through hell...keep going.
セキュリティキャンプでxv6を64bitUEFIから起動した話 | カオスの坩堝
サイバー攻撃から身を守る4つの方法 マルウェアアナリストが語る、日本が狙われる危険性とその対策 - ログミー[o_O]

/var/log/hdk.log

日記 (2014 年 10 月上旬)
日記 (2014 年 10 月上旬)
日記 (2014 年 10 月中旬)
日記 (2014 年 10 月下旬)
日記 (2014 年 11 月中旬)
日記 (2014 年 11 月下旬)
日記 (2016 年 4 月下旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 9 月下旬)
日記 (2017 年 1 月中旬)
日記 (2017 年 1 月中旬)
日記 (2017 年 1 月中旬)
日記 (2018 年 3 月)
日記 (2019 年 1 月上旬)

/home/tnishinaga/TechMEMO

UEFIアプリでファイルを任意のメモリアドレスにロードする方法メモ - /home/tnishinaga/TechMEMO
QEMUでARM64(AARCH644)のUEFIコンソールを実行する - /home/tnishinaga/TechMEMO
gnu-efiを使ってAARCH64/ARM64のUEFIサンプルアプリを動かしてみる - /home/tnishinaga/TechMEMO
UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
UEFIのHTTP BOOTを試してみる - /home/tnishinaga/TechMEMO
UEFIの呼び出し規則について - /home/tnishinaga/TechMEMO
UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO

借り初めのひみつきち

Rust

Rust で UEFI のハローワールド - 借り初めのひみつきち
Rust で ARM64-UEFI Hello World - 借り初めのひみつきち
Rust 自作 OS 日記/Part 1 my new gear... - 借り初めのひみつきち
Rust 自作 OS 日記/Part 2 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 3 ブートローダー - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
Rust 自作 OS 日記/Part 6 過去最大の更新 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
妄想 - 借り初めのひみつきち

最小ステップで作る UEFI OS

最小ステップで作る UEFI OS - 借り初めのひみつきち
neri/moe: A Minimal Step OS using UEFI
neri (Nerry)
最小ステップで作る UEFI OS v0.1 - 借り初めのひみつきち
フォントのお話 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.2 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.2.1 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.3 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.3.1 - 借り初めのひみつきち
History
neri (Nerry)
最小ステップで作る UEFI OS v0.4 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.4.1? - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.5 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.5.1 - 借り初めのひみつきち

Twitter

Nerry@求職中さんのツイート: "Surface RTで確認したけどやっぱりUEFIアプリは基本0x1C2でWin32は0x1C4だった。 ただしbootarm.efiやbootmgfw.efiは0x1C2なのにbootmgr.efiだけは0x1C4になってる。"
Nerry@さんのツイート: "HPETのMain Count Value読むのは簡単にできた。… "
Nerry@さんのツイート: "IPIが飛ばせた?… "
Nerry@さんのツイート: "STIしないと割り込みおきないけどエラーコードは 0xFF2 の謎。0xFF3じゃないの?"
Nerry@さんのツイート: "実機のエラーコード0x7FBでしたね。 こっちの方が正しい気がする。"
Nerry@さんのツイート: "selector = 0x7F8 (int 0xFF) ldt = 0 idt = 1 ext = 1"
Nerry@さんのツイート: "やっぱりqemuのエラーコードおかしい。実機はintelもamdも0x7fbだった"
Nerry@さんのツイート: "PS2ポート存在するかどうかちゃんと確認するにはAML読まないとダメ?😱"
Nerry@さんのツイート: "FADTのIAPC_BOOT_ARCHはときどき嘘が書いてる機種があってPS2ポートの存在を正しく認識できない"
Nerry@さんのツイート: "SetVirtualAddressMapってEfiRuntimeServicesCode/EfiRuntimeServicesDataだけじゃ足りない機種もあるのね"
Nerry@さんのツイート: "一部機種で異常なEDID取得してるのはEfiEdidActiveProtocolGuidの呼び出し方間違ってるんだろうか・・・"
Nerry@さんのツイート: "UEFI Class 3の機種だと基本USB接続が多いけどSPIとかI2Cとかふざけてるものもある・・・"
Nerry@さんのツイート: "PS/2はレガシーではあるけど、今のところCSM搭載してるラップトップPCはPS/2接続のキーボードが主流のようなのでPS/2をサポートしないと操作できないから完全に無駄ではない。"
Nerry@さんのツイート: "タイマー割り込みで画面の左上のピクセル書き換わるようにしたら一部の機種でどうやっても変わらなくておかしいなって思ったら液晶の向きが左上だと思ってた場所が左下でしたね🤔"
Nerry@さんのツイート: "ときどきキーボード受け付けなくなるのspurious割り込み関係なんだろうか・・・"
Nerry@さんのツイート: "とある機種でEDIDの解像度がおかしい値だった→WindowsのEDIDみるツールだと常識的な値だった→UEFIで取得したEDIDよく見たら内容全部0だった💢"
Nerry@さんのツイート: "正確にはLocateProtocol(&EfiEdidActiveProtocolGuid...)とかの戻り値が0だったのでアドレス0のデータをEDIDだと思って読み込んでた"
Nerry@さんのツイート: "WindowsのUEFI要件が定まる前の機種でGOPの解像度とかも変"
Nerry@さんのツイート: "Win8の頃のミ田キーが画面の端に独立して付いてる機種で何となく押してみたらPS/2経由で何かが入力された(実際のスキャンコードは見てないけどたぶんWindows Key) こういうのはGPIOとか使ってると思ったけどそうでもないものもあるのね"
Nerry@さんのツイート: "マウスカーソル出た(出るだけ… "
Nerry@さんのツイート: "4k以上のディスプレイのEDID見てみたい😤"
Nerry@さんのツイート: "現在の実装 ・優先度未実装(すべてのスレッドが同じ優先度) ・スレッドの負荷はHPETを使って計測 ・タイマー割り込みで実行中のスレッドの負荷が一定数以上だった場合にquantumを消費 ・quantumが0になったスレッドをpreemption ・スケジューラーが1秒ごとにすべてのスレッドのload値を更新"
Nerry@さんのツイート: "単純にタイマー割り込みでpreemptする場合に比べて負荷が正確に反映されて公平なpreemptできてる(気がする"
Nerry@さんのツイート: "SIPI送れた… "
Nerry@さんのツイート: "MultiProcessor完全に理解した(n_cpuインクリメントしてhltするだけ)"
Nerry@さんのツイート: "もしかして個別にINIT SIPI投げるとダメなのか"
Nerry@さんのツイート: "動いたり動かなかったりよくわからん・・・"
Nerry@さんのツイート: "PICを使ってるとPS2をマスクするって発想がそもそもないのでPIC時代の感覚でPS2ポートを先に初期化するとAPIC側のマスクが解除されてなくて一部環境だとPS2初期化時に発生した割り込みが受け取れなくて止まる"
Nerry@さんのツイート: "moeのps2ドライバは割り込みが起きたらとりあえずデータを抜き取ってキューに突っ込んですぐiretしてる。 実際のデータ処理はhidスレッドでパケット解析とウィンドウイベントへの変換をしてる。この部分をユーザーランドに追い出すのは比較的容易だと思われる。"
Nerry@さんのツイート: "ウィンドウ背景にblur実装したい"
Nerry@さんのツイート: "きれいにblurするにはあらかじめ周囲数pixelの情報が必要だから現在の部分再描画実装じゃ綺麗に描ける気がしない:;(∩´﹏`∩);:"
Nerry@さんのツイート: "しかもウィンドウにblurかけるということは実際に必要なpixelは自分自身のウィンドウではなく下にある他人のウィンドウだったりするので再描画に必要な情報が多すぎる"

EFI_ABSOLUTE_POINTER_PROTOCOL の不思議 - 借り初めのものがたり
あべこべ。 - ねりりんと借り初めのものがたり
はりぼてOSをUEFIで起動する/5日目? - 借り初めのひみつきち
バイバイ、 gnu-efi - 借り初めのひみつきち
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を置き換える - 借り初めのひみつきち
UEFI のクロス開発 - 借り初めのひみつきち
進捗的なもの。 - 借り初めのひみつきち
再度進捗的な。 - 借り初めのひみつきち
BIOS で消耗するな、 UEFI で消耗せよ。 - 借り初めのひみつきち
ACPI BGRT - 借り初めのひみつきち
きんきょうてきな? - 借り初めのひみつきち
WASM自作PCエミュレータ制作日記/5 - 借り初めのひみつきち
UEFI自作OS日記 v0.6 再始動 - 借り初めのひみつきち
最小の UEFI Hello World - 借り初めのひみつきち
EFER.LME と EFER.LMA - 借り初めのひみつきち
ACPI 2.0 - 借り初めのひみつきち

livaの雑記帳

UEFI対応 - livaの雑記帳
grubのpf2ファイルの解析 - livaの雑記帳
自作OSにおけるUEFI対応戦略 - livaの雑記帳
UEFI対応(その2) - livaの雑記帳

Blog posts by @retrage

ELVMのEFI Byte Codeバックエンドを作る - めもちょー
文鎮化したMinnowboardを復旧させる - めもちょー
LLVMのEFI Byte Codeバックエンドを作る - めもちょー
OVMFのデバッグ - Blog posts by @retrage01
EFI_STATUSの値 - Blog posts by @retrage01
EDK2におけるDebugPrintErrorLevel - Blog posts by @retrage
UEFI向け9P File Systemを作ってクラウドからネットワークブートできるようにした - Blog posts by @retrage
ebcvm: A Usermode EFI Byte Code Virtual Machine - めもちょー
EFI stubなArch Linuxのインストール - めもちょー
技術書典5で「UEFI読本 基礎編 Linux編」を頒布 - めもちょー
EFI stubなLinux kernelのヘッダ部分を見てみる - めもちょー
BitVisorのEFI向けVMM Loader(1st stage)のコードを読んでみる - めもちょー
EFI Byte Code解説 - めもちょー

J’s Lab

OVMFを使った簡単なUEFI Linux環境の構築の仕方 | J’s Lab
OVMFをソースデバッグするお話 | J’s Lab
そうだ、Intel DCIをしよう! | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab

そそるめも

Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
Intel SSD 750 にはOption ROMにUEFI向けNVMeドライバが入ってるっぽい - そそるめも

Converg.

EDK IIの基礎 - Converg.
EDK II Package - Converg.
Module開発 - Converg.

スライド・PDF

Network Boot from Bell Labs - Speaker Deck
準パススルー型VMM開発の難しいところ
yvr18-508.pdf
suzakiさんのツイート: "シリコン内のbootROMこそが、Trusted BootにおけるCRTM:Core Root of Trust Measurement。下記PDFの11ページの図が分かりやすい。 https://t.co/teuqFvo9qm CRTMがBIOSを計測してそれをTPMにextendすることから始まる。… https://t.co/qWwDVGcW1u"
Microsoft PowerPoint - af-congdon-tcg-overview-1104
retrageさんのツイート: "Wow. yabits was mentioned in the article. https://t.co/loj5lNiSVn"
yabits: Fast and lightweight yet another UEFI implementation | yabits
UEFIベアメタルプログラミング

最新SSDのキホン - AKIBA PC Hotline!
Open Source Firmware: Two Ends of the Spectrum | Intel® Software
UEFI Driver Writer's Guide · tianocore/tianocore.github.io Wiki
Specifications and Tools | Unified Extensible Firmware Interface Forum
Free Software EFI Drivers
C++编撰操作系统(1):基于 EFI 的 Bootloader_imooo软件程序bug解决方案
WinDbgとWindows XP/7/8/10のハンドルテーブル解析
UEFIのルートキット、攻撃に使われていることを初めて確認 | マイナビニュース

musl

snprintf

社会人でもOSを作りたいさんのツイート: "え、完全に誤解してたわ 。https://t.co/tLot6IEr6Q によればsnprintfは書き込んだバイト数を返すが、それはバッファが十分大きく、すべてのデータが書き込めたと仮定した場合のバイト数であるらしい。"
OS作れないマンさんのツイート: "データが書き込み先バッファより大きい場合、実際に書き込んだバイト数より大きな数が返ることになる。新しい関数scnprintfなら、本当に書き込んだバイト数を返してくれる、とのこと。"
snprintf() confusion [LWN.net]

musl - Wikipedia
musl - Wikipedia, the free encyclopedia
MinGW - Minimalist GNU for Windows | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows | SourceForge.net
_BitScanForward, _BitScanForward64
Visual Studio Tips - Windows 2000 Blog
LibC library musl ported to UEFI | Firmware Security
Rich Felker(@RichFelker)さん | Twitter
libc-testsuite - correctness and quality tests for libc implementations

malloc

その他

動的メモリ確保 - Wikipedia
malloc(3)のメモリ管理構造 | VA Linux Systems Japan株式会社
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
Project Zero: The poisoned NUL byte, 2014 edition
Visual Studio C++でメモリリークの検出 crtdbg.h CrtSetDbgFl | urashita.com
realloc関数怖い - ichirin2501's diary
'CVS: cvs.openbsd.org: src' - MARC
Protectable Memory "Pmalloc" Support For The Linux Kernel Updated Again - Phoronix
日記 (2014 年 1 月上旬)
メモリ管理
非カーネル用のスラブ・アロケータ - Tociyuki::Diary
mallocの動作を追いかける(環境変数編) - Qiita
std::alignを動的メモリ確保と一緒に使う - in neuro
論文「snmalloc: A Message Passing Allocator」(ISMM 2019)
mimalloc のメモリ管理 - Qiita
論文「Reconsidering Custom Memory Allocation」(OOPSLA 2002)
failmalloc - Google 検索
p20191226a - K-kiwi
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
bump pointer - Google 検索
バンプポインタアロケータ - Google 検索
Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

MESH

論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)
[1902.04738] Mesh: Compacting Memory Management for C/C++ Applications
plasma-umass/Mesh: A memory allocator that automatically reduces the memory footprint of C/C++ applications.
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 アロケータとしても面白いが、memfd_create と mmap の合わせ技で、(実ファイル無しに)別々の仮想ページを同じ物理ページにマップという、カーネル的な技をユーザランドで…というテクニックは別の用途でも利用してみたいなぁ。… https://t.co/JaO3GU9M6O"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちょっと違うが、pdumpfsというハードリンクによる実体共有を活用したソフトを思い出したり。 そして、リンク多用を想定していない dump/restore がメモリ不足で落ちたり、NTFS仕様のリンク上限1024に引っかかったりと、普通では発生しない問題に遭遇しやすかった記憶も。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のアロケータの場合、一つのページに沢山の共有が発生した場合のカーネル性能への影響は、カーネルのページ構造などに依存しそう。 それと、物理ページのコンパクションに対し、仮想空間はむしろ疎な利用が増えていきそうな印象も。(64bitなら別に気にしなくても感はあるが)"
Kazuho Okuさんのツイート: "面白い。ある状況にむけた最適化を備えたmallocだと思えばvmaの上限値もブロッカーではない(最適化が効かなくなるだけ)と割り切れば使い手がありそう / https://t.co/Q0dHZmwGO5"
Kazuho Okuさんのツイート: "MESHはiOSアプリでメモリ不足になってきたらコンパクションする、的な使い方とかできるのかなぁ。できそうな気もするしゲームとかだとうれしい気もする"
takuya-aさんのツイート: "memfd_create()知らなかった。mmap()との合わせ技で、同じ物理アドレスを複数の仮想アドレスにマッピングでき、コンパクション時にそれを利用して仮想アドレスを不変に保つ。 / “論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)” https://t.co/NPEgjELKQn"

TCMalloc

Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (3) TCMallocでメモリ割り当てを高速化する | マイナビニュース
gperftools/gperftools: Main gperftools repository
デフォルトの malloc を差し替えずに tc_malloc を使う - Qiita
TCMalloc : Thread-Caching Malloc
g-TCmalloc.pdf
Google Perf Tools (tcmalloc) の使い方
Google Japan Blog: Google が公開しているソフトウェアの解説(その4)- Performance tools -
TCMalloc : Thread-Caching Malloc
How To Use TCMalloc? - Stack Overflow
Google独自のC/C++用メモリアロケータTCMallocがオープンソースとして公開へ

jemalloc

Rockridgeさんのツイート: "Fx52:jemalloc 4のバージョンを4.3.1にアップデート。しかし、いまだにjemalloc自体が有効化されていない。参照:https://t.co/Yb9QfsbvzR / “1277704 – Update jem…” https://t.co/lRfhoy8hP0"
Rockridgeさんのツイート: "Firefoxのメモリアロケータをmozjemallocからjemalloc 4に置き換える作業を続けてきたが、パフォーマンスの低下とメモリ消費量の増加が一向に改善せず、置換計画は破棄された。参照:… https://t.co/JX4WNdhnHo"
Removing Jemalloc 4 - Google グループ
jemalloc について調べたのでまとめた - zonomasaの日記
なかのん&マジックさんのツイート: "<input type=text>等のエディタのメモリ消費量を約半分に削減できる目処はたったんでやらないとな。 / Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24) https://t.co/mYUVCtJLOT @_clear_codeさんから"
Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24)
なかのん&マジックさんのツイート: "jemallocはフラグメント化を抑制するために一定の大きさの空間にオブジェクトを整理してるんだけど、TextEditorのinstanceの大きさを調べるとギリギリその閾値より大きい事が判明してしまった。"
なかのん&マジックさんのツイート: "なので、input要素が大量にあるフォームに実際に入力していくと、一気にメモリ使用量が上がっちゃう。表示しただけならセーフ。"
なかのん&マジックさんのツイート: "生の数字を言っちゃうと、今、TextEditorが1024バイトのエリアに配置されてる。実際は550バイト程度しか要らないんだけど。"
なかのん&マジックさんのツイート: "64bit版の話。たぶん、32bit版は512バイトの線を割り込んでるはず。"

mtrace

【メモリリーク】mtraceの使い方【glibc】 | FiS Project
メモリリーク検出:mtrace編 : しっくハック
Manpage of MTRACE
メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ
mtraceでメモリーリークを検出する方法: 小粋空間
革命の日々! mtraceの使い方
mtraceを使ってみる - Akio's Log
Man page of MTRACE

Infallible memory allocation

Makoto Kato ︎︎さんのツイート: "Infallible memory allocationになって5年以上経つけど、昔のコードは未だにmoz_xmallocとかに対してnullptrチェックしてるんだよね。あれコンパイラとかで消せないのかしら"
Infallible memory allocation - Mozilla | MDN

スライド

Glibc malloc internal
katagaitai CTF勉強会 #1 pwnables編 - DEFCON CTF 2014 pwn1 heap
Kosaki - the malloc - - Togetter
Glibc malloc internal
The 67th Yokohama kernel reading party - YouTube
osdev_moku2 #2 - Google スライド
「京」におけるマルチスレッドmalloc / malloc on K computer - Speaker Deck

OSDN

「glibc 2.26」リリース、mallocのスレッド毎キャッシュによる高速化やUnicode 10サポートなどが導入される | OSDN Magazine

POSTD

OSのデバッグ:メモリアロケーション講座 | コンピュータサイエンス | POSTD

GitHub

rampantpixels/rpmalloc: Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
jemalloc
jemalloc/jemalloc
CCareaga/heap_allocator: A simple heap memory allocator in ~200 lines.
cubanismo/allocator: Incubator for a general Unix Device Memory Allocation library

Twitter

性能保証

Miura HidekiさんはTwitterを使っています 「リアルタイム性という観点なら、GC無しでもヒープからな動的なメモリ割り当てを使っているなら、フラグメンテーションが進んだ状況を考えるとmallocやfreeの時間の最悪時間の保障って難しいじゃないかな?」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 今どきのスラブアロケータなら(一定以下のサイズなら)フラグメンテーションは起こらず、最悪時間も保証できる気がしますが、空間利用効率は落ちますかね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 フラグメンテーションは起きずらいと思いますが、そのサイズのアリーナを使い果たした場合とか速度低下の状況は考えられそうです。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 確かにガチのリアルタイムシステムだと「たまにしか遅くならないから許して」という言い訳は通用しなさそうですね。」 / Twitter

malloc 失敗

Egtra (ysk-noh)さんのツイート: "基本的にはそうなんだけど、「数百MBのメモリ確保に失敗→その他の致命的例外同様、ログ吐いて続行」を経験したことがある。何事にも例外はあるんだと学んだ。 https://t.co/irgtFQDCFQ"
Fadisさんのツイート: "「メモリが確保出来なかった」という理由で例外が飛んだ時、abortする以外にアプリケーションが出来る事は本当に少ない。デバッグの足しにしようとしてこの例外を捉えて行なった処理は大抵、再度メモリが確保出来ないという例外を飛ばす事になる"
島鉄雄さんのツイート: "> mallocが失敗した後だとprintf呼べない setvbuf() で自前のバッファを割り当てておけば一応呼べるはず。… "
SODA Noriyukiさんのツイート: "みんなホントにmalloc失敗で単にabortしてるだけなの? そんなことないよね。 「このmallocは(ユーザー入力やら通信相手の挙動やらによって)現実に失敗しうるしその場合にabortじゃまずい」的な場所限定なら、実用プログラムではふつう最低限の対処は入れてると思うしそう難しくないと思うんだけど。"
SODA Noriyukiさんのツイート: "640KBしかメモリがないMS-DOSでGosling Emacs動かすときにとった対処→ https://t.co/XMLSy0TkuG これは仮想記憶前提でmallocが絶対失敗しないという仮定のあるプログラムへの後づけのパッチなのでかなり無理してるけど、でもこの程度なら簡単。 GNU emacsなら元からもっとgracefulに対処してる筈。"
わたなべごうさんのツイート: "制御用の処理とかは別途外側にスクリプト言語とかで組んでおいて、低層のライブラリでメモリエラーでたら可能な限り解放かけてから外側の言語に例外なげて後処理をまかせる、みたいな書き方はしますね。ゲームだとクイックセーブしてごめんなさいしてタイトルに戻る… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのバッファ指定で実行ボタンを押すと即死、とか嫌がられそうです(笑) 特に、32bit環境だと「OSの空き仮想メモリはあっても、プロセス内の連続アドレス空間が無く」というパターンでコケることもあったりします。… "
まさみさんは語りたいさんのツイート: "結構abortしてる。kmalloc出来ないとか末期的だし。… "
SODA Noriyukiさんのツイート: "組み込み用とかはそのために固定サイズの配列使うのが多いですよね。 僕の仕事関係はUNIXサーバー用で、abortするとまずいけど、メモリはあるだけ限界まで使いたいので固定サイズにはできず、malloc()失敗にはそれなりに対処できるように作ってるつもりです。(もちろん抜けはあると思います)… https://t.co/TFCiKl58Nm"
SODA Noriyukiさんのツイート: "カーネルがminfree程度の空きメモリがあると仮定するのは(mmがそれを保証しようと努力する作りになってるわけで)アリですからね。 大きなサイズの動的メモリ確保については、gracefulに失敗する作りになっているところの方がふつうじゃないでしょうか?… "
yohさんのツイート: "「malloc失敗後にできることは何もない」って データ永続化や次回起動時のためのMinimum Grace Shutdown処理とかもせーへんの?さすがに怖すぎない?"
ケケモコソカメニハさんのツイート: "例えばエディタでファイルを開く時のメモリ確保はエラーハンドリングしないと、巨大ファイルを読み込ませたらアプリごと落ちましたというのはみっともないのでは……巨大なメモリ確保が失敗したからって後の実行に悪影響もないでしょうし適当なエラーダイアログ出してふつーに継続では"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、大き目データ群=VirtualAlloc(コミット済)、大き目になりうるデータ群=VirtualAlloc(アドレス空間確保)、それ以外はnew/mallocという使い分けで、前者2つはリカバリ可能な対処を入れてある、という感じ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "現実的にエラーになりうるメモリ確保はVirtualAlloc系に集約して、ほぼ発生しないはずのmalloc/newエラーは放置という割り切りをした、とは言えるかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VirtualAlloc(アドレス空間確保)の良い点の一つは、PTEを全く消費しないこと。(MSの資料だけだと心配だったので、実験して確認したり) まあ、予約空間の1/1024ほどのサイズですが。"
SODA Noriyukiさんのツイート: "ただしそういうアプリは、Cなんか使うのはやめて、もっと高級な言語使った方がいいだろうとも思ってますが。… "
まさみさんは語りたいさんのツイート: "エラーハンドリングしてるかという事なら、yesですよ。メモリ取れなければエラーを返す。… "
まさみさんは語りたいさんのツイート: "ただ、カーネル内でメモリが確保できない状況で、ユーザ空間に戻っても大したことはできないだろうなあと。… "
SODA Noriyukiさんのツイート: "小さなサイズのメモリが確保できないケースは、ユーザーに殺すプロセスを選んでもらうくらいしかできませんよね。これに対しユーザーが指定した大きなサイズのメモリを確保するたぐいだと、単にその処理だけ失敗させて以後ふつうにシステムが動き続けることも多いんじゃないでしょうか。… https://t.co/8inAx1SUKx"
Ryou Ezoeさんのツイート: "mallocが失敗した時 Linuxは失敗しない。メモリが足りなくなったらOOM Mac OSは失敗しない。メモリが足りなくなることはないという前提 Windowsはどういう戦略だっけ?"
SODA Noriyukiさんのツイート: "いや ulimit コマンドで制限かけられるので、mallocがNULL返すことがありますよ>Linux 例えば $ ulimit -v 10000 としておいて malloc(20000000) すると NULL が返ります。… "
TokusiNさんのツイート: "Win32は失敗する。Win64はどうだろう?確保しすぎるとOSの操作が困難になるぐらい重くなるから、その状態で更に確保して失敗するのは難しいんじゃないかなぁ… "
まさみさんは語りたいさんのツイート: "ああ、確かにサイズ依存ですね。あとはkernelで使うメモリなのかどうかも。… "
SODA Noriyukiさんのツイート: "ですよね。システムコールの引数サイズが可変でいったんカーネルメモリにコピーするみたいな処理だと、コピー先のカーネルメモリが確保できなかったら ENOMEM 返すのは簡単なわけで。… "
まさみさんは語りたいさんのツイート: "そんなこと無いやろ。error injectionもあるんやで。… "
Ryou Ezoeさんのツイート: "メモリ確保を失敗させると、今まで現実に動いてこなかったカーネル内のメモリ各区歩失敗のコードが動き始める。どんな不具合が表に出るかわからないので今更挙動を変えられない。しかし、メモリ確保が失敗しないならカーネルのメモリ確保失敗時のコードはすべて無用だ。"
まさみさんは語りたいさんのツイート: "Linuxカーネルでもレイヤが低いところでのメモリ確保は厳禁だし、逆にユーザに近いところはバンバン使う。そこはレビューで指摘されるしね。"
Miura Hidekiさんのツイート: "https://t.co/9Tulw464Mf 普通に売っている機器の組み込みプログラムはみんな何らかの対処をしていると思う。そうしないと、メモリが足りないから機械が動きませんじゃダサすぎる。"
Miura Hidekiさんのツイート: "まあ、あらかじめ非常用のメモリ領域を確保しておいてそれを使って要らない領域をfreeしたり圧縮したりがありがちなパターンかな?"
SODA Noriyukiさんのツイート: "小規模な組み込みプログラムはmalloc()使わず固定配列使ってるものが多いイメージがあります。ガラケーくらいリッチなハードになってもそんな感じに仕様で上限が固定数値になってたりとか。これがAndroid使ってるくらいまでリッチなハードになると対処してる方が多数派になりそうイメージが。… https://t.co/C5lCIXaYJT"
Miura Hidekiさんのツイート: "小さいのは確かにそうですね。あまりリッチなのだとメモリを使い果たしてもLinuxは落ちないという話になってアプリケーションレイアの話ではなくなる気もします。私が唯一経験のあるプリンタを想定していました。あと、おそらくテレビとかもそうじゃないかなと想像しています。… "
まさみさんは語りたいさんのツイート: "組み込み系とUnix系OSSとの相性が悪いの、mallocの話で理解できた気がする。小さいリソースから始めたプログラムは、リソースを固定的に扱い、徹底的に搾り取るのに対して、Unix系ではメモリは仮想化されたリソースで気にせず使うコーディングが許されてるからなあ。"
Fadisさんのツイート: "oomkillerが走るほどメモリが逼迫している場合、既にページアウトできるものは頻繁に追い出されている状況なはずなので、ハードディスク等の絶望的に遅い2次記憶を使っている場合、プロセスがoomkillerに落とされる前にまずホスト上でのあらゆる処理が死ぬほど遅くて何もできない、という状態になる"
星山 等(E-SW20改)さんのツイート: "とある仕事でボード刷新してメモリが倍増するからOS使うよう再設計できるって喜んでたら、μITRONのシステムコールで使うリソースを全部調べて全タスクぶん集計して、メモリきつかったから使うシステムコールを制限する哀しいお仕事が待ってた記憶が蘇った。 仮想記憶ナニソレな世界は切ない…。… https://t.co/x2VrokzT1I"
noblesse obligeさんのツイート: "最近はミドルの規模も大きいのでそこそこ余裕あるメモリを積んで動的に確保するほうが流行りなきがします。きっつきつにリソースを管理してるのはコストと性能要求がシビアで要件を満たすギリギリのSOCを選定するところですかね。… "
Satoru Uedaさんのツイート: "そのようなことも、ディストロが成長するのを阻害する要因。… "
GAUCHOさんのツイート: "弊社もついこの間まではコスト最優先でしたね。 いざ、スペックを見せられて、アホか!こんな貧弱なメモリーとプロセッサで作れるかー!ってなりましたもん。… "

abort

このコード、オシャカルトっ!さんのツイート: "malloc系の関数でmemory corruptionでプログラム終了するときとか、abort()でプログラム終了する時の処理が今までと変わったりしてるんだな。 GNU C Library 2.27 released - https://t.co/CFSv43R4Zw"
GNU C Library 2.27 released [LWN.net]
KOSAKI Motohiroさんのツイート: "glibc 2.27 でついにabortが正しく async signal safeになりました。いままではバカなことにabortないでIOをflushしていたので、signal contextなどで呼び出した時は最悪デッドロックしていました。abortの途中でデッドロックして嬉しい人はいないため、これはよい変更。というかなぜ20年ほっておいた"
まさみさんは語りたいさんのツイート: "abortが必要なほど複雑なプログラムは書いていなかった・・・とか?… "
Ryou Ezoeさんのツイート: "めったに起こらないので、ハードウェアの問題とかソフトメモリエラーを起こす程度の確率と同じであれば、そのように認識されてしまったで問題視されていなかったのかな。 https://t.co/xa88xIFMpL"
まさみさんは語りたいさんのツイート: "abortじゃなく、ちゃんとソフトウェアのエラーを回収できるように考えられたプログラムしか書いていなかったとか。そもそもabortが信用できないっていう状況なんだったら、そのようにソフトウェアを書くことが前提になっていた可能性もある。"
KOSAKI Motohiroさんのツイート: "abortがちゃんと動かないって地味に困るんですよ。バグってassertに引っかかったら、ちゃんと終了してほしいんですよ。プロセス終了してくれたら、外で監視ソフトが異常検知してリカバリに移れるんですよ。デッドロックはそういうチャンスが失われるんですよ"
SODA Noriyukiさんのツイート: "なんでこんなことになってんだっけと見てみたら、古いPOSIXだとflushが必要だと規定されてて、後でasync-signal-safe規定が入ったのか(→ https://t.co/1iuJ50DUpQ )。4.3BSD tahoeだとflushしてないので、これはSystem-V Interface Definitionが悪さしたんじゃないかしら。 https://t.co/EXX0VBOAnF"
abort
本の虫: glibcのabortマニュアルの中絶方針ジョークについて
Kazuho Okuさんのツイート: "RMSが実際に強権を発動したわけではないし、検閲規制委員会は誤訳だし、メキシコシティ云々も関係ない気が / “本の虫: glibcのabortマニュアルの中絶方針ジョークについて” https://t.co/swYqITC4yI"
Kazuho Okuさんのツイート: "まあ、RMSが「GNUは純粋な技術的プロジェクトではない」から、他のコミッタのコンセンサスを無視し強権を発動してジョークを戻す、と言ったのは確かだし、そういうプロジェクトなんだということなのかなーとは言いたくなる"

@kazuho

Kazuho Okuさんのツイート: "あれ glibc で free 時に解放されるメモリを何かでフィルする機能(macOSでいうところのMallocScribble)みたいなのってないんだっけ"
Kazuho Okuさんのツイート: "asanがscribbleもしてくれるんだっけ"
Kazuho Okuさんのツイート: "ああこれは負荷低くて良さそうですね。ありがとうございます https://t.co/pgFnkQ9q9y"
Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
Thoughts on GCs | κeenのHappy Hacκing Blog
Kazuho Okuさんのツイート: "ユーザ「終了時にメモリリークしてるってasanが言います」 僕(めんどいなー。どうせmainで確保してるコードだしallocaに変えよう。。。) ユーザ「修正を確認しました。ばっちりです」 僕「アラォッケーってか」"
Kazuho Okuさんのツイート: "goto禁止教の人たちはソースコード見せなければ無害だけど、メモリ解放必須教の人たちは防ぎようがないんだよね"
Kazuho Okuさんのツイート: "struct S *s; ... s = malloc(sizeof s); とかみんながやるミスでしょ。やったことない人いるの?"
Kazuho Okuさんのツイート: "p = malloc(sizeof *p) は不整合が脆弱性につながるイディオムなのでラッパ書いてる人も多いんじゃないかな"
Kazuho Okuさんのツイート: "「malloc失敗時にabortしていい」という主張は、malloc失敗を異常ケースとみなしていいという主張と同義なんだけど、昔はmalloc失敗はよくあることだったし、ディスクが遅いから自動保存なんてできなかったので、mallocに失敗してからファイル保存処理を実行できる必要があったとかなんとか"
7594591200220899443さんのツイート: "一年考えてまだなぜclangがこのコードを吐くのがバグじゃないのか理解できない。*p=1;(なにか);return *p;をclangはreturn 1;に最適化しているわけだけれども、なぜ(なにか)がpをぶっ壊してないことが静的に確定するのか?mallocがちょうどそのアドレスを返すことがあり得るよね?わからん。… https://t.co/2EJdGVDKqq"
John Regehrさんのツイート: "here we try to guess the value of a pointer -- LLVM says we cannot guess it and GCC suspects we can https://t.co/iPzc11HRdR"
Compiler Explorer
Miura Hidekiさんのツイート: "mallocをどう解釈するかじゃないかなー?mallocを厳密にメモリ領域を確保するという解釈ならmallocのコールとoffset 0のデリファレンスをコード生成しないといけないだろうけど、mallocはローカル変数のように同じセマンティクスが実現できれば実体は無くていいという解釈ならclangの方法も正しい"
Kazuho Okuさんのツイート: "mallocは常にエイリアスされ得ないアドレスを返すという関数宣言属性 __attribute__((malloc)) があって、それを認識してるだけでは?… "
Kazuho Okuさんのツイート: "というか、*(int*)0xfeedcafeする時点でimplementation-defined behaviorになり、そして当該処理系は、mallocが返しうる領域をユーザがmallocを経由せずに指定した場合の挙動は定めていない、ということのような気がします… https://t.co/PtQpVsTsua"
Kazuho OkuさんはTwitterを使っています 「slabっていうのかbinっていうのか知らないけど、各malloc実装があらかじめ用意している小容量のスロット群のサイズ一覧表みたいなのあるのかな。 何に使いたいかというと...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、18バイトの領域が4個必要だったとして、それは固定で確保しておいたほうがいいのか、mallocで18バイト毎に確保すればいいのか、みたいなことをパッと判断したい。 32バイトのbinが使われるなら、要素あたりのメモリ使用量はポインタ含め40バイト になるからmallocしなくていいか、とか...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「20バイトのbinが使われるなら、mallocもありかな、とか... 実際は20バイトのbinなんてないと思うけど、例として挙げてます」 / Twitter
Kazuho OkuさんはTwitterを使っています 「最近の64bitサーバなら、一番オーバーヘッドが少ないmallocでも16,32,48,64あたりじゃないかな」 / Twitter

はろさんはTwitterを使っています: "#DroidKaigiA 「dalvikでは、dlmalloc, ARTではRosAllow。Segeregated free listを使い、並行メモリ割当に対応。」そういや、最近はjemallocがdefaultやね。Android."
OS作れないマン WalB担当さんのツイート: "OSのメモリ管理方法として、可変長メモリブロックの先頭に管理用ヘッダを埋め込んでリンクリストを形成する方法に名前がついてた気がするけど、なんだったかな。"
ゆたかさん🐬さんのツイート: "freeよりもmallocのほうがコストがかかるので、処理高速化のため実際に解放せずプールしているのだと思われます。 https://t.co/npAdD3xnfo"
Rui Ueyamaさんのツイート: "なぜ速いかというと必要なメモリをスタックだけからアロケートしているというのと(やっぱmallocは遅い)、適切な中間表現を作ってパーズと文字列化を分離しているからだと思う。適切なデータ構造を選べばプログラムは簡単で速くなるんだなぁという感じ。"
Rui Ueyamaさんのツイート: "いま思えばできる限り速いmallocを書くという課題(ベンチマークのスコアで点数がつく)は教育効果高かった。他人にシステムズプログラミングを教える立場になったらあれは活用したい。"
がちゃぴん先生さんのツイート: "glibc 2.26 がリリースされました。今回は小粒な変更な印象。malloc の per-thread cache がパフォーマンスインパクト大きそうかな"
Fadisさんのツイート: "mallocを使わないプログラマ、Cが透けて見えない言語の使い手の可能性と、ベアメタル魔人の可能性がある"
Fadisさんのツイート: "mallocを使わない人、最近はHugepageを使わないとTLBミスががががが、な人達もいるか"
島鉄雄さんのツイート: "ゲームだと以下の原因がある。 1.メモリが枯渇している→特定の手順の時だけメモリ不足になる→フラグメントにより大きな空きが無い 2.同じアドレスでfreeを2回する(malloc管理領域が破壊) 3.メモリ破壊(free後に書き込む等) 1.2.はmalloc()をデバッグ機能付きにすれば対処可能だけど、3.は地獄…… https://t.co/gpPYUz1hTu"
島鉄雄さんのツイート: "ちょっと間違ってた… 1.の場合は NULL が返ってくるだけだから malloc で SEGV は発生しなかった。(NULL チェックしてなければその後 SEGV だが) 3.は必ず malloc が SEGV する訳じゃないけど、malloc の管理領域を破壊すると malloc の SEGV が発生する、という感じか。"
OS自作 uchan_nosさんのツイート: "フル機能のsprintfは場合によってはmallocを呼ぶのでクソ.mallocとか絶対に呼ばないsprintfが欲しい."
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「20数年の時を経て、malloc/free論争の再開(笑) (当時、プロセス終了でリソース開放なら終了時freeは無駄、が多数派で終わった感) https://t.co/h9dteQ3XfV」 / Twitter
FadisさんはTwitterを使っています: 「C++のRAIIによる確実なメモリの解放、プロセスの寿命を超えて生存するNVDIMM上のデータの前では無力で厳しい」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「記事がめっちゃ長くて読めてないんだけど、高位アドレスから低位アドレスに向かって確保するのが効率的な理由を、誰か一言で理由を教えてくれませんか」 / Twitter
hikaliumさんはTwitterを使っています: 「@uchan_nos 高位から低位に確保すれば、アライメント合わせが切り捨て方向になる 確保サイズが空き容量よりも大きい時のオーバーフローの考慮が1個減らせる つまり条件分岐が減る だから速い」 / Twitter
Masaki HaraさんはTwitterを使っています: 「https://t.co/arNOjyAz8w 「確保しっぱなし」の簡易アロケーターを実装する場合、メモリ空間の上から下に向かって確保するのがよいという記事。たしかに何も言われないとつい下から上向きに実装してしまいそう。」 / Twitter
Always Bump Downwards
Masaki HaraさんはTwitterを使っています: 「@hutai 用語が古いのか仰りたいことが正確にはわかりませんが、おそらく問題をより複雑に読み違えているのでは。ここでは完全なヒープやガーベージコレクションなどは考えておらず、最もシンプルな形態のアロケーターを考えています。とりあえず元記事の前半を読むといいと思います。」 / Twitter
Masaki HaraさんはTwitterを使っています: 「@hutai 考えていることはシンプルで昔のアーキテクチャにも当てはまるはずなので、昔から「常識」だったとしてもおかしくないとは思います。ただ、それをこうしてブログにしてより多くの人に知らしめた人が偉いのであって、暗黙知だったとあとから主張されてもあまり意味がないのかなと思います。」 / Twitter
uchanさんはTwitterを使っています 「Intel Pinで解析対象プログラムのmallocを置き換え,ヒープオブジェクト一覧を得ることができた。『動的バイナリ解析の基礎』っていう同人誌に従ってやってみただけだけど。 https://t.co/L4ApEgvBKK https://t.co/SavCYgjuQK」 / Twitter
動的バイナリ解析の基礎 - バイナリイーター - BOOTH
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「とくにRustに限った話ではないが、例えばC++ならデストラクターを実行する必要がない型にしておいてmonotonic_buffer_resourceからメモリを確保するなどしてちょっと最適化できるかな。」 / Twitter
κeenさんはTwitterを使っています 「んー、この発想はなかった。RustにGCがないとはいっても、大きなデータ構造を開放するときはstop the world的なのは起きうる。それを別スレッドに逃がす話。 Rust: Dropping heavy things in another thread can make your code 10000 times faster https://t.co/s0CRKTvemi」 / Twitter
Rust: Dropping heavy things in another thread can make your code 10000 times faster
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「結局問題は、複雑なノードベースのデータ構造を構築する大量の小粒なメモリ群を一つづつ開放していくコストなので、専用のアロケーターを使えば効率的になる。」 / Twitter
Kentaro HaraさんはTwitterを使っています 「Chromiumのメモリ管理周辺のコードはガチガチに最適化してあるんだけど、たまに観察される現象が「関数をインライン展開しないほうが速い」。最近のCPUは相当賢いので、(インライン化による命令数削減のプラス効果)&lt;(コードサイズ肥大化による命令キャッシュミス増加のマイナス効果)になりうる。」 / Twitter

PhoenixWiki

EFI SYSTEM TABLE - PhoenixWiki
EFI CONFIGURATION TABLE - PhoenixWiki
EFI BOOT SERVICES - PhoenixWiki
EFI RUNTIME SERVICES - PhoenixWiki
EFI LOADED IMAGE PROTOCOL - PhoenixWiki
EFI GRAPHICS OUTPUT PROTOCOL MODE - PhoenixWiki
EFI STATUS - PhoenixWiki
Category:Device Path - PhoenixWiki
EFI LOAD FILE PROTOCOL - PhoenixWiki
EFI MEMORY DESCRIPTOR - PhoenixWiki
EFI GRAPHICS OUTPUT BLT PIXEL - PhoenixWiki
EFI GRAPHICS OUTPUT BLT OPERATION - PhoenixWiki
EFI GRAPHICS OUTPUT PROTOCOL - PhoenixWiki
EFI GRAPHICS PIXEL FORMAT - PhoenixWiki
TianoCore EDK2: MdePkg/Include/Uefi/UefiSpec.h File Reference
Category:UEFI 2.0 - PhoenixWiki

MS

高速スタートアップ

System Power States (Windows)
イーサネット - Windows 10 hardware dev
「通常シャットダウン」と「完全シャットダウン」 Windows10高速スタートアップの設定 | Mechalog
富士通Q&A - ハイブリットシャットダウンからの復帰後のサインイン画面で、Num Lock状態が解除される場合があります。 - FMVサポート : 富士通パソコン
Windows 10で高速スタートアップを無効にする方法 – iBitzEdge
ハイブリッドブートを無効にする方法【Windows 8】 | MacRuby
シャットダウンと休止状態とスタンバイ(スリープ)状態の違いとメリットデメリット | パソコンの問題を改善
Windows 10(完全なシャットダウンを実行する) | PC Cafe サービス・サポート編 | パナソニック パソコンサポート
Windows10の通常シャットダウンと完全シャットダウンとスリープの違いとは | The Windowsマスター
Windows10の高速スタートアップって何?速いけど危ない?無効にする方法は? | ligamap
121ware.com > サービス&サポート > Q&A > Q&A番号 018214
Windows 8.1ミニTips (108) 「高速スタートアップ」有効時、BIOS/UEFIを呼び出すには | マイナビニュース
Windows 8.1ミニTips (110) 高速スタートアップが使うハイバネーションファイルのサイズを変更する | マイナビニュース
Windows 8レボリューション:第17回 素早い起動を可能にする「高速スタートアップ」 - @IT
Windows 8で実装された「高速スタートアップ」とはどんな機能か解説 - 道すがら講堂
Windows 8.1ミニTips (107) 高速スタートアップを有効にする | マイナビニュース
パソコンの電源を完全に切る方法 (高速スタートアップを一時的に無効にして完全にシャットダウンする方法) - マイクロソフト コミュニティ
Windows_Japanさんのツイート: "【実は違う「シャットダウン→起動」と「再起動」】 #Windows10 のシャットダウンでは、次の起動を高速化するために、“現在の環境を保存”する機能が働きます。 対して再起動では、“環境をリセット”して起動します。 #豆知識 https://t.co/pk5csWDib9"
Windows_Japanさんのツイート: "【「シャットダウン→起動」と「再起動」の違い】 #Windows10 のシャットダウンでは、次の起動を高速化するために現在の環境を保存する機能が働きますが、再起動では環境をリセットしています。パソコンの調子が悪くなった時は、高速化しない「再起動」を試してみてくださいね。 #豆知識 https://t.co/9o1FbvwS6w"
日記 (2014 年 11 月下旬)
exJP2QNBさんのツイート: "さらに『フルシャットダウン』なんてのもありますね。 シャットダウンより再起動、とのことですが、問題によっては、再起動では直らなくて、シャットダウン→電源オン、じゃないとだめなときもあります。 デバイスの電源管理の問題のときとか。… "
SODA Noriyukiさんのツイート: "SHIFTキーを押しながらシャットダウンするとか、あるいは[設定]=>[更新とセキュリティ]=>[回復]=>[今すぐ再起動する]=>[PCの電源を切る]で呼び出す奴ですね。高速スタートアップOFFのシャットダウンはこれと同じになるんじゃないかと思ってるんだけど、違うあるんでしょうか?… https://t.co/TPU9fhPnLC"
exJP2QNBさんのツイート: "PC内部のデバイスの電源管理に差があることがあります(某社だけ?じゃないと思いますが)。 バッテリー抜いたり、デスクトップならコンセントからプラグ抜いちゃえば、差はないですね。… "

Fast Boot

Windows7でもFastBootが効くってホント? - 週刊アスキー
自作PCをよくするワザ、教えます(3) ~マザーボード 初級編~ - AKIBA PC Hotline!
本の虫: Windows要件を満たしたPCで、Microsoftの屈辱的なライセンスに同意せず別OSを使うのが困難な状況

Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
Windows の UEFI プロトコル - Windows 10 hardware dev
ブート モード管理 UEFI プロトコル - Windows 10 hardware dev
Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
USB デバイスから Microsoft Surface を起動する
UEFI ファームウェア - Windows 10 hardware dev
UEFI 環境からのデバイス I/O - Windows 10 hardware dev
Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
/MACHINE (ターゲット プラットフォームの指定)
UEFI ベースの推奨ディスク パーティション構成
UEFI 検証オプション ROM ガイダンス - Windows 10 hardware dev
セキュア ブートの無効化 - Windows 10 hardware dev
Clarification of new Windows UEFI/SMM security feature | Firmware Security
PC OEM requirements for Device Guard and Credential Guard | Microsoft Docs
UEFI で OS 起動前の環境を保護する – Building Windows 8
山市良のえぬなんとかわーるど: Tips: Windows のインストール時に UEFI か BIOS か判断する方法
11月の月例アップデートで一部のLenovo製ラップトップが起動不能に - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VS2013まで、snprintf で n を超える場合、\0が付かない上に、戻り値に-1が返るという仕様だった。 https://t.co/KdPadErguz strncpy共々使いづらいため、snprintfz とか strncpyz みたいなオレオレ関数を作って対処していた。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に、VS2015以降のsnprintfがC99準拠になっていたのを初めて知った。」 / Twitter
UEFI scanner brings Microsoft Defender ATP protection to a new level - Microsoft Security

Intel

The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
https://firmware.intel.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Memory_Map_in%20UEFI_BIOS.pdf
A_Tour_Beyond_BIOS_Memory_Practices_with_UEFI.pdf
Address Range Partial Memory Mirroring | Intel® Software
intel/ModernFW

Plamo Linux

第77回 Plamo LinuxのGPT/UEFI対応[その1]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第78回 Plamo LinuxのGPT/UEFI対応[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第79回 Plamo LinuxのGPT/UEFI対応[その3]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第80回 Plamo-6.1 released:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社

SMBIOS

SMBIOS | DMTF
www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf

GitHub

clover/OhciDxe at master · Clover-EFI-Bootloader/clover
uefireverse/efiperun at master · jethrogb/uefireverse
EDK II white papers · tianocore/tianocore.github.io Wiki
fuchsia-mirror/gigaboot20x6: GigaBoot20x6 - A Simple UEFI Bootloader for Magenta
EFI-MIPS/osloader.c at master · kontais/EFI-MIPS
edk2/Command.c at master · vathpela/edk2
thasenpusch/ExOS at aca6a389d54ae7c08e5073eae50d1ef134d7b322
AuberLin/PiSmmSCRT
ArmPkg Runtime · tianocore/tianocore.github.io Wiki
ornitorrincos/OS at 1d3284be4af4da2a9690b89ebd958e6ca53ce8e6
x86, efi: Retain boot service code until after switching to virtual mode · shr-distribution/linux@916f676
BOOT UEFI · seporaitis/fuchsia Wiki
uefi-programming/process.c at master · zhenghuadai/uefi-programming
MatthewClarkMay/secure-boot-mok-scripts: Set of scripts I wrote to simplify UEFI Secure Boot Machine Owner Key generation, and signing of Nvidia, VMware, and VirtualBox kernel modules. These MOKs can be used to sign other kernel modules as well.
Microsoft UEFI capsule update package on GitHub | Firmware Security
MS_UEFI/MsCapsuleUpdatePkg at share/MsCapsuleSupport · Microsoft/MS_UEFI
ちくわさんのツイート: "今現在開発中のyabits/uefiですが,OpenBSD 6.2が起動することを確認しました.これで少しはTianoCore以外のUEFIができた,と言えるのかな? https://t.co/P5uPiTPnhR https://t.co/5mFxTEpX5k"
yabits/uefi: A minoca based UEFI coreboot payload
Fadisさんのツイート: "Microsoft、TianoCoreのEDK2をforkして「ぼくのかんがえたさいきょうのUEFIアプリケーション開発用ライブラリ」を作るオープンソースプロジェクト Project Mu を立ち上げ https://t.co/huBeVkFboO"
Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
Project Mu
Unofficial EDK2 nightly build | EDK2 Nightly Build
How to debug OVMF with QEMU using GDB · tianocore/tianocore.github.io Wiki
edk2/Readme.md at master · tianocore/edk2

Golden Key

Bungling Microsoft singlehandedly proves that golden backdoor keys are a terrible idea • The Register
Oops! Microsoft Accidentally Leaks Backdoor Keys to Bypass UEFI Secure Boot
Oops: Microsoft leaks its Golden Key, unlocking Windows Secure Boot and exposing the danger of backdoors
Microsoft Secure Boot key debacle causes security panic | ZDNet
Secure Boot Isn't So Secure After All: The Golden Key Is Out - Phoronix
Windowsマシンのセキュアブートを無効化できるセキュアブートポリシーが流出、解析結果が公開される | スラド セキュリティ
Windowsのセキュアブート機能が回避可能になっていたことが明らかに - GIGAZINE
Microsoft Mistakenly Leaks Secure Boot Key | Threatpost | The first stop for security news
Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open | Ars Technica
Secure Golden Key Boot: (MS16-094 / CVE-2016-3287, and MS16-100 / CVE-2016-3320)
MSのセキュアブートバイパス問題--セキュリティ研究者らが経緯を明らかに - ZDNet Japan
Microsoft、UEFIセキュアブートのポリシーを誤って流出 | マイナビニュース

スラド

Windows 10ロゴプログラムではセキュアブート無効化オプションの搭載が必須ではなくなる | スラド Linux

OSDev

Broken UEFI implementations - OSDev Wiki
El-Torito - OSDev Wiki
Uefi.inc - OSDev Wiki
Debugging UEFI applications with GDB - OSDev Wiki
Livaさんのツイート: "qemuにgdbに繋いでデバッグすると「Remote 'g' packet reply is too long」とか言われてデバッグする問題、16bit->32bit->64bitの遷移が問題らしい https://t.co/jNipyBwgea #liva_notebook"

スライド

UEFIをつくる // Speaker Deck
UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 // Speaker Deck
UEFI向け自作OSの紹介
EFI Byte Code Virtual Machine for Fun and Profit - Speaker Deck

技術評論社

第441回 QEMU/KVMでUEFIファームウェアを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第444回 Ubuntuにおけるセキュアブートの仕組み:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第446回 QEMU/KVMでセキュアブートを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第511回 UEFIの設定が変更できなくなる,あのバグの話:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

OSDN

「Coreboot 4.6」リリース | OSDN Magazine
米Microsoftが「Project Mu」を発表、同社のUEFIコアをオープンソースに | OSDN Magazine

Qiita

UEFI Advent Calendar 2014 - Qiita
"えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
gnu-efiでUEFI遊びをはじめよう - Qiita
FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita

Twitter

その他

嶋田大貴さんのツイート: "UEFIブートの時に画面つながってないと grubがstuckするの、ECS LIVAだけの問題じゃないっぽい https://t.co/a8XwYlw7I6"
173210さんのツイート: "jethrogb/uefireverse https://t.co/HsgGU1LvPn Linuxで実際にUEFIアプリケーションを走らせてみるという荒業。その発想はなかった。"
iruka3さんのツイート: "ここでx86とかx86_64を持ち出さない理由は、intel系CPUでベアメタル・プログラムを組める人は特権階級な人達だけ、だから。 OS書いたりBIOS書いたりUEFI弄るような人。あとコーデックを高速化する人とか特殊な技能人 https://t.co/V27HEOrwea"
側転幼女おるみんちゃんさんのツイート: "UEFIとACPIとSATAとPCIeとUSBとネットワークでというモダーンなPCで自作OSみたいな本"
СЮУ1228さんのツイート: "@kotatsu_mi あとさぁ、UEFI App/Driverだと間口狭い感じするんだけど、x64入門とか自作OS本の新しいやつみたいに考えるともうちょっと間口広いと思うんだよな。実装的にはUEFI使う感じで"
СЮУ1228さんのツイート: "@kotatsu_mi 15日でできる!UEFI OS自作入門っていう本を二人で書こうぜ #題名ぱくり良くない"
Takanori Watanabeさんのツイート: "@tenpoku1000 いやね、ストレートマップで呼び出したら途中でポインタが吹っ飛ぶ症状がある実装があって、どうも一部のモジュールのフィックスアップがSetVirtualAddressMapで行われるということっぽいので試すかという状況。"
Tsukasa #01 [要出典]さんのツイート: "なるほど、VeraCrypt のレスキューディスクには新たな機能が搭載されてるんだね。UEFI のブート設定が初期化されたとしても、ブートメニューを再追加することができる。これで、BIOS アップデート後も大丈夫!"
Orumin de Izumoensisさんのツイート: "@syuu1228 /sys に UEFI の RuntimeServices が見えなくなるとかのオプションで、UEFI での起動には問題ないらしい"
ゆたかさん🐶さんのツイート: "UEFIモードだとLinux動作中にefibootmgrコマンドで、ブートオーダーを変えれて便利です。いちいち、BIOSのセットアップに入らなくてもよいので。"
太田 一季 (CV.どじょりん)さんのツイート: "@jisaku_Haswell BIOS Flashbackは生のBIOSバイナリ(.rom)を読み込んで直に書き込みするのね UEFI経由でアップデート用の、カプセル化されたバイナリ(.cap)は読み込まないのよー"
🍵🍡Tea Boyさんのツイート: "PC専門サイトでさえ、「BIOSからUEFIに移行」などと言う実態… BIOSはファームウェアですが、UEFIは仕様ですよ??"
tnさんのツイート: "なるほど! UEFIのTCP4 PROTOCOLのハンドラはEFI_TCP4_PROTOCOLのGUIDでLocateHandle使って検索して得るのではなく、EFI_TCP4_SERVICE_BINDING_PROTOCOLのCreateChildを呼ぶと得られるのですね!! 一歩進んだぞ!!!"
EFI_TCP4_SERVICE_BINDING_PROTOCOLとEFI_TCP4_PROTOCOLに関するメモ
ゆたかさんさんのツイート: "BIOS(UEFIファームウェア)はWindowsを起動することを目的として作られるので、BIOS内のOS定義(_OSIメソッド)はWindowsになっていて、LinuxはBIOSがどのWindowsバージョン向けに作られたかを判断して、ハードウェアを初期化しています。… https://t.co/sCRRVdxEz4"
品川 高廣さんのツイート: "そういえば先週 @retrage01 さんの独自UEFI実装 yabits (Yet Another UEFI coreboot Payload) の話を聞いてきました。起動時間が速いそうなので、QEMU + OVMF で UEFI 上の自作OSをやってる人は OVMF の代わりに使うと便利かもしれないと思いました。https://t.co/GCDsCfRMDd https://t.co/TGvQ87r3Kx"
研究千年牛酪情報保管庫菩薩さんのツイート: "MD RAIDのメタデータ領域を壊れたGPTと誤認識して修復しようとゼロクリアするマザボ.... / “scan.php?page=news_item&px=Linux-Software-RAID-ASRock” https://t.co/ULL25yU7Ye"
Some Linux Users Are Reporting Software RAID Issues With ASRock Motherboards - Phoronix
Rui Ueyamaさんのツイート: "lldを使うとUEFIアプリケーションが簡単にビルドできるよ、という話。これよく聞く話なので思わぬところで役に立っているらしい。僕はブートローダーとかは書いたことないです。 https://t.co/2h4ZHk66dX"
Goodbye Gnu-EFI!
NerryさんはTwitterを使っています: 「BGRT正しく表示されない問題どうも液晶の方向と画像の方向に原因がある気がするが、データ上はどの画像も0℃扱いになっててwindowsはどうやって判別してるんだ・・・」 / Twitter
NerryさんはTwitterを使っています: 「画像が縦長か横長で判別することにした:;(∩´﹏`∩);:」 / Twitter
ret2rangeさんはTwitterを使っています: 「UEFI、規格にないだけでEDK2で実装されているがゆえに実質標準で実装されていることになっているProtocolとかたくさんあるんだよなあ」 / Twitter
ret2rangeさんはTwitterを使っています: 「GRUBとかでもそういうのある前提の実装だったりする(Console Control Protocolとか」 / Twitter
ret2rangeさんはTwitterを使っています: 「デバッグでprintfがない環境で値を16進数で出力したいときva_arg使うほどでもないとき、BitVisorのloadvmm.efiにあるprinthex関数が何気に便利だった https://t.co/mfyf4k8HYC」 / Twitter
BitVisor loadvmm.efi printhex
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「fdは「空いている若い番号から使いまわされる整数」と言う点でハマりやすい。 (昔のUNIXはその性質を積極的に使って dup(2) とか…) なお、WindowsのHANDLEはオープン毎のシリアル番号付与で、意図しない再利用はまずない。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ponkotuy 過渡期の UEFI 2.3b にギリギリ対応してなさそうだけど UEFI なマザーボードは微妙に貧弱なのでマザーボードの設定で CSM(UEFI の Legacy BIOS 互換機能)を無効化しないと,BIOS/UEFI 両方に対応したブートイメージだと BIOS boot のほうを優先して読むようなことがある」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ponkotuy Windows も 7 とか UEFI boot 対応してるはずなのに CSM を無効化しない限り BIOS boot するようなことがあった(Windows 8 から UEFI 2.3b 対応(つまり SecureBoot 対応)がロゴシール貼る要件になったので,UEFI boot のほうを優先するようになった)」 / Twitter
全手動猫画像RT botさんはTwitterを使っています 「UEFI環境でNetBSDが起動しないときのトラブルシューティング、俺も教えてほしいよ。シリアルコンソールが無いと基本駄目ですね。あとはframebufferにどこまで進んだかをpixelで表現するくらいしかなさげ」 / Twitter

OS ベンダ登録

Kimihiro Nonakaさんのツイート: "EFIブートの「/EFI/<OS vendor>/<OS image loader>] についてはUEFI spec https://t.co/STn4Gc05Go 2.7 (Errata A)だと「13.3.1.3 Directory Structure」に記載がある。OS vendorは https://t.co/kqpDxb4Kc4"
SODA Noriyukiさんのツイート: "Debian と FreeBSD はあるんですねえ… NetBSD も欲しいなあ… "
Kimihiro Nonakaさんのツイート: "UEFI Specification Workgroup Chairperson にメールを送れば良いみたいですけど… "
SODA Noriyukiさんのツイート: "おお、ちゃんと見るとそう書いてありますね。 担当は board@ になる気がするのでメールしてみました(のなかさんにも CC: したので届いているはず)。 あとは board member である @_ki_nu さんが取りこぼさずに推進してくれることに期待?(ぉ… https://t.co/ASKcVS5QeV"
Subdirectory Registry | Unified Extensible Firmware Interface Forum

@mhiramat

まさみさんは語りたいさんのツイート: "Linaroでuefi-toolsというのを作っていて、これはややこしいビルドを簡単にしてくれるらしい。"
まさみさんは語りたいさんのツイート: "サーバを作って売る上で、LinuxとEDK2って扱いがちょっと違うよね。LinuxはOSベンダがメンテ出来るけど、自社のCPUやボード部分のUEFI対応はある意味BIOSと同じなのでサーバベンダがしないといけない。そう考えるとハードベンダもOSS活動しないといけないのか。"
まさみさんは語りたいさんのツイート: "未踏、tianocore全否定なのか・・・。"
まさみさんは語りたいさんのツイート: "まあ、ソースコードがお世辞にもいいとは思えないし大きいし、というのは理解できるけど、tianocoreもOSSなんだよな。文句があるならまずコミュニティに相談したらどうだ、という風に思っちゃう。"

@nonakap

Kimihiro Nonakaさんのツイート: "EFI_BLOCK_IOのMedia->MediaIdってシステムでユニークという訳では無いんだなぁ…"
Kimihiro Nonakaさんのツイート: "FreeBSDのefipartを参考にDevice Pathをいじくる様に修正しないと駄目だ(´・ω・`)"
Kimihiro Nonakaさんのツイート: ""multiboot2 boot-services EFI specification" "multiboot2 EFI memory map specification" | NEWS - grub.git - GNU GRUB https://t.co/m9lIFSW7Y1"
Kimihiro Nonakaさんのツイート: "efbootだとConventionalMemoryとかLoaderCodeとかLoaderDataとかBootServicesCodeとかBootServicesDataとかが利用可能メモリとして認識されるので、message bufferをなるべく保持したいという要求に応えられない気がする(´・ω・`)"
Kimihiro Nonakaさんのツイート: "たとえばESXi 6.5のUEFI環境だと「000000000dfa8000/000000000fffffff: available [BootServicesData]」が最上位空きメモリ領域なのでmsgbufとしてここを使うはずなので、起動する度にUEFIがぶち壊すと思うんだけどどうなんだろうか"
Kimihiro Nonakaさんのツイート: "efibootを起動した時にConventionalMemoryとして認識されている上位アドレス空間をmsgbufとして使わないと駄目な気がするけど、こんなのUEFI実装によって違うからどうしようもない(´・ω・`)"
Kimihiro Nonakaさんのツイート: "BIOSとは違って最上位メモリアドレス付近は安全ではないのだ"
Kimihiro Nonakaさんのツイート: "Fのloaderは1GB未満、OのLOADSPACEは256MB未満のメモリしか確保しないけど、これを真似してもmsgbufの保護にはならないので真似するのは止めました。UEFIの実装によっては保護になるとは思うけど、そういう実装が多いのか少ないのかは知らん(´・ω・`)"

@yasuoka_m

YASUOKA Masahikoさんのツイート: "@nonakap O では、ExitBootService 後に memcpy しなおすことにしました"
YASUOKA Masahikoさんのツイート: "@naobsd efiboot のシリアルコンソールですが、結局、こんな感じに実装してみました。ここまで頑張った挙句、ポートの特定はいい加減なので、カーネルでは別のポートでした、という問題はありそうな感じなのが弱いです。:) https://t.co/88WqKKVXy6"
'Re: efiboot serial console support' - MARC

@uchan_nos

ファッション自作OSマンさんのツイート: "UEFIアプリとしてOSローダーを作る際のハマりどころ ・空きメモリ領域は機種によって違うので動的に取得する必要あり ・ABIの差。UEFIアプリのABIはMS x64 ABI、自作OSは大抵System V ABIで作るだろう… "
技術書典4 け-51 x86-64-128さんのツイート: "UEFIの仕様ではExitBootServices()した後はBootServiceを利用できないはずだが,実際にある実装では引き続きBootServiceが使えてしまう,らしい. #osdev_moku2"
setup.c\kernel\x86\arch - kernel/git/torvalds/linux.git - Linux kernel source tree
技術書典4 け-51 x86-64-128さんのツイート: "ESPってただのFATかと思っていたら,GUIDが違うのか.知らなかった. #osdev_moku2"

uefi.org

EBC_Driver_Presentation.pdf
UEFI_Plugfest_2011Q4_P5_Insyde.pdf
Windows Boot Environment
edk2-platforms/Silicon/Intel at master · tianocore/edk2-platforms
UEFI Summer Plugfest 2011

Acknowledgements · EDK II UEFI Driver Writer's Guide
grub rescueで'grub_file_filters' not foundが出るときの対処方 | κeenのHappy Hacκing Blog
ubuntuのブートローダが壊れたけど、Live環境から「boot-repair」を使って無事修復できました - 日々過ごすブログ
GRUB2(UEFI)のコンソールからの起動メモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
fedora 30からgrubの仕様が変わったのでφ(..)メモメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
このコード、オシャカルトっ!さんのツイート: "/boot/efi/EFI/xxx/にはBLS仕様になったgrub.cfgがあるので、grub.cfgを参照するというところは変わってなさそうです。… "

証明書

その他

暗号

その他

000055177.pdf
情報処理推進機構:情報セキュリティ:セキュリティ関連 RFC
Tink - クラウド、Android、iOSに対応するGoogleの暗号化ライブラリ
キーペア (*.pfx) から秘密鍵のエクスポート - Web/DB プログラミング徹底解説
SSLサーバ証明書 : opensslで秘密鍵のパスフレーズを解除する方法 | DigiCert
ブロックチェーンの秘密鍵、生体認証で生成 日立が新技術 - ITmedia NEWS
applied-quantum-safe-security_J.pdf
Real World Crypto Symposium
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
整数多項式が有限個の素数しか生成しない場合 | yasuokaの日記 | スラド
Fadisさんのツイート: "RC4、最初にRC4と呼ばれる暗号を作ったRSAはアルゴリズムを公開していないけど等価な計算を行う方法が他所から公開されて、RSAはアルゴリズムを公開していないけどWebの標準の地位を確立して、RSAはアルゴリズムを公開していないけどこの暗号は弱いから使うのをやめよう、という話になってるの面白い"
メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー
高速な暗号実装のためにしてきたこと
ブロックチェーンは、技術としても未来像としても残念なものである | 上杉周作
虚数乗法論 (1):イントロ - tsujimotterのノートブック
虚数乗法論 (2):楕円曲線の由来 - tsujimotterのノートブック
Google、社内サービスに利用する暗号ライブラリ「Tink」をオープンソースに | OSDN Magazine
google/tink: Tink is a multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
ブロックチェーン系プロジェクトで着目される暗号技術
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
Adiantumによりローエンドのスマートフォンでディスク暗号化が可能に
暗号化したまま計算できる暗号技術とOSS開発による広がり
エンドツーエンド暗号化 - Wikipedia
Kazuho OkuさんはTwitterを使っています 「いい記事。ソルトはbruteforceに対しては効果薄いしソルト使ってても公開したらダメ。sha256の方が速いのは暗号通貨向けの最適化考えると納得感ある / https://t.co/5NxsRbCtFe」 / Twitter
メールアドレスをハッシュ化したものを公開してもよいのか - しまたろさんの掃き溜め
Kazuho OkuさんはTwitterを使っています 「ソルトは解析対象がN個あるときのコストをO(N)に引き上げるものだけど(その極端な差がrainbow table)、今回の話はNが小さい場合なので」 / Twitter
BLS署名の実装とその応用

CRYPTREC

CRYPTREC | トップページ
CRYPTREC - Wikipedia
電子行政:キーワード - CRYPTREC暗号リスト:ITpro
情報処理推進機構:情報セキュリティ : CRYPTREC
CRYPTRECとは|Cryptography Research and Evaluation Committees - 意味 / 定義 : IT用語辞典
Shigeki Ohtsuさんのツイート: "へぇ、CREPTRECも進めるのか。/ ポスト量子暗号の代表的な方式について調査を行っており、調査結果を2019年末までに公表予定。 / “耐量子計算機暗号の標準化動向” https://t.co/eQtZDVvuAT"
ref4_takagi.pdf
Makoto Kato ︎︎さんのツイート: "2年位前にCRYPTRECで出したSSLサーバー管理のPDFにGPKIとかの証明書を手動インストールする話を入れるかどうかをあの文書作ってる時議論したけど、そもそも手動で入れるってことを許可する自体セキュアじゃないって結論になって最終的に削除した"
Shigeki Ohtsuさんのツイート: "CRYPTRECはChaCha20だけじゃなくx25519(ECDHE, 253bits)も認めないのかぁ。こりゃOpenSSL-1.1.x系をそのまま導入するとガイドライン違反になっちゃうよ。https://t.co/wn8GVeavEy"
CRYPTREC | トピックス
Shigeki Ohtsuさんのツイート: "ちょっ、GPKI発行の証明書でサイト運営しているCRYPTRECさん、ガイドライン満たしてよw… "
Makoto Kato ︎︎さんのツイート: "私は、新しい版は関わってないですが、高木さんとか島岡さんとかも関わってなくなっているので、いろいろダメな感じになってますね。 https://t.co/kC7Xje31ks"
Makoto Kato ︎︎さんのツイート: "SSL設定ガイドラインの1.0のところはサーバー側の面倒なところって、高木さんが書いてたとかあるし、証明書のところって島岡さんとかだから、2.0がダメダメなのは、まぁあの新しい委員が時代背景わかってないだけですね。これ。 https://t.co/21erXOccXG"
SSL/TLS暗号設定ガイドライン
Shigeki Ohtsuさんのツイート: "そこまでダメ感は感じないんですが、幾つか気になる点があるので、今まとめています。Changelogがほとんど書いてなく、今回の改訂のせいなのかちょっとわからないのが辛いですが。… "
Makoto Kato ︎︎さんのツイート: "それよりもだな、CRYPTRECのサイトがGPKI使ってるけど、Baseline Requirementみたしてない(監査法人がまともに仕事してない)のは、MozillaでRejectされてるのでわかってるんだけど、それを使うのはいかがなものなかなって思ってる"
Makoto Kato ︎︎さんのツイート: "1.0を作る際、数年おきに更新するようにしたいと言ってた話がちゃんと実行されているのは素晴らしいのですが、今回はいろいろ突っ込みたいところがあるので、次を作る時はもう少し人材を選んだ方がいいのではとは思うんですよ… "
Makoto Kato ︎︎さんのツイート: "2018年にもなって、SSL3.0を優先するのが望ましいとか、それだめでしょ。SSL3.0も基本無効しかあり得ないと思うんだが。そんなクライアント使ってることが問題なのではと思うんだが。"
Shigeki Ohtsuさんのツイート: "次は「0-RTT抜きでTLS1.3使え、以上」になるので、人材はいらないのではw そしたらCame***も…(以下自粛)… "
Makoto Kato ︎︎さんのツイート: "https://t.co/9LR0nQ3YJQ を作る時も、いろんな理由にかこつけて、カメなんとか以外の国産暗号を排除してるだけにしか見えないから、まぁ。。。"
CRYPTREC | 注意喚起情報
ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応

FIPS

連邦情報処理標準 - Wikipedia
FIPS 140 - Wikipedia
用語解説辞典|【公式】NTTPC
FIPSとは|連邦情報処理標準|Federal Information Processing Standards - 意味 / 定義 : IT用語辞典
NIST.gov - Computer Security Division - Computer Security Resource Center
FIPS – アマゾン ウェブ サービス (AWS)
7594591200220899443さんのツイート: "そういう系の話でいうとFIPS 140-2にも似たような話がある。OpenSSLのFIPS認証はOpenSSLをアップデートしてしまうと無効になるため、新しいcypher suiteに移行するなどといったことができない。https://t.co/EBAVcoIQJM "Criticism" の項… https://t.co/IzBx4YNM7m"
FIPS 140 - Wikipedia
Shigeki OhtsuさんはTwitterを使っています: 「NISTからCurve25519/448とEdDSA(ed25519/448)のドラフトが出たぞ(SP 800-186, FIPS 186-5)。米国政府がdjbを認めることになるのはなんか象徴的だ。 https://t.co/p5YQ5OT8lp https://t.co/3fXKKMV8Ol」 / Twitter
FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC

ARIA

Shigeki Ohtsuさんのツイート: "韓国の暗号ARIA(RFC5794)がOpenSSLに入った。default不可。Oracle DBがOpenSSLを使うかららしい。GCM対応してないのでTLSでは使えません。 / “Implementation of the…” https://t.co/voIQNeRgPV"
Shigeki Ohtsuさんのツイート: "ARIAのベンチ取ったけどasm対応もしてないからめちゃ遅い。これ、ホント Oracle DBで使うのか? 単に調達要件対応のためだけかもしれないなぁ。"

特権分離

Kazuho's Weblog: Unix系OSの権限分離の変遷について(もしくはなぜ、アプリ単位の権限分離が求められるようになったか)
Kazuho OkuさんはTwitterを使っています: "blogged / “Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話” http://t.co/L69ZcPqcRM"
U+4E0A U+6797さんはTwitterを使っています: "Heartbleedの後 SSLの特権分離を速攻実装したの OpenBSDのrelaydなんだけど 言及されていないのか<neverbleed"

鍵交換

DHE

ディフィー・ヘルマン鍵共有 - Wikipedia
Fadisさんのツイート: "TLSの鍵交換はかつてはサーバ証明書にくっ付いた公開鍵を使ってRSAで行われていた。この方法には通信内容を丸ごと記録している第三者が居た場合、後から秘密鍵が漏れると通信内容が全部解読されるという問題があったが、そんな大掛かりな手を使う奴はいないだろうと思われていた。実際に現れるまでは"
Fadisさんのツイート: "で、その結果、教科書に書かれてるけどどこで使われているのか知らない物ランキング上位を狙えそうだったDiffie-Hellman鍵共有が「鍵共有の過程が見えていても鍵が分からない」という利点を買われて一躍TLSに欠かせないアルゴリズムになった"
FadisさんはTwitterを使っています: 「鍵共有に使う鍵は毎回変えないと後から秘密鍵拾ったマンに解読されるけど、鍵が変わると相手が本物かわからないから、相手を確認する公開鍵と共通鍵を作るための公開鍵が別で必要で、しかも両者の持ち主が同一である事が保証されなければならない。だから今日の多くの安全な通信路は2段階のDHを行う」 / Twitter
FadisさんはTwitterを使っています: 「という背景がわかるとWireGuardのアレが最高にcoolな通信プロトコルなのがわかる」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ DH(鍵交換)は一回でもう一回は署名とその検証かと」 / Twitter
FadisさんはTwitterを使っています: 「@kazuho そうですね。安全な通信路の定番TLSがその方式なのに「多くの安全な通信路」は大げさでした」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ ええ。というより、FSを実現するためには、長期鍵を暗号化に使ってはダメなんです」 / Twitter
FadisさんはTwitterを使っています: 「@kazuho 長期鍵は共通鍵の素の全てになっていてはいけませんが、共通鍵に至る過程の一部になることはできます。例えば長期鍵でDHしたFSでない通信路で一時鍵DHを行う事でFSは得られると思います」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ そのような例では、長期鍵で確立した通信路が生きている期間をひとつのセッションとして扱うように思いました」 / Twitter
angel as ㌵㌤の猫さんはTwitterを使っています: 「@fadis_ @kazuho DH+DHでFSを確保する実例は知りませんが、RSA暗号+RSA暗号であれば、SSHv1で使ってますね。 ※ただプロトコル自体に脆弱性があるのと、RSA短期鍵がどうしても使いづらいので、今実用にはならないでしょうが」 / Twitter

ECDHE(x25519)

楕円曲線上の離散対数問題に対するアプローチ(Baby-step giant-stepとPollard's rho algorithm) - sonickun.log
Pari/GPで楕円曲線離散対数を計算してみる - ももいろテクノロジー
楕円曲線暗号の超簡単な理論の紹介 - Qiita
楕円曲線ディフィー・ヘルマン鍵共有 - Wikipedia
WebCrypto APIでECDH鍵交換を用いた暗号化を使ってみる - Qiita
クラウド時代の暗号化技術論(3):鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性 (1/3) - @IT
暗号スイートの暗号強度と、公開鍵のビット数の設定、及びRSAとECDHEでサーバ負荷の比較 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
自堕落な技術者の日記 : ECDHE - livedoor Blog(ブログ)

認証

RSA

RSA

SageMathを使ってCoppersmith's Attackをやってみる - ももいろテクノロジー
plain RSAに対する攻撃手法を実装してみる - ももいろテクノロジー
RSAに対する適応的選択暗号文攻撃とパディング方式 - ももいろテクノロジー
Multi-prime RSAを復号してみる(Hack The Vote 2016 The Best RSA) - ももいろテクノロジー
RSA暗号運用でやってはいけない n のこと #ssmjp
Kazuho Okuさんのツイート: "良い。これならoaepとか特定のpadding推奨した方が良いのでは? / “RSA暗号運用でやってはいけない n のこと #ssmjp” https://t.co/fHDTsmoIFF"
Hironobu SUZUKIさんのツイート: "@knok gniibe先生は、RSAの計算時にあったサイドチャネルアタックの対応のために、計算コードを書き換えたのはその通り。ほぼそっくり入れ替えたんじゃないかな。しかもオリジナルより計算速度が上がったというオマケ付きで。"
www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2313-Ja.txt
Shigeki Ohtsuさんのツイート: "djb がやったのは libgcrypt のRSA実装に対するサイドチャネル攻撃(CVE-2017-7526)で’RSA自体を破ったわけじゃないよね。 https://t.co/bYB7ABLrDi"
Hideyuki Tanakaさんのツイート: "もっともらしい雑誌とかにも、スパコンは早晩時代遅れになる技術であるから、量子コンピューターじゃないと意味がないし、量子コンピューターができればRSAのあらゆる鍵は数秒で分解できてしまうから、今の暗号は意味をなさなくなるとか、ため息しか出ないクソ記事乗ってるし、どうすればいいのか。"
Hideyuki Tanakaさんのツイート: "てかそれを論外のクソ記事だと判断できる人がそんなにいないものなのか。それなのにそれを信用できる人が多いのはどうしてなんだ。世の中困難なことが多すぎる(´・_・`)"
Hideyuki Tanakaさんのツイート: "量子コンピューターができるのを早晩とかいう人にとっては数十年が早晩なんだねとか、今のRSA暗号のビット数何ビットあるかわかっとる?とかショアのアルゴリズムはビット数の3乗に比例する時間がかかることとか、わかっとる?とかさあ(´・_・`)"
Hideyuki Tanakaさんのツイート: "ゲート型量子コンピューター、そもそも数千ビットまでスケールできるのか自体わかってないじゃん。そりゃいつかはできるのかもしれんけど、少なくともブレイクスルーがまだまだ必要だろうし、ブレイクスルー待ちのものが「早晩」できるとかいうのはさすがに楽観的過ぎるわなあと。"
Rui Ueyamaさんのツイート: "お、RSAをよく理解してない実装のせいで中国のQQブラウザがまったくインセキュアになっているっていう事例紹介、今月の話か。暗号の授業はタイムリーで面白いな。 https://t.co/XD8HYHtrIF"
Shirouzu Hiroaki(白水啓章)さんのツイート: "RSAのオレオレ実装、20年近く前の初代MagicConnect実装でも似た話があったかも(笑) (多倍長演算も含めて、完全自作RSAだった時代。今はパブリックなSSL実装に移行しているはず) https://t.co/PNUXropPDM… https://t.co/QFuj7i1OqH"
RSA 暗号がようやく分かった気がしたのでまとめてみる - tsujimotterのノートブック
RSA公開鍵暗号アルゴリズムを理解する
RSAが公開鍵暗号アルゴリズムをパブリック・ドメインに | 日経 xTECH(クロステック)
RSA暗号運用でやってはいけない n のこと #ssmjp

ECDSA

Pari/GPでECDH鍵交換、ECDSA署名をやってみる - ももいろテクノロジー
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ECDSAは、nonce漏洩・再利用・低品質乱数で秘密鍵復元の可能性があるので、EdDSA/Ed25519を使いましょうという話。(Pythonコード例あり) yubikeyのRNGで、ECDSA用nonce 256bitのうち80bitが予測可能なバグとかすごいな、、、 https://t.co/GNUW9UPasS」 / Twitter
ECDSA: Handle with Care | Trail of Bits Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IPAでも2011年にECDSA+nonce問題のレポートあり。 ただこの時点での想定より、もっと積極的に「ECDSAは使わない方がいい」という印象あるな、、、 https://t.co/AZMQNh3KQ4」 / Twitter
情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそも、nonceが漏洩したらダメという条件ってECDSAくらいしか知らないなぁ…普通IVやnonceは再利用ダメだけど、公開前提なのが多い印象。」 / Twitter

Ed25519

sshでed25519鍵を使うようにした - @znz blog
OpenBSD、デジタル署名付きパッケージシステムに | マイナビニュース
signify - sign and verify
七誌さんのツイート: "暗号とか以前に楕円曲線は難し過ぎて取り付く島がないと思っていたけど、Edwards曲線は高校数学でも扱えるような素性の良いものだそうです。 https://t.co/UQ74WzUdnN"
Shigeki Ohtsuさんのツイート: "OpenSSLでed25519の実装が入りそう。現在curdleで仕様策定中のed25519署名の証明書サポートまで入るとは驚き。 / “WIP: Ed25519 support by snhenson · Pull Reque…” https://t.co/EOf2LUuFNU"
Shigeki Ohtsuさんのツイート: "OpenSSLに Ed25519 が入ったでござるよ。 https://t.co/rx8rbTnLjS"
Add Ed25519 algorithm. · openssl/openssl@06c6d05
Shigeki Ohtsuさんのツイート: "ハッシュ計算中に電圧変化をかけて異なる署名を出力させてEd25519を破る技か。よく考えつくよなぁ。 / “How to defeat Ed25519 and EdDSA using faults” https://t.co/OgPN1Ne6xJ"
How to defeat Ed25519 and EdDSA using faults
kudelskisecurity/EdDSA-fault-attack: Fault attack agaisnt EdDSA demonstrated on an Arduino Nano board, allowing for partial key recovery and fake signatures.
https://tools.ietf.org/rfc/rfc6979.txt
https://tools.ietf.org/rfc/rfc8032.txt
Shigeki Ohtsuさんのツイート: "乱数を使わないEdDSAのメリットが逆に狙われちゃってるのね。署名が決定的なのはやっぱり辛い部分もあるんか。"
Shigeki Ohtsuさんのツイート: "おぉ、 djbのcurve25519, curve448(RFC7748)がNIST標準として採用されるのか。 / “Transition Plans for Key Establishment Schemes using Pu…” https://t.co/J3WBy3fs22"
Fadisさんのツイート: "Curve25519は素数2^255-19を使う楕円曲線だからこう名付けられてるけど、この命名規則には19の部分が小さい整数でないと名前が長くなるという欠陥があって、2^448-2^224-1を使う楕円曲線は2^224-1を名前にそのまま書く事を断念してCurve448と名付けられた。結果Ed25519よりEd448の方が安全になった…"
Fadisさんのツイート: "Curve25519と同じ命名規則で書くとCurve448はCurve44826959946667150639794667015087019630673637144422540572481103610249215"
Fadisさんのツイート: "コードがでかいほどバグを作りやすくなるから、Curve25519を出来るだけ小さく実装してみたよ、という論文。読めるコードで18ツイート(英文でも140文字だった時代の論文なので1ツイート=140文字)、人間に厳しい書き方をすれば12ツイートで実装できた、としている https://t.co/A5aPGPNCl9"
Wesley_Janssen___4037332___Curve25519_in_18_tweets.pdf

SSH

RSA公開鍵のファイル形式とfingerprint - Qiita
SSH 鍵 - ArchWiki
ssh公開鍵認証方式で接続 | server-memo.net
Fadisさんのツイート: "OpenSSHが自前のchacha20-poly1305とed25519を使ってOpenSSLなしで動くようになったのはOpenSSLのHeartbleedがあった後で、一見するとアレがきっかけで独自で暗号アルゴリズムを実装したように見えるんだけど、よく見るとchacha20-poly1305がOpenSSHに実装されたの、それより前なんだよな"

楕円曲線暗号アルゴリズムを理解する
SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか? - GIGAZINE

対称暗号

AES

AES-NI

マスターIT/暗号技術:第3回 AES暗号化 - @IT
インテル® AES New Instructions (インテル® AES-NI) | iSUS
インテル® AES New Instructions およびインテル® セキュアキーによるインテル® データ・プロテクション・テクノロジー
AES-NI - Wikipedia

libtom/libtomcrypt: LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
kokke/tiny-AES128-C: Small portable AES128 in C
jhjin/OpenAES: OpenAES library exported from
AES implementations - Crypto Wiki - Wikia
Rijndael Encryption Algorithm
Poly1305-AES: a state-of-the-art message-authentication code
BRG Main SIte
BrianGladman/AES: AES code
License Library - Brian Gladman License
License Library - Brian Gladman Dual BSD-GPL
5100d_answer.pdf
Advanced Encryption Standard - Wikipedia
Shigeki Ohtsuさんのツイート: "GCM で使う Intel CPU命令 PCLMULQDQ です。 https://t.co/Brr9cwj375 #html5j_e"
CLMUL instruction set - Wikipedia
AESで不正な鍵で復号した時に何が起きるか - Qiita
「katagaitai CTF勉強会 - 関東|hard」の復習(脆弱なAES暗号の攻撃法) - Qiita
AESを使ってみる - Qiita
Rockridgeさんのツイート: "Fx56:AES-GCMアルゴリズムの処理パフォーマンスが、Mac版やLinux 32bit版、Intel AVXをサポートしない環境などで大幅に向上した。TLS暗号として頻繁に用いられるアルゴリズムだという。 / “Impro…” https://t.co/Ekkq7UG8RV"
Improving AES-GCM Performance | Mozilla Security Blog
Shigeki Ohtsuさんのツイート: "AESだけなら鍵長を増やせば対策できるがGCMが破られるのか。CCMならいけるが性能が出ないんだよなぁ。 / “量子コンピュータが共通鍵暗号の安全性に与える影響” https://t.co/0pHvQw8txT"
量子コンピュータが共通鍵暗号の安全性に与える影響
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔、AES128よりAES256の方が攻撃しやすいパターンがある、という話題が出ていたが、結局、AES256の方が多数派になりつつある印象。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いや、少なくともwebサイト暗号化に関してはそんなことは無かった。 google/amazon/facebookなどは、TLS1.3に対応しつつ、AES128GCMを使っている様子。」 / Twitter
Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (1/2)
Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (2/2)

ChaCha20

Kazuho OkuさんはTwitterを使っています: "「暗号計算にかかる時間が鍵によって異なってはならない」ってのセキュリティ要件ですよ"
GoogleがTLSでの採用を提唱している共通鍵暗号方式「ChaCha」についてまとめた - sonickun.log
RFC 7539 - ChaCha20 and Poly1305 for IETF Protocols
Salsa20 - Wikipedia
Shigeki OhtsuさんはTwitterを使っています: "@voluntas AES-NIが使えない環境でこそメリットが出ます。仕組みが単純なのでAES-GCMと同等かそれ以上の速度が出ます。BoringSSLだとARM用のasmがあるので3倍ぐらい速いです。アンドロイドChromeはChaCha20を優先してCipher出してます。"
Nginxでchacha20 poly1305を有効にする - ASnoKaze blog
FadisさんはTwitterを使っています 「昨日カーネル/VMの懇親会でchacha20(salsa20)がpaperの段階でARMを意識してる話したけど、実際のpaper読み返してみたらARMとは明言してなくて、乗算が値によってサイクル数が変わるプロセッサがあって、そういうところに実装するときタイミングリークを防ぐのが辛いから乗算やだって言ってた」 / Twitter

3DESの扱いが変わってきた - 生存報告
Microsoft、IE11とMicrosoft EdgeのRC4暗号を計画より4か月遅れて無効化 | スラド セキュリティ
Kazuho OkuさんはTwitterを使っています 「暗号ライブラリ自前実装してはならぬ論よくわからないというか、暗号アルゴリズムを自作してはいけない、は正しいし、公開鍵暗号の安全な自前実装が難しいのもそうなんだけど、ブロック暗号はそんなに難しくないと思うのよね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho それはkazuhoさんだから言えるセリフで、僕はたとえ正しいアルゴリズムが目の前にあっても、side channel attackその他に耐性のある実装をできる自信はないです…^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda 最近の共通鍵暗号、テーブルも分岐も使わなくてすむように設計されてると思うんですよね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho 安全だと判断できる十分な知識を自分が持っているという確信がないので躊躇してしまいます。 データの値に依存して実行時間の変わる演算を行っていないかは判断できそうな気はするんですが、値によって消費電力が観測可能なレベルで微妙に変わったりしないかはそもそも知らないですし…」 / Twitter
成瀬さんはTwitterを使っています 「「ブロック暗号は簡単!」って言いながらECBモードで NULパディングする未来しか見えない」 / Twitter

メッセージ認証

Poly1305

Poly1305 - Wikipedia
Poly1305-AES: a state-of-the-art message-authentication code
floodyberry/poly1305-donna: Implementations of a fast Message-Authentication Code

メッセージ認証符号 - Wikipedia
HMAC - Wikipedia

ハッシュ

SHA-1

Google Online Security Blog: Announcing the first SHA1 collision
GoogleとCWI、SHA-1衝突に成功、ハッシュ値が同じ2つのPDFを公開 -INTERNET Watch
Googleら、暗号学的ハッシュ関数SHA-1の衝突攻撃に成功 〜異なるファイルに同一ハッシュを持たせてなりすまし - PC Watch
GoogleのSHA-1のはなし
SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」 | スラド セキュリティ
【翻訳】ウェブの世界における SHA-1 の廃止 - Mozilla Security Blog 日本語版
IIJ Security Diary: SHAttered attack (SHA-1コリジョン発見)
Rockridgeさんのツイート: "Firefox 51以降、SHA-1証明書を用いた場合は安全でない接続と判断される。この設定が適用されるユーザーは、リリース後に段階を追って増えていく。ただし企業ユーザーがルート証明書をインポートした場合は例外となる。 / “P…” https://t.co/WQd5TRabbr"
Google Developers Japan: SHA1 が初めて衝突
GitHub Enterprise、SHA-1衝突を実行不能にするパッチを適用へ -INTERNET Watch
Kazuho Okuさんのツイート: "sha1のコリジョンって、いったいどんだけデータためてたんだろ。2^64とかでもまだ1/2^40くらいの確率じゃないの? truncateしてたわけじゃないよね? データが同一だったわけでもないよね?"
Kazuho Okuさんのツイート: "で、2^60個のsha1ハッシュ値の間でコリジョンを検出するためには、2^64バイト以上のストレージが必要なわけで"
Kazuho Okuさんのツイート: "spares bit array使えばもうちょっと小さくなるかな"
Shigeki Ohtsuさんのツイート: "あーぁ、SHA-1のChosen-Prefix衝突攻撃がおよそ1000万円以下程度のコストで可能になったとの論文。これでSHA-1証明書は完全に終わりです。 / “Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1” https://t.co/vpoSwrW7K8"
Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1
Shigeki Ohtsuさんのツイート: "あっ論文には詳しく書いていないですが2^63.4まで絞れたようです。https://t.co/TCcgMzyFPY > With some additional improvements that we are currently working on, we evaluate that one can find a chosen-prefix collision for SHA-1 with a budget of less than 100K US$… https://t.co/igcIjofPh6"
Archive

SHA-2

Shigeki Ohtsuさんのツイート: "SHA-256 の衝突って f(x) = x の固定点のやつじゃないのかい?"
This is not a vulnerability, or worlds first · Issue #1 · laie/WorldsFirstSha2Vulnerability
アニメーションで感覚的にハッシュ関数「SHA-256」の算出過程を理解できる「SHA-256 Animation」 - GIGAZINE

SHA-3

Shigeki Ohtsuさんのツイート: "OpenSSLに SHA3 が来るのね。 AVX2/AVX512やらarmv4/v8など各種CPUのasm対応済 。どの程度性能が出るのかな。 / “Wire SHA3 to EVP. by dot-asm · Pull Req…” https://t.co/MJA0tXRlaR"
Wire SHA3 to EVP. by dot-asm · Pull Request #3943 · openssl/openssl

本の虫: GPGPU時代のハッシュアルゴリズム
Kazuho Okuさんのツイート: "電話番号入れたら登録済かどうかわかるんだろうし、10^9とか総当たりで解けちゃうレベルでは? > 「暗号鍵と共に不可逆暗号化(ハッシュ化)して保存されている為、運営者サイドでも電話番号はわかりません」 / “キャンセルDB” https://t.co/nLrEmtmS9F"
Kazuho Okuさんのツイート: "今はAESNIよりも、TLS 1.3等で多用されてるHKDFがIntel SHA Extensionsでどれだけ高速化されるかが気になってる"
HKDF - Wikipedia
HMACを利用した安全なAPIキーの送受信 | yohgaki's blog
ハッシュ(HMAC)を使って弱い鍵を強い鍵に変える方法 | yohgaki's blog
暗号学的ハッシュを安全に使うには? – yohgaki's blog
SHA_Performance_Review_In_UEFI: UEFI SHA1/SHA256 perf tests with C (and asm) | Firmware Security
ドッグさんはTwitterを使っています: 「暗号学的ハッシュ関数 BLAKE3.MD5, SHA-*, BLAKE2 より遥かに高速で,MD5 や SHA-1 と違い安全.任意の並列度(マルチコアや SIMD)で計算できる.SHA-2 や BLAKE2 と違い,1つのアルゴリズムで全ての platform で高いパフォーマンスが出せる | 'BLAKE3' https://t.co/6iN7yDMtI8」 / Twitter
BLAKE3-team/BLAKE3: The BLAKE3 cryptographic hash function

Key Transparency

Google Developers Japan: 透過性によるセキュリティ - Key Transparency
google/keytransparency: A transparent and secure way to look up public keys.

KMIP

クラウド利用における複数拠点の課題と「KMIP」という潮流 - IT、IT製品の情報なら【キーマンズネット】
shindo.pdf
OASIS Key Management Interoperability Protocol (KMIP) TC | OASIS
Key Management Interoperability Protocol - Wikipedia
IBM Knowledge Center - Key Management Interoperability Protocol を使用した鍵管理
自堕落な技術者の日記 : OASIS KMIP 鍵管理プロトコル - livedoor Blog(ブログ)
ニュース - HP,RSA,IBMなど,暗号鍵管理仕様「KMIP」を標準化団体OASISに提出:ITpro

mcl

herumi/mcl
ペアリング暗号ライブラリmclを使ってみる - Qiita
ペアリングの双線形性をmclを用いて確認する - Qiita
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
加法準同型暗号を用いて暗号化したまま画像のエッジ検出をする - Qiita

HACL*

Rockridgeさんのツイート: "Firefox 57には暗号プリミティブが公式に検証済みであるHACL*暗号ライブラリが導入される。これによりTLSの鍵交換に用いられるCurve25519アルゴリズムをサポートし、セキュリティの強化と高速化の両立が可能になった。 https://t.co/oQQFfUwXLN"
Verified cryptography for Firefox 57 | Mozilla Security Blog
mitls/hacl-star: HACL*, a formally verified cryptographic library written in F*

zk-SNARK

Rui UeyamaさんはTwitterを使っています: 「暗号通貨の授業かなり興味深くなってきた。ゼロ知識証明を使って、公開情報から送金記録の正しさ(だけ)を誰でも確認できるのに、誰が誰にいくら送ったのかは全然わからないZCashというものの仕組みを学ぶみたいな。こういうのはちょっと痺れる。」 / Twitter
herumiさんはTwitterを使っています: 「@rui314 zk-SNARKですね。数年前の提案者たちによる実装では、私のライブラリが使われていたりしました。 https://t.co/ym3QOVCgrK 和書だと今年発売された岡本龍明さんの『現代暗号の誕生と発展』が詳しいです。」 / Twitter
scipr-lab/libsnark: C++ library for zkSNARKs
Rui UeyamaさんはTwitterを使っています: 「@herumi まさにそうです。ここらへん、概念だけは知っていたようなものが見事にうまく組み合わされて、一見矛盾しているような要件をちゃんと満たしているシステムが作られていてかなり楽しいですね。あとnon-interactiveなゼロ知識証明というのがあるのはそもそも知りませんでしたが・・。」 / Twitter
herumiさんはTwitterを使っています: 「@rui314 パズルみたいで楽しいですね。 私の去年の勉強会の資料 https://t.co/Jb3ngtSGmm やOsukeさんの https://t.co/YuJyVeVOa3 なども参考になるかもしれません。」 / Twitter
Privacy on Blockchain - Speaker Deck

blog

How Firefox Sync keeps your secrets if TLS fails – Mozilla Tech – Medium
RSA 秘密鍵/公開鍵ファイルのフォーマット - bearmini's blog
本の虫: GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール
「月を入力すると日を返す多項式」と中国剰余定理 - tsujimotterのノートブック
認証付き暗号の鍵利用上限について - ASnoKaze blog

News

グーグルが耐量子計算機暗号の実験を開始 - ZDNet Japan
世界で誰にも解読されていない暗号問題を初めて解読! | 株式会社KDDI研究所
NICT NEWS
量子コンピュータでも解読が困難な新暗号方式が国内で開発 - PC Watch
NTT、世界最高性能の耐量子公開鍵暗号を実現する新手法 ~CCA安全性を付与して量子コンピュータでも改竄不可能に - PC Watch
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「既に把握済のNSA「…NEC許すまじ」とか思ってたりして。 https://t.co/acgT9LbZFp ちなみに、OCB2は初めて知った…後で勉強。 ECB/CBC/OFB/CFB までは古典、定番がCBCだったが脆弱報告が増えるにつれCTRに交代、さらに進化したGCMがメジャーに、という印象。 あとファイル暗号専用でXTXあたり。」 / Twitter
NEC、共通鍵暗号化方式OCB2に脆弱性を発見 - 週刊アスキー

POSTD

JOSEは、絶対に避けるべき悪い標準規格である | プログラミング | POSTD

GitHub

LoupVaillant/Monocypher: An easy to use, easy to deploy crypto library
B-Con/crypto-algorithms: Basic implementations of standard cryptography algorithms, like AES and SHA-1.
skeeto/enchive: Encrypted personal archives
Keccak Team
gvanas/KeccakTools: KeccakTools is a set of C++ classes that can help analyze the Keccak sponge function family, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, please refer to our website: http://keccak.noekeon.org/

Qiita

準同型暗号の最前線1(入門編) - Qiita
準同型暗号の最前線2(原理編) - Qiita
準同型暗号の最前線3(理論編) - Qiita
2つの公開鍵暗号(公開鍵暗号の基礎知識) - Qiita

Twitter

@herumi

herumiさんのツイート: "1回だけ乗算可能な加法準同型暗号の論文「Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly」がASIACCS 2018に採択された。 https://t.co/Vaz2msN9dd 解説と実装はこちら https://t.co/2Ou4m5sh5G https://t.co/C58377CxZj"
ACM ASIACCS2018 Program – ASIACCS 2018
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
she-wasm | Two-level homomorphic encryption for Node.js by WebAssembly
herumiさんのツイート: ".@hikalium 帰り話した暗号化したままテーブル引きのデモはこちら。https://t.co/ONiAYWLRBD 数字をいれて[問い合わせる]で入力値を暗号化してサーバに送り、サーバは暗号化したまま対応する桁の円周率のテーブル引きをして暗号文を返し、クライアントでそれを復号します。https://t.co/y8dpLaZcOO"
紛失通信デモ
herumiさんのツイート: "CSS2018最優秀デモンストレーション賞受賞しました。ありがとうございます。 デモの一つ、紛失通信による円周率100万桁の問い合わせのソースコードはこちら。 https://t.co/dsWf1WuJkQ https://t.co/xZSQP3DBsn"
herumi/ot-by-l2he: Oblivious Transfer demo by L2-HE
herumiさんのツイート: "CSS2018の発表資料「レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明」を公開しました。 https://t.co/6nO9tikJiY https://t.co/GCHTSvNEht"
herumiさんのツイート: "今年のラボユースは暗号系3人とOS系一人担当。 AESを一から実装したい人には有限体や拡大体の解説などから始めました。もう一人は楕円曲線暗号をやりたいので射影座標やC++の解説など。最後は完全準同型暗号を実装したいガチな方。格子暗号は実装したことないので私も一緒に勉強させてもらおう。"
herumiさんはTwitterを使っています: 「SCIS2020 2C3 「ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用」の発表資料を置きました。 https://t.co/bmJIlvcEsu Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts https://t.co/62904XwYbX」 / Twitter
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
Cryptology ePrint Archive: Report 2019/1233 - Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts

@jovi0608

Shigeki Ohtsuさんのツイート: "Googleによる耐量子コンピュータの鍵交換暗号方式 CECPQ1が本格実験開始。 / “Google Online Security Blog: Experimenting with Post-Quantum Cryptogr…” https://t.co/I6quQhtuQU"
Shigeki Ohtsuさんのツイート: "予想通りGoogleは CECPQ2 に djb の NTRU Prime を使う予定か。IP周りの問題は解消してるのかな。"
Shigeki Ohtsuさんのツイート: "おぉ!n=60のLWEの格子暗号が解読されたか。60〜40までの殿堂入りは全部このチーム。GoogleのNewHopeはring-LWEでn=1024、将来的にどうなるか。 / “世界で誰にも解読されていない暗号問題を初めて解読…” https://t.co/gX9ujnCI6r"
Shigeki Ohtsuさんのツイート: "EdDSA証明書を規定する仕様(curdle-pkix)がIESG承認されました。これでTLS1.2におけるDJB三部作(ChaCha20-Poly1305, X25519, Ed25519)の完成です。 https://t.co/5thG1tuXUP"
[Curdle] Protocol Action: 'Algorithm Identifiers for Ed25519, Ed448, X25519 and X448 for use in the Internet X.509 Public Key Infrastructure' to Proposed Standard (draft-ietf-curdle-pkix-10.txt)
Shigeki Ohtsuさんのツイート: "TLSより先にOpenPGP,S/MIMEでCBC/CFBがやられちゃったのかぁ。 / “EFAIL” https://t.co/IOJMsvjvCH"
EFAIL
Shigeki Ohtsuさんのツイート: "S/MIME、簡単に署名削除できちゃうって意味ないやん。CBCで偽造されても文句言えないわ。 "Every S/MIME signature can easily be removed from the multipart/signed mail body" https://t.co/QCgDUHRb0P"
efail-attack-paper.pdf
Shigeki Ohtsuさんのツイート: "GnuPGPはMDC(Modification Detection Code Packet)による完全性チェック機能があるけど、ちゃんとエラーチェックしてなかったり、パケット型を完全性確保のないやつに変えられたりできちゃうと。圧縮機能が入っている分S/MIMEより平文取得が難しいと。"
Shigeki Ohtsuさんのツイート: "最終的にはAES-SIVを使うとかちゃんと認証付き暗号をサポートするような仕様にしなさいと。まぁ真っ当な流れだけど、これからどうするんだろう。"
Shigeki Ohtsuさんのツイート: "10年以上前にAES-GCMをCMSで使うRFC5084が発行されていたのに、S/MIMEで使うような動きはなかったと、はぁ。 https://t.co/C6E6hp1wtg"
OpenPGPとS/MIMEに脆弱性、暗号化メールを平文で取得可能に - INTERNET Watch
暗号化メールの内容が平文で漏洩する“EFAIL”脆弱性、欧州の研究者グループが発表 - 窓の杜
PGPとS/MIMEによる暗号化メールに、Efail攻撃に対する脆弱性が見つかる
Shigeki Ohtsuさんのツイート: "X25519はECDH(E)の鍵交換でed25519はEdDSAの署名。curdle-pkixで規定されたばかりのEdDSA証明書が出回らない以上EdDSAをガイドラインで使えるようにと求めてないのだが。あえて言及を避けているのか、本当に理解していないのか… https://t.co/SkM6IS342p https://t.co/2KaFKlD3Cj"
Makoto Kato ︎︎さんのツイート: "CRYPTRECはNISTを参考にする組織なので、NISTのお墨付きがあればあのCRYPTRECのリストに入るけど、EdDSAってNIST的にお墨付きつけたんでしたっけ?EdDSAの背景がNISTが信用できないというところからはいったし。 (最近暗号関係追っかけてないから知らない)"
Makoto Kato ︎︎さんのツイート: "HTTP/2、TLS1.3の時代になるんだから、そろそろ (NTTへの配慮があるにしろ) Camelliaをあの設定ガイドに入れるもはどうかなぁとは思ってはいる。ハードウェアで最適化できているものではないしね"
Shigeki Ohtsuさんのツイート: "近い内に出るNIST SP 800-186で採用される予定です。https://t.co/WpfOswyv4j 今TLS関連のNIST更新はTLS1.3のRFC発行待ち状態な感じです。… "
Makoto Kato ︎︎さんのツイート: "なるほど。それだったら、おそらく2019年 or 2020年のCRYPTRECの推奨リストにおそらく含まれることになるので、次?のTLSサーバー設定ガイドラインに入るんじゃないですかね。神田さん次第か… "
Shigeki Ohtsuさんのツイート: "EdDSA証明書を発行するCAがないので特にガイドラインに入っていなくても問題ないと思います。RSA-PSSの証明書もまだ全然発行されていないし。CRYPTRECは署名方式だけ評価して楕円曲線自体の評価をせず、中途半端にNISTを参考にしているからこうなるわけで。… https://t.co/mY9RcOScf7"
Shigeki OhtsuさんはTwitterを使っています: 「openssl ciphersでTLS1.3のCCMがリストされない理由は属性がNON_DEFAULTに指定されているから(あまり使われていないしそもそも性能悪い)。明示的にオプション指定で登録すれば表示されます。https://t.co/to3sMOLdJC / “SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/T…” https://t.co/VjT17vo5ck」 / Twitter
SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/TLSのお話 〜 2回目 〜 TLS1.3 HTTP/2 のお話 | さくらのナレッジ
Shigeki OhtsuさんはTwitterを使っています: 「@voluntas ストリーム処理ができないのでGCMやPoly1305より性能悪いんす。当初TLS1.3のcipherから外れていたんですがAEADなのに仲間外れはアカンということで入れられました。無線通信ではCCMが結構使われているようですね。」 / Twitter
Shigeki OhtsuさんはTwitterを使っています: 「@voluntas wikipedia見ただけですが、WPA2とかBluetoothLEに使われているようです。 https://t.co/OyutxMruhx 理由はよくわかりませんが、GCMより単純なのでLow Deviceでもちゃんと実装できるからじゃないですかねぇ。」 / Twitter
CCM mode - Wikipedia

@fadis_

Fadisさんのツイート: "SPDYはTLSの圧縮を使っていたが、HTTP/2ではこの機能の使用は禁止され、TLS 1.3では圧縮が廃止された。ユーザが任意のデータをコンテンツに埋められる場合、圧縮後のサイズから暗号化されたコンテンツの内容が予測できる為である https://t.co/BFGVHuK4Lx"
CVE - CVE-2012-4929
Fadisさんのツイート: "「圧縮後のサイズで何圧縮したかバレるぞ」と「圧縮に要した時間で何圧縮したかバレるぞ」は暗号化と圧縮が一緒に出てくる状況で簡単に踏むから常に気に掛けておきたい"
Fadisさんのツイート: "気が付いたらブラウザのサンドボックスでx86バイナリを動かす技術の事じゃなくてナウい手法を実装した暗号ライブラリの事になっていたNaClさん"
Fadisさんのツイート: "EFAIL: PGP等で暗号化されたメールを経路上で悪意ある第三者が改竄できる時に、暗号化されたパートの上下に「<img src="ほげほげ/」と「">」を加えてmultipart/mixedで合体させるメールに改竄すると、受信者が暗号化されたパートを復号した結果に上下のパートをくっ付けて出来たURLにアクセスしてくる"
Fadisさんのツイート: "更にEFAILではOpenPGPがCBC modeを使っていて、しかも先頭のブロックが常にContent-type: multipart/signedである事を利用して、暗号化されたメッセージに<img src="を挿入できるCBC gadgetを作る。こちらの方法の場合mixedの結合が雑でないクライアントでも復号したメッセージを攻撃者に送ってしまう"
Fadisさんのツイート: "暗号を効果的に使うのは難しいなぁ"
Fadisさんのツイート: "RFC7693「BLAKE2は特別なHMAC関数を使わずにHMAC出来る」→HMAC1号 RFC5246「TLSでHMACする時はSHA-256以上の強度のハッシュをHMAC関数に通す事」 TLSの実装「仕方ないからBLAKE2をHMAC関数に通すよ」→HMAC2号 問題: TLSと無関係な規格がBLAKE2でHMACと言っている場合、その実装はどちらの事か"
Fadisさんのツイート: "暗号屋さんの論文、 右辺と左辺のバイト列を結合する っていう意味の演算子として || がよく登場するんだけど、よく脳内で勝手にlogical orと解釈されて3行くらい読み進めたところで型が合わなくなって ??? ってなる"
Fadisさんのツイート: "WireGuardの作者がLinuxカーネルに新しい暗号API Zincを提案している。曰く、既存のカーネルの暗号APIは高レイヤー過ぎて特定の暗号技術を部品として使いたい場合に使い辛いから、よりプリミティブでコンポーザブルな暗号APIを作った、とのこと https://t.co/zezc1YHowb"
Zinc: The New Crypto Library Being Worked On As Part Of WireGuard - Phoronix
Fadisさんのツイート: "オリジナルのWireGuardはカーネルのcrypto/ガン無視で独自で暗号を実装してるから、バニラカーネルに入れるのにあたって、なぜカーネルの標準の暗号APIを使わないのかという部分に説明が必要になったんだろうな"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "「楕円曲線暗号の鍵長に512bitがなく521bitがある理由」 メルセンヌ素数だと演算量が少なく、2^512付近だと2^521-1が該当、という話。 RSAで公開鍵の指数を2^16+1にすることで、べき乗の演算量を減らす工夫を思い出した。(2進数で1になっている桁だけ計算すれば良い) https://t.co/sP7bZfbInB"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、RSAの公開鍵指数で、2^16+1 = 65537 以外の実装ってあるのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "共通鍵暗号のCTRモードだと、暗号部のみ必要で復号部は不要…なのでHashで共通鍵暗号が作れる。 大昔、Pythonに共通鍵Libが無く、sha1+CTRを使った共通鍵暗号を作ったことがあるが、お話しにならないくらい遅かった(笑) ただ、xxHashに128bitが出来ると、AES-CTRとどちらが速くなるか興味がある。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「curve25519-sha256 と curve25519-sha256@libssh.org って、何が違うのだっけ…? https://t.co/pEbps6fjm0」 / Twitter
sshd_config(5) - Linux manual page
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「openssl ファイル暗号化」で検索すると、AESに鍵をそのまま渡すパターンばかりだったが、実用的には PBKDF2等を使った方が良さそう。 (公開鍵を指定するのも良いけれど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「WindowsのCNG(Cryptography API Next Generation)だと、AESのブロックモードはCTRが無くGCMが使えるみたいなのだけど、最後のブロックを捨てれば同等になるのかな…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(あとCTRとGCMだとカウンタが1つずれてるのを意識したほうが良さそう)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近はAES-NIとかハードウェアサポートで、下手なハッシュ系の乱数ストリームより、AESの方が速かったりするのだよなぁ。 (xxHash3 とはさらに高速だけど、これは非暗号学的)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号モードの GCM/CTR は、暗号も復号もベースとなる暗号は「暗号化ルーチン」しか使わない(=乱数ストリームとして使う、疑似ワンタイムパッド)。 GCM/CTR のみの使用を想定した、AESより高速&高セキュアな暗号方式の研究はあるのかな…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CNGじゃないと、AES-NI使ってくれないのだよな、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AESをリファレンスC言語実装からCNG(bcrypt)に変えると、約8倍高速化。(256MB/s -&gt; 2GB/s。1GB領域に対して) (AES-NI効果だが、ECB呼び出し+自前CTR計算のためこの程度。GCM呼び出しだと3GB/sに)」 / Twitter

@kazuho

Kazuho OkuさんはTwitterを使っています 「SSLShader の crypto offload 部分、OSSだったのか。しかしスループットはともかくレイテンシみると使いづらそう https://t.co/Jt3OdGdPK0 https://t.co/X31ZrhIlsS」 / Twitter
lwakefield/libgpucrypto
SSLShader - GPU-accelerated SSL Proxy
Kazuho OkuさんはTwitterを使っています 「約10年前のデータなので、レイテンシが1/10になってれば、ありなのかもしれないけど」 / Twitter

Rockridgeさんのツイート: "民主・共和両党の議員で構成される米国議会暗号化ワーキンググループは、2016年末の報告の中で、「暗号化を弱めるいかなる手段も国益に反する」と述べた。FBIが求めるバックドアには反対ということ。 / “Bipartisan Con…” https://t.co/58wxxHcs2E"
Rockridgeさんのツイート: "Firefoxアカウントではパスワードを元に認証キーと暗号キーを生成し、認証キーのみをサーバに送る。ユーザーのデータは暗号キーにより暗号化済みであり、認証キーが漏洩してもデータの復号はできない。 / “How Firefox S…” https://t.co/h8cvuv9QSi"
黒木玄 Gen Kurokiさんのツイート: "#数楽 楕円曲線暗号に応用されているEdwards曲線の加法公式はヤコビの楕円函数(cd t, sn t)=(cn t/dn t, sn t)の加法公式に一致する。ヤコビさんは約200年後に自分の名のついた楕円函数の加法公式がこんな形で応用されるとは思って無かっただろう。"
Rui Ueyamaさんのツイート: "授業で教授がAES暗号の仕組みを解説しているのだが、実装するの簡単じゃんと思っても、素人実装は絶対に微妙な穴ができるから、授業を受ける前に決して自分では実装しないと誓ってくれと生徒に言っているw"
Rui Ueyamaさんのツイート: "たぶんいろいろ噛み合ってないと思いますが、AESに対するサイドチャネル攻撃とその対策法などを知り尽くした人でなければ実際にセキュアなAES実装を書くのは難しいという意味です。たとえばdjbのこの論文ではタイミング攻撃を考慮してない昔のAES実装を使ったSSLを破ってます。https://t.co/4gSg0LGhIY… https://t.co/gw1A9ZwYr9"
Rui Ueyamaさんのツイート: "というわけでAESの仕組みを学ぶのはよいことだけど、実装はいろいろ落とし穴があるので、自分で書くよりセキュリティ専門家のレビューを経た信頼できるコードを使いましょう、という話。実際問題RFCとかに載っているコードをそのままコピペして使えばいいので、再実装したい場面もほぼないと思います。… https://t.co/UgnJxStz6h"
hsjoihs@数情物化語さんのツイート: "SHA-1について調べていたら面白い記事を見つけた(署名の検証に使っている暗号学的ハッシュをstrncmpで比較してしまっているため、160ビットの署名の大半が情報量が捨てられてしまう可能性があるというもの) https://t.co/Q7kjJnaZuJ… https://t.co/2QYu8Br7V9"
debugmo.de :: Thank you, Datel.
Makoto Kato ︎︎さんのツイート: "opensslなんて使わずにAESのコードを直書すればわかるけど、ThunderXのAESのインストラクション、むっちゃ遅い。Cortex-A53だと15倍近く速くなるのに、ThunderXなんて6倍くらいにしかならないから。"
Makoto Kato ︎︎さんのツイート: "SHA2とかも同様でThunderXはCortex-Aシリーズに比べると遅いんだよね。。。"
suzakiさんのツイート: "面白かった。 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 https://t.co/fAIJFugaDL パラメータに計算の効率が非常によい素数2^(521 -1)を使いたかったためです. ある論文には,521bitのほうが半分以下の256bitの時よりも計算速度が速くなっている... ルセンヌ素数を使うことによる効率化...… https://t.co/flUI3XOAjd"
楕円曲線暗号の鍵長に512bitがなく521bitがある理由 | maidsphere
Ryo SuzukiさんはTwitterを使っています 「cryptographically secure が要求される用途なら Salsa / ChaCha で、non-secure な MT19937 や Xorshift からの置き換えかつ 2^128〜2^1024 の周期で十分なら xoshiro 系が短くて速い。」 / Twitter

乱数

スレッドセーフ

キノコになりたい🍄さんはTwitterを使っています 「スレッドセーフな乱数生成アルゴリズムとかあるん C++の&lt;random&gt;に存在したりしてる・・・?」 / Twitter
yohさんはTwitterを使っています 「@onihusube9 ぐろーばる・みゅーてっくすで保護した単一(グローバル変数)の乱数生成器を持てばよいというお話です?」 / Twitter
ドッグさんはTwitterを使っています 「@yohhoy @onihusube9 もしくはスレッドごとに乱数生成器を持てば良いだけな気も.mt19937ar でもせいぜい内部状態 2kb とかそんなんですし」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp @onihusube9 よほど特殊な事情がない限り、スレッドごとに乱数生成器期を持つべきでしょうねw 疑似乱数なのでシードを意図的にずらす/真の乱数を使わないと、全スレッドで同一乱数列になってしまう点だけ注意が必要かなと。」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp @onihusube9 https://t.co/3pyzXC4iZn みたいなことを過去に書いてました。」 / Twitter
スレッドセーフという幻想と現実 - yohhoyの日記(別館)
てらモス♋️さんはTwitterを使っています 「決定論的な乱数生成機を複数のスレッドで独立にエントロピーで初期化しても、あんまり大量に生成すると同じ列に入ってしまう可能性がちょっと上がるわけで、その可能性もちゃんと消した独立な列を取れる方が望ましいという用途はある」 / Twitter
Keigo NitadoriさんはTwitterを使っています 「@yohhoy @Linda_pp @onihusube9 単にseedを変えるだけでは誕生日のパラドックス的な衝突うが起こりやすいですよね。周期をスレッド数の2乗で割ったぐらいが十分に大きければいいんでしょうか?」 / Twitter
yohさんはTwitterを使っています 「疑似乱数こわちか :;(∩´﹏`∩);:」 / Twitter

人間向けの補正

R. ShioyaさんはTwitterを使っています 「今日やったアルゴリズム入門の講義では疑似乱数がテーマで、感想ながめてたら「RTA で出てくる乱数調整の意味がやっとわかりました!」てあったのだけど、あれは確かに話題として面白くて取り上げるといいのかもしれない」 / Twitter
R. ShioyaさんはTwitterを使っています 「今日の講義では一様乱数は人間が感じるランダムさとはちょっと違うとか、ゲーム会社にいる後輩から聞いたガチャの乱数に補正入れたり入れなかったりする話もしたんだけど、スク○ニはきちんとしてると言う話をしたのにテーブルで今揉めてるのでこれも来週やったら面白いかもしれん」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 人間が乱数作ると、偏りっぽい並びやキリのいい数字が、過度に弾かれる的な話ですかね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとiPodのランダム再生にクレーム入った逸話とかもありましたね。 (ランダム再生では、本当のランダムを使ってはダメと)」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu はい,そんな感じの話です.ちゃんとした乱数だと直感よりも偏った(ように見える)連続が発生することはままあるので,それはそう言うものなのだとか,ゲームのガチャでは極端に不幸な人が一定数は出るので補正を入れているところもあるとかそんな話をしました.」 / Twitter

seed 固定

ゆうだいさんはTwitterを使っています 「乱数ってseed固定したら,ほかの環境でも結果が再現されるの?」 / Twitter
Willy 🌧米国大学教員さんはTwitterを使っています 「@physics303 詳しい事は分からないですが、「Rでseedを指定して乱数発生させて結果を提出」と言う宿題を出すと例年、みんな同じ結果を出してきます。」 / Twitter
StoneDotさんはTwitterを使っています 「@physics303 乱数生成アルゴリズムとシードが一致すれば、再現するはず。 ただ、浮動小数点数の計算結果が環境によって変化する可能性があるので、乱数振る振らないが、浮動小数点数の計算結果に依存する場合は再現しない可能性もある」 / Twitter
ゆうだいさんはTwitterを使っています 「@StoneDot ありがとう.初歩的な質問で恐縮なんだけど,その理屈で行くと,乱数シードを固定すると,同じPCを再起動しても,基本的には同じ乱数が生成されるよね? (np.random.seed(0) とかにしてnp.random.uniform(-1,1,10)とかすることを想定しているから乱数生成アルゴリズムは同じはず)」 / Twitter
StoneDotさんはTwitterを使っています 「@physics303 Yes です。再起動後も生成される乱数は維持されます。 /dev/urandom みたいな外部エントロピー使わない乱数ではない限り同じ結果になりますー」 / Twitter
Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~ - Qiita

Twitter

ぐらふぃさんのツイート: "胡散臭いけどやばい論文です https://t.co/92Mb6ZGmT4 Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine ニューラルネットに π や eといった数学定数とか Mersenne Twister の次の桁を予測させると統計的に優位に当たってる"
Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine
Kazuho OkuさんはTwitterを使っています: 「CSPRNG(暗号論的擬似乱数生成器)じゃない乱数生成器はこうやってシードされてたりするから、セキュリティに関係する要件で使ってはいけないし、使わない限り問題ない。あるいは自分で urandom 等CSPRNGの値を注入して初期化してもよい https://t.co/kMa4KmGta9」 / Twitter
せり (zeriyoshi)さんはTwitterを使っています: 「はい、 PHP のメルセンヌ・ツイスタの固定化に成功しました syscall time, gettimeofday, getpid の結果が同一の場合必ず同じ乱数が生成されます https://t.co/7RTh6Oqu3W」 / Twitter
songmuさんはTwitterを使っています: 「ゲームとかだと、乱数生成器作成時に使ったシードを記録しておけば、同じ状況を制限できるので便利、とかありますね。ソシャゲ開発していたときにやっていて、調査などに使っていた。」 / Twitter
songmuさんはTwitterを使っています: 「「なんでバトルの結果がこうなってるんですか?」みたいな問い合わせに対して、手元で再現させて検証してから返答していた」 / Twitter
songmuさんはTwitterを使っています: 「制限じゃなくて「再現」!」 / Twitter
渋川よしきさんはTwitterを使っています: 「@songmu 僕もやってました。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「LAMP 系のマイナーな環境だと高精度のタイマもpidもちゃんと取れなくて、ランダムに生成されるはずのセッションIDがたまに衝突するとか...」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「余りをとるのは常套手段だけど割り切れないとわずかに歪むし、素朴にやり直すと最大回数がboundできないけど、やり直さないで完全に一様にする方法はあるんだろうか。ないとしたら、不可能であることはどう証明(というかそもそも定式化?)するんだろう。(よく知られている解があったらすみません) https://t.co/JEBMpWwZPL」 / Twitter
ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています: 「例えば00000~99999の範囲で一様乱数を発生させてくれる機械があって、0~99の乱数がほしいとき、下2桁を見ればいい。ところが0~74みたいな中途半端な範囲の乱数がほしかったら?「下2桁が75~99のときはやり直す」というのもアリだが、5桁を全部見て75で割った余りを取っても、おおむね一様になる。」 / Twitter
Yutaka OIWAさんはTwitterを使っています: 「@esumii ・ダイス振りn回以下のプロセスは、ぴったりn回のプロセスで表現可能(結果決まってからも余計に振る) ・k面ダイスn回のプロセスでの各出力の発生確率は k ** -n の倍数 ・あとは、nがいくつでも均等にならないことを帰納法なり代数なりで証明 でいいんじゃないでしょうか。」 / Twitter
Yutaka OIWAさんはTwitterを使っています: 「@esumii あとこの件は、適切な割り算さえ入れれば、1回の試行で決定できる確率を 1/2超にできる。 そうすると、試行回数の期待値は2未満になるので、乱数がマトモなら、分布が歪むリスクを避けてまでループを避ける理由はない。 各回を独立試行にする限り、繰返し回数(処理時間)と出力値の相関もない。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「実務的な話で言うと、実行時間のずれあるいは確率分布のずれを無視できる範囲にしてくれれば良くて、つまり、ダイスを一定回数振ってから剰余とる形が良さそう」 / Twitter
SAKASHITA HirosiさんはTwitterを使っています: 「PHPで使われている疑似乱数関数mt_randについて、2つの出力値を得ることで残り全てが予測できる手法が編み出された模様です(中身はあまり読んでませんが…)。この関数で使われているMT法が暗号学的に十分セキュアでないことは聞いてましたが、これはびっくり。 https://t.co/Caj1nOK2Be」 / Twitter
The Hacker NewsさんはTwitterを使っています: 「Breaking PHP's mt_rand() with 2 values and no bruteforce https://t.co/UwPLKeAuB9 Given two mt_rand() output values separated by 226 others, it is possible to compute, without any brute-force, the original seed, and therefore obtain any previous or subsequent mt_rand() output. https://t.co/EzxaraBgN6」 / Twitter
Breaking PHP's mt_rand() with 2 values and no bruteforce
Ryo SuzukiさんはTwitterを使っています 「疑似乱数生成器 Xorshift の現代版、「Xoshiro」シリーズの C++ ラッパーライブラリのプロジェクトを公開しました。C++20 の標準乱数生成インタフェースに対応、ゲーム開発や研究プロジェクトに便利です (MIT ライセンス) https://t.co/JITqLE1thj」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「xoshiro256++ はメモリ消費 32 バイトで周期 2^256-1 の乱数列を生成、BigCrush 検定に合格する統計的品質。 一方 C++ 標準の std::mt19937 はメモリ消費 5,000 バイト(!)で周期 2^19937-1, BigCrush の一部に失敗する。 Xoshiro 開発者の解説記事 https://t.co/fH4AOGExdD」 / Twitter
xoshiro/xoroshiro generators and the PRNG shootout
Reputeless/Xoshiro-cpp: Header-only Xoshiro/Xoroshiro PRNG wrapper library for modern C++ (C++17/C++20)

RdRand - Wikipedia, the free encyclopedia
セキュアキー対応インテル® データ・プロテクション・テクノロジー: Gazzang 社のケーススタディー | iSUS
Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート
Xorshift - Wikipedia
Xorshift - Wikipedia, the free encyclopedia
Lagged Fibonacci 法 - Wikipedia
Mersenne Twisterの出力を推測してみる - ももいろテクノロジー
高梨陣平さんはTwitterを使っています: "V8で採用された新Math.random向けのアルゴリズムの元となったアルゴリズムxorshift32が3行のシフト演算しか行っていないのに疑似乱数として良い性質を持っていることの解説 https://t.co/H33lXhFaLc"
Z3Pyでxorshift128+の出力を推測してみる - ももいろテクノロジー
Z3Pyでglibc rand(3)の出力を推測してみる - ももいろテクノロジー
Fadisさんのツイート: "CVE-2017-11671: gccがRDSEEDしたあとアプリケーションがキャリーフラグを読む前にキャリーフラグを書き換える命令を挟んできて実際には乱数取れてないのに取れた気分になってしまう不具合 https://t.co/JcvhFdbTyp"
oss-sec: CVE-2017-11671: GCC generates incorrect code for RDRAND/RDSEED intrinsics
最終回 発見プログラミング:増井ラボノート コロンブス日和|gihyo.jp … 技術評論社
乱数生成器とゲームと諜報活動の話|Rui Ueyama|note
十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama|note
Kazuho Okuさんのツイート: "PRNGの乱数性をどうプログラム内で担保するかについての僕の意見は https://t.co/crYMKCmrU0 のスレに記したとおりです"
Kazuho Okuさんのツイート: "@__gfx__ それなら現実問題として、ランダム性を仮定しつつ、仮定が破れた場合にはassertion failureにする、くらいがバランスよさそう"
Rui Ueyamaさんのツイート: "@kazuho 分散システムですぐにコリジョンが確認できない場合はどうしますか。"
メルセンヌ・ツイスタ - Wikipedia
メルセンヌ数 - Wikipedia
リュカ–レーマー・テストの証明 - Wikipedia
GIMPS - Wikipedia
「史上最大の素数」約2年ぶりに更新、50番目のメルセンヌ素数で桁数は2324万9425桁 - GIGAZINE

素因数分解

LGPL

GNU Multi-Precision Library - Wikipedia
素数判定プログラム2 C言語 GMPライブラリ : Yuki Nakata's Blog
素数判定プログラム3 C言語GMPライブラリ : Yuki Nakata's Blog
ecm.gforge.inria.fr

単純な素因数分解アルゴリズムを実装してみる - ももいろテクノロジー
Msieveを使って大きな数を素因数分解してみる - ももいろテクノロジー
Msieve download | SourceForge.net
Msieve 日本語情報トップページ - OSDN
Msieve の使い方
素因数分解プログラム msieve
OpenSSLとPythonでRSA暗号の原理を知る - ももいろテクノロジー
wbhart/bsdnt: BSD Licensed Bignum Library
YAFUを使って大きな数を素因数分解してみる - ももいろテクノロジー
フロイドの循環検出法 - Wikipedia
ポラード・ロー素因数分解法 - Wikipedia

BASE64

Base64 - Wikipedia
BASE64エンコード - UIC
base64ってなんぞ??理解のために実装してみた - Qiita
Base64のデコード - オンラインBase64のデコーダ
BASE64とは - 意味 / 定義 / 解説 / 説明 : IT用語辞典
Base64 Decode and Encode - Online

DigiCert サーバ証明書技術情報
CA/ブラウザフォーラムで可決された「Baseline Requirements ver1.0」の和訳版公開およびGMOグローバルサイン社の対応について - GMOインターネット株式会社
WebTrust(ウェブトラスト)について | SSL・電子証明書ならGMOグローバルサイン
opensslコマンドで証明書情報を確認したい。 | SSL・電子証明書ならGMOグローバルサイン
Webサイトに“安心”をプラス―知らないでは済まされないSSLサーバ証明書の仕組み:一般記事|gihyo.jp … 技術評論社
改めて知ろう、SSLサーバー証明書とは?(第二回) - さくらのナレッジ
AM03_shimaoka.pdf
www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2314-Ja.txt
AWSにおけるSSL証明書の基本的な取扱い | 外道父の匠
Usage Statistics and Market Share of SSL Certificate Authorities for Websites, August 2017
Chrome58になると自己署名の証明書がエラーになるので、OpenSSLに詳しくなった話
Google Developers Japan: キーストアの鍵の構成証明
Symantec→DigiCertでSSL/TLS証明書はどうなる? 日本国内にも認証局構築へ、IoT機器市場も見据え - INTERNET Watch
23,000 HTTPS certs will be axed in next 24 hours after private keys leak • The Register
自堕落な技術者の日記 : 最近の証明書の話題(3): デジタル証明書形式の電子委任状のプロファイルに関する考察 - livedoor Blog(ブログ)
DigiCertによるプライベートアドレスの逆引き名の証明書誤発行 - ASnoKaze blog
高木浩光@自宅の日記 - NEDOのサイトで4つのサプライズ, PKIよくある勘違い(0)「サーバ証明書は単なる暗号鍵であり認証局の署名は実在証明にすぎない」
情報セキュリティ入門 - PKI(前編)---公開鍵を安全にやり取りする:ITpro
crt.sh | Certificate Search
自堕落な技術者の日記 : HPKP(HTTP Public Key Pinning)公開鍵ピニングについて考える - livedoor Blog(ブログ)
自堕落な技術者の日記 : X.509証明書の識別名などで使われるMulti-valued RDNとjsrsasignのサポートについて - livedoor Blog(ブログ)
自堕落な技術者の日記 : 最近の証明書の話題(2): CloudFlare DNS 1.1.1.1サイトのIPv6証明書 - livedoor Blog(ブログ)
インターネット10分講座:RFC5952 -IPv6アドレスの推奨表記 - JPNIC
SSL/TLS証明書、その特性について – カスペルスキー公式ブログ
HTTPSが安全とは限らない | カスペルスキー公式ブログ
余分な証明書を悪用した、ドメインへの中間者攻撃とDoS攻撃 | カスペルスキー公式ブログ
本の虫: 健全なP2Pネットワークの信用のためには全利用者の参加が必須であるという話
オレオレ証明書を使い続ける上場企業をまとめてみた - megamouthの葬列
Windows CryptoAPIの脆弱性によるECC証明書の偽造(CVE-2020-0601) - ぼちぼち日記
CVE-2020-0601でわかるMSのTLS証明書検証プロセスについて
図解 X.509 証明書 - Qiita
インターネットをよりロバストに。RPKIはじめます | IIJ Engineers Blog
uint256_tさんはTwitterを使っています 「素数判定, miller rabin くらいしか知らないなあ」 / Twitter
ほまれちゃん☃️さんはTwitterを使っています 「@uint256_t AKS法、フェルマーテスト、ソロベイ・シュトラッセンテスト等々色々ありますね(自分はミラーラビンとAKS法しか実装したことがない)」 / Twitter
パスワード解析などに使われる「レインボーテーブル」の仕組みとは? - GIGAZINE

LibreSSL

OSDN

「Heartbleed」セキュリティ問題を受け、OpenBSDがOpenSSLフォークの「LibreSSL」を開発 | OSDN Magazine
OpenBSD、OpenSSLからフォークした「LibreSSL 2.0」のPortable版をリリース | OSDN Magazine
SSLv3やSHA-0サポートを削除した「LibreSSL 2.3」リリース | OSDN Magazine
TLS/SSLのオープンソース実装「LibreSSL 2.4」リリース | OSDN Magazine
開発版LibreSSLの新バージョン「LibreSSL 2.5」リリース、iOSを新たにサポート | OSDN Magazine

Qiita

OpenSSL ライブラリを使ったハッシュ生成、暗号化(RSA, AES)、復号処理(RSA, AES)、署名生成(RSA)、署名検証(RSA) - Qiita
LibreSSL の意義 - Qiita
LibreSSL の現在(2018年2月時点) - Qiita
libtls で TLS 通信プログラミング(クライアント編) - Qiita
LibreSSL を Visual Studio でビルドする - Qiita

Wikipedia

LibreSSL - Wikipedia
LibreSSL - Wikipedia, the free encyclopedia
Comparison of TLS implementations - Wikipedia, the free encyclopedia

libressl-portable/portable: LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.
Index of /pub/OpenBSD/LibreSSL/
libressl-portable/openbsd: Source code pulled from OpenBSD for LibreSSL - this includes most of the library and supporting code. The place to contribute to this code is via the OpenBSD CVS tree.
OpenSSL
OpenSSL BIGNUM
OpenSSLをSSL/TLSクライアントとして使ってみる | Siguniang's Blog
Kazuho's Weblog: SSL/TLSライブラリの正しい使い方(もしくは、コモンネームの検証について)
Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話
第55回 LibreSSL 2.4.0登場:BSD界隈四方山話|gihyo.jp … 技術評論社
OpenSSLに代わるLibreSSL, 最初の30日間
「LibreSSL 2.6.4」リリース | Think IT(シンクイット)
LibreSSL ‐ 通信用語の基礎知識
h2o/neverbleed: privilege separation engine for OpenSSL / LibreSSL
Shigeki Ohtsuさんのツイート: "OpenSSLを始め幅広い暗号ライブラリのECDSA実装に対するサイドチャネル攻撃(CVE-2018-0495)が公開されました。メモリアクセスの測定と格子アルゴリズムを組み合わせ同一ホスト上のVMから秘密鍵を取得できるとのこと。 https://t.co/CZAy0bgL6Z"
Technical Advisory: "ROHNP"- Key Extraction Side Channel in Multiple Crypto Libraries
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl の AES-NI 実装は Perlコードからasm(.S)を吐くような構造らしい。へぇ。 https://t.co/OeNXKbTVMu」 / Twitter
openssl/crypto/aes/asm at master · openssl/openssl

ルート証明書

Mozilla

Mozilla

Mozilla Security Blog

January 2018 CA Communication | Mozilla Security Blog
Distrust of Symantec TLS Certificates | Mozilla Security Blog
Root Store Policy Updated | Mozilla Security Blog
Update on the Distrust of Symantec TLS Certificates | Mozilla Security Blog
【翻訳】CA Certificate Policy バージョン 2.4 リリース - Mozilla Security Blog 日本語版
September 2018 CA Communication | Mozilla Security Blog
Why Does Mozilla Maintain Our Own Root Certificate Store? | Mozilla Security Blog
Mozilla’s Common CA Database (CCADB) promotes Transparency and Collaboration | Mozilla Security Blog

MozillaWiki

CA:Information checklist - MozillaWiki
CA/BR Audit Guidance - MozillaWiki
NSS:Root certs - MozillaWiki
CA/Certificate Change Requests - MozillaWiki

Network Security Services | MDN
mozilla mozilla/security/nss/lib/ckfw/builtins/certdata.txt
CA Certificate Policy バージョン 2.4 リリース – mozilla-japan – Medium
Let's Encrypt Root to be Trusted by Mozilla - Let's Encrypt - Free SSL/TLS Certificates
Mozilla CA Policy 2.4 Published | Hacking for Christ
Mozilla Root Store Policy — Mozilla
pkipolicy/policy.md at 2.4 · mozilla/pkipolicy
Mozilla Root Store Policy — Mozilla

FreeBSD

FreeBSDのSSLのルート証明書のパッケージ ca_root_nss
/pub/FreeBSD/ports/amd64/packages-8.4-release/security/ のインデックス

Japan GPKI

政府認証基盤(GPKI)のホームページ
地方公共団体組織認証基盤(LGPKI)
高木浩光@自宅の日記 - 民間ブランドが行政機関には無益なのならVeriSign独占化を避けるべき, LGPKI Application CAに将来はあるのか
Rockridgeさんのツイート: "Firefox 54で政府認証基盤(GPKI)のルート証明書は削除されたが、政府認証基盤アプリケーション認証局2ルート証明書は現在も追加に向けた手続が進行中だ。参照:https://t.co/a9yqP3Hocz / “1268…” https://t.co/6AePdDrowg"
Rockridgeさんのツイート: "Mozillaは、政府認証基盤アプリケーション認証局2ルート証明書を受け入れるかどうか審査中だが、終盤になって雲行きが怪しくなってきた。いったん要請を拒絶して、手続をやり直すべきとの意見が出てきている。 / “Japan GPK…” https://t.co/EwwapLY2Jo"
Makoto Kato ︎︎さんのツイート: ""The Japanese Government PKI may submit a newly generated root and key-pair for inclusion, and this submission can be made using the existing bug" https://t.co/8wmmF2EaHa"
Makoto Kato ︎︎さんのツイート: "新しいCA Root作れば通りそうではあるので、担当の方と予算次第ですかね。今後は"
Shigeki Ohtsuさんのツイート: "GPKIは、やっぱりMozillaで却下かぁ。https://t.co/6FF31r6Pzk この返事が致命的だったような気がする。素直にlintエラーの証明書を直ちに全部revokeすると返事していれば状況変わったかもしれないのに。"
Shigeki Ohtsuさんのツイート: "Japan GPKI Root Renewal Request https://t.co/JPTlbVx0Xc 5年前にルート証明書署名、4年前にアセスメント、色々問題有り2017年1月に修正完了。その間ずっと証明書を発行だけど規約不適合でまだ有効な証明書多数。いっその事最初からやり直しにすべき(今ここ)"
Shigeki Ohtsuさんのツイート: "GPKI側から2017以前の証明書をrevokeさせるから判断変えてもらえるかと。さっさと失効させてから交渉したほうがいいのにと思うのは私だけ? https://t.co/NfupIEQTxM"
Makoto Kato ︎︎さんのツイート: "LGPKIのルート証明書がRoot 4になってるのを今日知った。というか(もうかかわってないけど)CRYPTRECからの質問状で「Mozillaに申請中」って嘘の返答を言ってたような団体なので、LGPKIは信用してないけどね"
Makoto Kato ︎︎さんのツイート: "CA Browser Forum的にはWebTrust for CAじゃなくて、WebTrust for BRがほぼ必須になるんだけど、for CAとってますって書いてる自体、ホントLGPKIは分かってない"
Makoto Kato ︎︎さんのツイート: "bugzillaみればわかるとは思うけど、(今もめてる)GPKIでさえfor CAレベルからfor BRレベルにするのに1年以上かかったので、まぁね。。。"
Makoto Kato ︎︎さんのツイート: "CAプログラムはどういう団体であっても平等であるべきだよねと。どこの会社のCAプログラムとは言わないけどね"
Makoto Kato ︎︎さんのツイート: "MozillaのCAプログラム通らないってことはAndroidにGPKIのルートCAは入らないってことだからね。わかってない人おおそうだけど。Googleがポリシー変えれば別だけど"
GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
スラきちさんのツイート: "寝る前にGPKI@Mozillaのその後を見たが、「あなたCA要件4.9.1.1(9)満たせないって分かったから結論代わりません」と見事に蹴られてる。 該当要件は「4.9.1.1 CAは以下の状態になった証明書を24時間以内に失効させなければならない…(9)CP/CPS等に従わなくなった証明書」 行政庁で24時間は無理ゲー…?"
dynamis (でゅなみす)さんのツイート: "GPKI終わったのか。 担当者が悪いと言うよりは認証局としての最低要件を満たせるだけの(英語力、セキュリティ意識、業界動向の理解及び権限を持つ)スタッフを確保できない運用計画と予算で立ち上げた計画側の責任でしょうね。 https://t.co/J48F8sYh3w"
dynamis (でゅなみす)さんのツイート: "そう言えばHTTPサイトで証明書配ってるお笑い認証局も医療従事者向けに運用されてるな。 それに比べればGPKIはまだマシかも知れんが、今の日本のエンジニア軽視姿勢でまともな認証局運用できる日はこなさそうですね。"
Makoto Kato ︎︎さんのツイート: "外野向けに見える部分で色々GPKIのこと書かれているのは色々読んだけど、まぁ自分が担当者だったとしたらみんなCAプログラムパスできる自信あるのかなぁと"
Makoto Kato ︎︎さんのツイート: "個人的に言えば、担当者がというよりも予算ですね、あれの場合。なので担当者の問題というより政治の問題かと思う。特に国なので透明性が必要だからプロセスに時間もかかる"
Makoto Kato ︎︎さんのツイート: "なので総務省はWoTとかIoTとかに予算割り振る前にe-GOVに対してちゃんと予算振り分けて欲しかったというのが、内情を知る人間としてのGPKI の総括ですね"
Makoto Kato ︎︎さんのツイート: "行政管理局がもしまだやる気であれば、Application Root 3作って、WebTrust for BR通してって話になるし、また入札必要だろうからまぁ1年コースかと"
Makoto Kato ︎︎さんのツイート: "https://t.co/Vzbdv3znvY 記者さんってなんでWindowsな視点しかないんだろ。Mobileの視点がないと見え方が違うと思うんだ"
Firefoxが政府認証基盤のルート証明書を認めず、「ユーザーのセキュリティを害する」 | 日経 xTECH(クロステック)
KIMATA RobertHisasiさんのツイート: "MozillaがGPKIを認めなかった件。調べれば調べるほど「Microsoftは認めんなよ」感が"
Makoto Kato ︎︎さんのツイート: "GPKIについてみんな勘違いしているのは、昔 GPKI Application Root 1はちゃんとMozilla CA RootとしてApprovalされた (そのときの基準では)。その後SHA256なGPKI Application Root 2で置き換えるためにあのBugがあって、それがWontfixになったってこと"
Makoto Kato ︎︎さんのツイート: "ここ数年、CAに関してはとんでもないインシデントが多かったために許可基準が非常に上がってる"
Makoto Kato ︎︎さんのツイート: "MozillaのCA Policyのはバージョン上がるために基準が上がってってるんだけど、Microsoftは政府案件だといろいろ違うらしいってことがあるっぽくて、まぁ日本マイクロソフトの社長室かパブセクかはしらないけど、まぁ彼らが絡むとセキュアなんてないのではって思ってる"
Rockridgeさんのツイート: "Mozillaは、米国時間の2018年2月27日、政府認証基盤(GPKI)アプリケーション認証局2ルート証明書を受け入れないことを決めた。参照:https://t.co/vwlvWwY553 / “870185 - Add Re…” https://t.co/PDYdOhA7OK"

korea GPKI

Makoto Kato ︎︎さんのツイート: "みなさん知らないかもしれないけど、お隣の韓国のGPKIもRejectされてるからな https://t.co/SP67i880hG https://t.co/2Wm1XvRxJr"
Makoto Kato ︎︎さんのツイート: "韓国のGPKI、*.or.krを発行してたりして面白すぎなんですが、MSやChrome的にはなんのお咎めがないんですよねー https://t.co/mH0VpgmlZR"

Twitter

Rockridgeさんのツイート: "Mozillaのルートストアポリシーがバージョン2.5に改訂され、認証機関はネットワークのセキュリティに関する業界のベストプラクティスを実践することが求められるようになった。 / “Mozilla Releases Versio…” https://t.co/umzXruNNlY"
Mozilla Releases Version 2.5 of Root Store Policy | Mozilla Security Blog
Rockridgeさんのツイート: "Let’s Encryptのルートキー(ISRG Root X1)がFirefox 50においてデフォルトで信頼されることになる見込み。既存の認証局であるIdenTrustと提携することで早期に実現した。参照:… https://t.co/gsLgM6iXRG"
Jxckさんのツイート: "Firefox50 に先行して Let's Encrypt 自身の証明書が入るらしい。でもルートとして正式に認定されてない証明書入れるのってどうなんだろう。。 / “Let's Encrypt Root to be Trust…” https://t.co/SDEaymqosm"
Rockridgeさんのツイート: "Fx57:ルートCAモジュールの読み込みが非同期化された。起動速度の向上が期待できる。参照:https://t.co/ePDJWKjLST / “1372656 - load loadable roots on a backgr…” https://t.co/6qf6ul3j0P"
the root CA module now loads asynchronously - Google グループ
Rockridgeさんのツイート: "DigiCertがSymantecの認証機関ビジネスを買収したことで自動的に信用が回復することはなく、Mozillaが示す各種懸念事項に解決策を示す必要があるという話。 / “Statement on DigiCert’s Pr…” https://t.co/GHyUJDKv7u"
Rockridgeさんのツイート: "Fx59:セコム電子認証サービスのルート証明書が削除された。Fx58で無効化済み。参照:https://t.co/Qzdr85qfxm https://t.co/4GCbSbwSax / “1410544 - Remove "S…” https://t.co/hmSrIm3Avi"
Rockridgeさんのツイート: "「Firefox の 今後の信頼無効化措置 は Google Chrome と歩調を合わせており、GeoTrust、RapidSSL、Thawte、Verisign といったすべての Symantec ブランドに適用されます。」 https://t.co/CxvYlcqJ8l"
Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
Rockridgeさんのツイート: "Symantecから発行された証明書の信頼無効化措置は、Firefox Nightly 60で有効化されたが、Betaチャンネルへの投入については、Chromeの動向を見てから決める模様。 / “1442075 - Enforc…” https://t.co/JdDEcKKseM"
Rockridgeさんのツイート: "Mozillaの調査によれば、Symantecから発行された証明書の信頼無効化措置により、現在、トップ100万サイトのうちの約1%で、接続が安全でない旨のメッセージが出て閲覧が一時的に遮断される状況となっている。 / “Dist…” https://t.co/UAJGQLjgJm"
Distrust of Symantec TLS Certificates | Mozilla Security Blog
Rockridgeさんのツイート: "Mozillaの調べによると、Symantecの証明書を排除した場合、上位1万のWebサイトでエラーが出るケースは、2018年2月23日時点では299件だったが、同年3月16日時点では86件にまで減少した。 / “TLS Can…” https://t.co/F1vYvkNJR9"
Makoto Kato ︎︎さんのツイート: "Korean GPKIもなんかいろいろやらかしてる https://t.co/dLa69TsKdO https://t.co/IQrWNwChU9"
Rockridgeさんのツイート: "Fx63:Mac版でもsecurity.enterprise_roots.enabledをtrueに設定すると、OS側で信頼されたルート証明書を利用できるようになった。 / “1300420 - macOS (Mac OS X)…” https://t.co/v3NLtXSyqq"
Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、Symantecから発行されたすべての既存TLSサーバ証明書への信頼が取り消された。2018年10月23日にはリリース版でも同様の措置が執られる。参照:… https://t.co/297FL5Ltx5"

Overview of WebTrust Services | Chartered Professional Accountants of Canada
Principles and Criteria | Chartered Professional Accountants of Canada
Baseline Requirements Documents - CAB Forum
Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
Mozilla、Symantec証明書の信頼を段階的に削除 ~具体的なスケジュールをアナウンス - 窓の杜
10月公開の「Firefox 63」、シマンテック発行の証明書を完全に無効化へ--モジラが警告 - ZDNet Japan
「Firefox 63」でSymantec発行のTLS証明書が無効に ~トップ100万サイトの3.5%に影響 - 窓の杜

MS

Microsoft Trusted Root Program Requirements - TechNet Articles - United States (English) - TechNet Wiki
Microsoft 信頼されたルート証明書プログラム:証明機関の監査要件
より信頼できる証明書利用環境へ向けて~ Internet Explorer 11 SmartScreen 証明書評価 - 日本のセキュリティチーム - Site Home - TechNet Blogs
Rockridgeさんのツイート: "2018年7月末、Let's Encryptのルート証明書がMicrosoftのルート証明書プログラムにおいて信頼されるに至った。既にGoogle/Apple/Mozilla/Oracle/Blackberryからは信頼済みだとい… https://t.co/XUWFTtfkHq"
幼女 @mine02c4@mstdn.jpさんのツイート: "理屈上はDNSのレスポンスを書き換えて画面を返す用のサーバーのIPにすれば警告画面表示はHTTPでできる。これは普通の話。 でもですね、相手は日本政府なんですよ。彼らには「Windowsに信頼されたルート認証局」というのを持っているので、TLS証明書を発行できる立場にいます。"
ふたば@四葉技研さんのツイート: "政府による通信の監視で 通信速度が遅くなったらキレる"
tkrさんのツイート: "政府であろうと改ざんされてないことの証明なんだから認証局持ってること悪用したらだめでしょ。。"
Shigeki OhtsuさんはTwitterを使っています: 「Microsoftのルート証明書がMozillaに申請され最終レビュー段階に。Googleに続いてブラウザベンダが認証局を兼ねるとは。 / “Googleグループ” https://t.co/h3V9HC1sKd」 / Twitter
Shigeki OhtsuさんはTwitterを使っています: 「Windowsには以前から当然入っていたけど、Mozillaに入れば ca-certificate に入るからAndroidやNodeでも使えるようになるのよね。」 / Twitter

Apple

Root Certificate Program - Apple

Google

Google、自社向けのルート認証局「Google Trust Services」を開設 -INTERNET Watch
Root Certificate Policy - The Chromium Projects
Google Online Security Blog: Distrust of the Symantec PKI: Immediate action needed by site operators
旧Symantec系SSL/TLS証明書、3月15日以降順次、Google Chromeで失効 - INTERNET Watch
Rockridgeさんのツイート: "Google Chromeの開発チームがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除する方針を表明。Extended Validation(EV)のステータスは無視され、Chrome 59から64まで… https://t.co/hC19kG6VAy"
Google ChromeでSymantecが発行したSSL証明書の有効期限短縮やEVステータス無効化が提案される | スラド セキュリティ
Symantec発行のSSL/TLS証明書、Google Chromeで段階的な期限短縮案 -INTERNET Watch
Symantecが再びGoogleの信頼を失った件についてのメモ - Technically, technophobic.
Google Developers Japan: Symantec の PKI の無効化について: 要対応確認
GoogleとMozillaが独裁国家の認証するルート証明書をブロックすると発表 - GIGAZINE

Amazon

Shigeki Ohtsuさんのツイート: "うわぁ、Amazon Root CAがの4種(RSA/ECC)がFirefoxに登録されるわ。EV発行も 可能だ。 現在無料のACMから本格的なAmazon認証局サービスの提供に向かうのか。強いなぁ。 / “NSS 3.28.1…” https://t.co/YZ0MlfZPUT"
NSS 3.28.1 release notes - Mozilla | MDN
Shigeki Ohtsuさんのツイート: "Amazon Trust Services という別会社がAmazon Root CAを運用するのね。 https://t.co/eVYDVS10L0"
Amazon Trust Services LLC

Wget - きまぐれ手記
Certificate Authority Certificates
JVNVU#99936709: Savitech 製 USB オーディオドライバがルート CA 証明書を許可なくインストールする問題
渋川よしきさんのツイート: "CertUtil.exe -viewstore ROOTで、信頼されたルート証明書一覧を取り込みたいのだけど、GUIウインドウが立ち上がってしまう"
渋川よしきさんのツイート: "-viewstoreじゃなくて-storeならコンソールに出るっぽいが・・・日本語か・・・"
渋川よしきさんのツイート: "CertUtil.exeで-storeで保存されている証明書類を書き出しても30個ぐらいしかない。Macだとシステムのルート証明書で176個ある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ESETをはじめインターネット防御を謳うソフトは、自前ルート証明書をPCにインストールしてhttpsの中身を監視するんですよね。 万一ESET側がクラッカーの手に落ちると、安全なhttpsサーバ相手でも被害を受ける可能性が出るという…ESETを信用するか、httpsサーバを信用するか?というジレンマに(笑)… https://t.co/THV4HtvHkx"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "GPKIは大変なことになってるけど、一方LGPKIはセコムすることになって、自治体にはインターネット側でも使いやすくなって朗報。 / “総合行政ネットワーク No. 185 1 第四次LGPKI移行の背景と その概要  第四次L…” https://t.co/36TNZprspT"
LGWAN-H3003.pdf
自堕落な技術者の日記 : 最近の証明書の話題(1) 韓国政府PKIのマズいワイルドカード証明書発行 - livedoor Blog(ブログ)
Kazuho Okuさんのツイート: "想定された挙動のはずです。例えばウェブブラウザは、ユーザ定義ルート証明書を検出した場合は HPKP を無視します… "
Vさんのツイート: "ローカルで MITM やるのありえないと思うんだけど、そう思うの自分だけ?"
Kazuho Okuさんのツイート: "アンチウイルス以外にもペアレンタルコントロール、コンプライアンス上の理由等によって通信のモニタリングが求められるケースはあるし、それはエンドポイント内でAPIを提供していく方向だと理解してる。現状のMITMはプロトコル実装の品質と硬直化の問題があるのでry"
Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々
古いAndroidスマホで2021年9月以降、一部サイトが閲覧不能に - PC Watch

クロスルート証明書

Kazuho Okuさんのツイート: "新しいルート証明書が普及するまで使われるクロスルート証明書では? より長い鍵長のルート証明書へ移行する際にも使われてきた伝統ある技術かと / “自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - lived…” https://t.co/LvNTjMaIIo"
自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - livedoor Blog(ブログ)
[EV SSL] クロスルートとは何ですか。 | SSL・電子証明書ならGMOグローバルサイン
クロスルート証明書について | Symantec
クロスルート設定用証明書の設定について、どのような対応が必要でしょうか? | Symantec
SSLの中間証明書・クロスルート方式について | cloudpack.media
SureServer[2048bit] 用クロスルート方式について|Cybertrust.ne.jp
ルート・中間CA証明書のダウンロード|Cybertrust.ne.jp
クロスルート証明書って何? - [2013/02/11]
今更!理解するクロスルート証明書 - 農業生活を目指すシステムエンジニア
クロスルート設定用証明書ダウンロード|SSLサーバ証明書 ジオトラスト
シマンテックSSL証明書におけるクロスルート証明書についてのご注意 « - ValueSSL
オレオレクロスルート証明書 - Qiita

コードサイニング証明書

Twitter

@openlibsys

hiyohiyoさんのツイート: "コードサイニング証明書更新しました。 あと2年間はグローバルサインな証明書が使えます。 更なる更新はできないので、猶予期間中に移行先を決めないと・・・。 法人格がないとホント不自由な世の中になってしまいました。EVコードサイニング証明書欲しい・・・。"
hiyohiyoさんのツイート: "SHA-1 なコードサイニング証明書を取得するのも最後だろうなぁ・・・。 証明書の有効期限である2021/3/3以降にリリースするソフトは、7以降対応かぁ。2年後ぐらいに XP/Vista 向け最終版リリースかな。"
hiyohiyoさんのツイート: "コードサイニング証明書をUSB Tokenに格納することが必須となってしまい、コード署名するためにパスワードの入力が必要となってしまった・・・。 リリース作業が煩雑になってしまう。… "
hiyohiyoさんのツイート: "とりあえず、SHA-1とSHA-2両方の証明書でサインすることに成功。SHA-2な証明書でハッシュアルゴリズムをsha1とsha256の両方でやろうと思ったのですがどういうわけか失敗するのでsha256だけで実施。 Microsoft製exe/dllも2パターンでしか署名されていないので良いとするか。"
hiyohiyoさんのツイート: "SHA1とSHA2の証明書を明示的に選択するためには、/i を使いました。 for SHA-1 signtool.exe sign /v /a /n "Name" /tr https://t.co/PvnwuWmgfn /i "GlobalSign CodeSigning CA - G3" %1 for SHA-2 signtool sign /v /a /n "Name" /tr https://t.co/NaFzR2n2nU /fd sha256 /td sha256 /as %1"
hiyohiyoさんのツイート: "新しいコードサイニング証明書情報を追記しました。 https://t.co/riy9SxVZV0 次に公開するソフトから新しいコードサイニング証明書になります。"
デジタル署名 – Crystal Dew World
hiyohiyoさんのツイート: "EV証明書ではないので、しばらくはこんな感じで Windows Defender SmartScreen が発動しちゃいますorz… "

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsでコード署名をしても、すぐには警告が消えるわけではないが、署名の実績が溜まることで、新しいビルドでも警告が消えるようになるらしい。 これなら、コード署名を入れる価値がありそうだな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "signtoolでオレオレ署名をしてみたが、サインは末尾に付与される様子。 ビルドしたexeに追加データを付与しても、問題なく署名可能だった。(PEヘッダ・セクションを真面目に解析していない?) また、オレオレ署名でもタイムスタンプサーバに https://t.co/wbOzVI25sJ が使えた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今、コード署名取得に必要な DUNS番号を申請中。 コード署名を付ければ、しばらくして(コード署名の)評価値が上がってきて、新リリースでも誤検出されなくなる…はず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号を無事取得したので、コード署名をsslstore(米国)で取得中だが、購入後にcomodoへの登録内容アップロードで、Internal Server error が起きるぞ…やむなく英語チャット中。(現地時間は超早朝のはずだが…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事通過。あとはコモドからの電話確認だけになった。 ちなみに英語チャットで聞いた範囲では、コモドの電話確認は自動電話で番号を一方的に伝え、その番号をメールで返信する、というものらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号がコモド側の使うDBから見えないらしい…数日待ってくれとのこと。 東京商工リサーチの登録からデータが伝搬する経路に、何らかのバッチ処理とか人手とかが介在しているのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sslstore(米国, thesslstore)だと、コード署名(comodo)3年間で248ドルだった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コモドからの検証用電話コールバック、意外と日本語の選択肢もあったが、「あなたの確認暗証番号は、です。XXXXXX」というSVO順の謎日本語だった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、コモドから、"Your Code Signing Certificate has been issued." というメールが来た。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、SignTool でインストーラにコード署名完了! (これで数ヶ月後に、アンチウイルス系のヒューリスティック誤検出が無くなると良いのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(いくつかの発行ベンダが書いている資料と違い)、XP/Vistaでは、sha256コード署名が(非ドライバでも)上手く認識できないようだ。 とはいえ、コード署名はアンチウイルス誤検出に効果があれば十分なので、sha256を使う予定。(副署名をsha256にするhackもあるようだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "取得したコード署名、今日のお昼から、実践投入(某社で使われているIPMsg特別版に適用)する予定。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、コード署名をWindows証明書コンテナにインストールすると、exe/dll(SignTool)以外に、Office系全般とAdobe Reader(Acrobatでなくとも)でも署名可能に。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これにsymantec/comodo等のタイムサーバを加えれば、法人向けに領収書などの電子化に使えてもいいはずだが、日本ではそのあたりは総務省管轄の家元商売になっていて、そこの専用の枠組みを使う必要がある、と。 https://t.co/U4Bg2tQAcl https://t.co/ESrYms2BGq"
認定タイムスタンプを利用する事業者に関する登録制度 | JADAC
申請料金 | 申請方法 | タイムビジネス認定センター
Shirouzu Hiroaki(白水啓章)さんのツイート: "まあ、SSL証明書も家元商売と言えなくもないが、一応、競争原理は働いているように見える。(コード署名はニーズが少ないせいか、海外と国内で3~5倍価格が違うとか、大した審査でもないのに年2-6万とか家元商売と化している感あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messenger v4.94リリース。 Windowsコード署名を付与(今後アンチウイルスの誤検出が徐々に減るはず)、ログビューア改良等。 https://t.co/wDjue1IdtK #ipmsg"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SmartScreenにブロックされないことを確認。 (念のため、kasperskyとesetにホワイトリスト登録実施済)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名、Firefoxはsha1のみ、Chromeは主sha1 + 副sha2の二重署名。 IPMsgのsha2のみ署名はちょっと勇み足だったかな…XP/Vistaだと、ブラウザから直接実行できず、保存してから実行する必要。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sha1 + sha2 に変更した場合、SmartScreenでsha2でのレピュテーションは引き継がれるのだろうか?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "一方で、サポート切れとなっている Vista/XP対応を残すのも如何なものか、という気もしたり。 サイトアクセスから推測すると、XP比率は1.0~1.2%、Vistaは0.2%。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラ等にコード署名を付与を始めて1ヵ月経過。そろそろ、カスペルスキー等へのホワイトリスト登録はしなくても良いかな。 (SmartScreenだと、初めての署名から数日で充分なレピュテーションを獲得した様子)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ノートンさん、ホワイトリスト申請制度を止めてしまったんだよなぁ… (カスペルスキーとESETは制度があるので、バージョンアップのたびに申請している)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名が無くなると、(UAC表示が変わる以前に)、リリースの度に、SmartScreen/アンチウイルス系に誤検出される羽目になりやすい。… "
窓の杜さんのツイート: "コードサイニング証明書がなくなることの影響として、UAC ダイアログの表示が変わります( digicert https://t.co/GGRZaJ56se より) https://t.co/Mf7aY5NbrJ… "
「Notepad++」v7.6.4が公開 ~EUのバグ報奨金プログラムで発見された脆弱性を修正 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名用メールアドレスに spamが届き始めた。 世の多くの例に倣って、コード署名にメールアドレスは付与しない方が良かったかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、Explorerの電子署名のプロパティ。 MSはメールアドレスを付与していない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名を付与した自前インストーラに、事後に何か情報を付与したい場合、ファイル名にベリファイ付き情報を付加するくらいしか、有効な方法は無さそう。"

ゆきさんのツイート: "ACME End User Client and Code Signing Certificates https://t.co/WR6sLBVYnX ACMEでクライアント証明書やコード署名証明書やコードサイニング証明書を発行する提案仕様 #yuki_id"
draft-moriarty-acme-client-01 - ACME Client Extension
Kazuho OkuさんはTwitterを使っています 「コード署名の検証手法としては、そもそも不適です。CRLや、その発展技術であるCRLite, CRLSet の使用がより適しているかと思います。」 / Twitter

コードサイニング証明書を個人にも発行!! – Crystal Dew Blog
デジタル署名のまとめ(Vista x64対応) – Crystal Dew Blog
個人ソフト作者にとってのデジタル署名とは
個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた
最も安い?コード署名証明書の取得(&使い方)
SHIROUZU Personal Log(2018-10-15)
コードサイニング証明書を買う前に (山崎はるかのメモ)
個人事業主として EV コードサイニング証明書を取得してみた | エレン・イーストのブログ
個人でコードサイニング証明書を取得してみた | エレン・イーストのブログ
「WinRAR」のWindows 10へのインストールが一時的に不可能な状態に - GIGAZINE

証明書失効

OCSP

Kazuho Okuさんのツイート: "単にOCSPレスポンダ内部でのバリデーションがクロスルートに対応してなかったんじゃないの? > 「クロスルート証明書を失効させるつもりが、同じ subject で同じ鍵である Root(R1) の証明書の方を失効扱いにしてしまった」 https://t.co/iQbrPncS5I"
Kazuho Okuさんのツイート: "証明書チェインのクロスルート検証がうまく動かない問題昔からいろいろあるし、CAが運用するOCSPレスポンダみたいな更新が難しいソフトにその問題が残っててもちっとも意外じゃない"
Kazuho Okuさんのツイート: "証明書チェインを検証するために辿るキーはDNとpublic keyだけなので、状況とも符合する"
Kazuho Okuさんのツイート: "たとえばopensslの1.0.1系列を使ったocspレスポンダを、古い中間CAが登録された状態で動かしてたら当該の挙動になるんじゃないかなぁ"
【翻訳】Firefox における OCSP Stapling - Mozilla Security Blog 日本語版
【翻訳】証明書失効確認の改善: OCSP Must-Staple と Short-lived 証明書 - Mozilla Security Blog 日本語版
Online Certificate Status Protocol - Wikipedia
Online Certificate Status Protocol - OCSP
https://tools.ietf.org/rfc/rfc6277.txt
https://tools.ietf.org/rfc/rfc2560.txt
https://tools.ietf.org/rfc/rfc6960.txt
Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、OCSPレスポンスを取得する対象をEV証明書に限定。また、EV証明書についてもタイムアウトの設定を2秒から1秒に短縮した。参照:https://t.co/S2rMKSy6bF / “1366…” https://t.co/uumZYZAfk4"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、OCSPレスポンスを取得する対象にDV証明書を再度追加した。 / “1390688 - re-enable OCSP fetching for DV certificates in Nigh…” https://t.co/OkyKbQxtnH"

モジラ、グーグルと同様の証明書失効チェック方法を採用へ - ZDNet Japan
Google Chrome、SSL証明書のオンライン失効チェックを無効に - ITmedia エンタープライズ
CA:RevocationPlan - MozillaWiki
証明書失効リスト - Wikipedia
CRLSets - The Chromium Projects
Rockridgeさんのツイート: "Fx50:証明書のブロックリスト(OneCRL)にKintoを用いる仕組みがリリースチャンネルでも有効化された。 / “1265008 – Enable the Kinto.js OneCRL client for releas…” https://t.co/RgkgoFeJEQ"
【翻訳】中間証明書の失効確認: OneCRL の導入 - Mozilla Security Blog 日本語版
GodaddyのSSL証明書にドメイン認証の脆弱性があり8850件の証明書が失効された | 徳丸浩の日記
障害報告:サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可について(第一報) - JPNIC
サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可についてのご報告 - JPNIC
Rockridgeさんのツイート: "Fx52:証明書のブロックリスト(OneCRL)の対象となるのは、TLSサーバ証明書のみとなった。Thunderbirdが扱うS/MIMEは対象外となる。 / “1312827 – make OneCRL only apply …” https://t.co/yqCnhUoUUa"
Kazuho Okuさんのツイート: "なんか、割と皆、サーバ証明書かルート証明書の失効問題だと考えてるみたいだけど、中間証明書やコードサイニング証明書がらみの問題でないという判断の根拠はあるのかしら"
Kazuho Okuさんのツイート: "テスト環境ではトラストチェインの検証時に、テストクライアントにあるより新しい中間証明書が自動的に使われていたが運用環境ではそれがなかった、みたいな可能性もありうると思うけど"
Shigeki Ohtsuさんのツイート: "めちゃ議論が白熱してたから追っかけられなかったけど結局DarkMatterのルートを入れず中間証明書も失効させることになったのか。Mozillaは漢だ。 / “Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan” https://t.co/geOGUkAs3N"
Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan
Shigeki OhtsuさんはTwitterを使っています: 「Googleのトーゴドメイン(https://t.co/AeIs0BgWED)の証明書がまた不正発行されてた(2年ぶり2回目)。CRLで失効されているけどOCSPまだGoodだ。レジストラがまたやられたか。 https://t.co/8QIIHeZahZ」 / Twitter
ゆきさんはTwitterを使っています: 「MozillaとGoogleは、カザフスタン政府により中間者攻撃を可能とする政府発行の証明書をブロックすると https://t.co/A5ZcXZwQdg」 / Twitter
Kazuho OkuさんはTwitterを使っています 「証明書の期限なんて短くていいんだよ。7日とか、CRLやOCSPの有効期限並に短くすれば、CRLとかOCSPとかややこしい仕組みが不要になる。そこまでどう持っていくか、の問題」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、コード署名は「実行時の期限切れ」は問題としないポリシーだな。(少なくともWindowsでは) これ、CRL入りすると実行時でもエラーになるのかな?」 / Twitter

証明書ブロック

Symantec

Google

Symantec、同社発行のSSL/TLS証明書を信頼してもらうための対策をGoogleに提案 | スラド セキュリティ
Chromeがシマンテックの古い証明書を信頼しなくなる今後のスケジュール(メモ) - ASnoKaze blog
Google Developers Japan: Chrome が Symantec の証明書に対する信頼を破棄する予定について
Google、Symantec証明書に対する信頼を段階的に削減。「Google Chrome 70」で完全削除 - 窓の杜
Rockridgeさんのツイート: "2018年10月23日からの週にリリース予定のChrome 70では、Symantec発行のルート証明書と結びつけられたほとんどすべての証明書が失効することになるという。 / “Google Online Security Bl…” https://t.co/tN62wZRVwT"

Mozilla

Mozilla、Symantecが発行した証明書の信頼性回復に関する議論に参戦 | スラド IT
Rockridgeさんのツイート: "FirefoxがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除していくスケジュールは、Chromeとおおむね一致する。リリース日の違いから数週間ずれる程度。 / “Final Decision by …” https://t.co/uHXwTO39Ey"
Rockridgeさんのツイート: "2018年5月のFirefox 60以降、Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書をWebサイトが使用する場合、信頼できない接続である旨が表示される。2018年10月のFiref… https://t.co/R3D7FNtw8o"
Rockridgeさんのツイート: "Fx60:Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書を失効させるが、互換性問題に備えて復旧用の設定を実装する模様。参照:https://t.co/6em1Yh9xSW / “14…” https://t.co/LSTU24RdmQ"
Shigeki Ohtsuさんのツイート: "トップ100万ドメインの1%強がまだSymantec証明書を利用しているので、MozillaがSymantec Distrustを1リリース延期するとのこと / “Delaying Further Symantec TLS Ce…” https://t.co/IWhB9OclEJ"
Delaying Further Symantec TLS Certificate Distrust | Mozilla Security Blog
信頼性の低いシマンテック証明書の置き換えが予想以上に遅いとMozillaが嘆き - GIGAZINE

Symantec系列CAの証明書がエラーになったりするのは少なくとも「2017年8月8日」からではないっぽい - Technically, technophobic.
Rockridgeさんのツイート: "2017年8月2日、Symantecが米DigiCert社にWebsite Securityおよび関連するPKIソリューション事業を売却すると発表した。Symantecは対価として約9億5000万ドルとDigiCertの株式の約3… https://t.co/X8Bu0SKLUp"
Shigeki Ohtsuさんのツイート: "シマンテックがPKIビジネスをDegiCertに売却しちゃった。 / “DigiCert to Acquire Symantec's Website Security Business” https://t.co/aT7fOLoRla"
DigiCert to Acquire Symantec's Website Security Business
Shigeki Ohtsuさんのツイート: "Symantecはシェア3位の14%, DigiCertは6位の2.2%。合わせても16.2%の3位のまま。独禁的にも問題ないのか。 / “Usage Statistics and Market Share of SSL Cer…” https://t.co/Z0M4zzS05s"
そのSSL/TLS証明書は大丈夫? Google Chromeからhttpsサイトとして信頼してもらえなくなる場合も!? - INTERNET Watch
旧SymantecのSSL/TLS証明書問題、DigiCertが対応ほぼ完了宣言、次はいよいよIoTセキュリティへ前進 - INTERNET Watch

WoSign/StartCom

Mozilla

Rockridgeさんのツイート: "2016年10月21日以降に発行されたデジタル証明書に関し、StartComおよびWoSignが発行したものは、Mozillaのルート証明書ストアにおいて信頼されない取扱いとなることが決まった。参照:… https://t.co/OfjasBepmH"
Shigeki Ohtsuさんのツイート: "Mozillaからの WoSign/StarCom へのペナルティ(6/21以降に発行された証明書は不正と判定し、現行のrootCAを将来的に削除する)が正式に決まりました。 / “Distrusting New WoSign …” https://t.co/Y83wWhfPYa"
Distrusting New WoSign and StartCom Certificates | Mozilla Security Blog
Shigeki Ohtsuさんのツイート: "WoSignからのMozillaの決定を受け入れるとのアナウンス。なんと有効な中間証明書を 1つ持つらしい。2017年6月から再申請をするとのこと。中国国内で50%のシェア持ってるのか。 / “Announcement abou…” https://t.co/62JBl9xk4h"
Announcement about Mozilla Action-WoSign SSL Certificates!
Rockridgeさんのツイート: "MozillaがWoSign/StartComのデジタル証明書に関する対策を発表。2016年10月21日以降に発行されたものにつき信頼しない措置は、Firefox 51から適用。将来的にWoSign/StartComのルート証明書… https://t.co/qOFfgGA2hv"
【翻訳】WoSign と StartCom による今後の証明書は拒否します - Mozilla Security Blog 日本語版
Rockridgeさんのツイート: "2018年1月リリース予定のFirefox 58で、WoSign/StartCom発行のルート証明書はMozillaのルート証明書ストアから排除される。 / “Removing Disabled WoSign and Start…” https://t.co/qH9fJNE8mf"
WoSign/StartComのルート証明書が「Firefox 58」から削除 - 窓の杜

Google

Google、Chrome 61以降でWoSignの証明書をブロックへ | スラド セキュリティ

MS

マイクロソフト、不正が指摘されていた中国CAの証明書を無効に - ZDNet Japan

Makoto Kato ︎︎さんのツイート: "はてなってRaidSSL使ってるから、あれChromeのCanaryとかFirefox Nightlyだともう無効な証明書として認識されちゃってて、せっかく常時HTTPS化したけどそもそもアクセスできなくなってるね。。。"
Makoto Kato ︎︎さんのツイート: "*.hatelabo.jpどうするんでしょ、あれ。ずっと証明書直さないけど"
IE11とEdgeでもついにSHA-1証明書使用サイトをブロックへ | スラド セキュリティ

EV証明書

Extended Validation Certificate - Wikipedia, the free encyclopedia
Extended Validation 証明書 - Wikipedia
メモ:EV証明書でブラウザのURLバーを緑色にするのもうやめない?という話 - Technically, technophobic.
Rockridgeさんのツイート: "EV証明書の取扱いについて熱心な議論が交わされている。どうやらMozillaの開発者たちは、アドレスバーの表示について、EV証明書を特別扱いしない方向に持っていきたいらしい。 / “On the value of EV” https://t.co/xmYbGb2DT2"
Rockridgeさんのツイート: "Fx63:DocuSignのルート証明書はEV SSL証明書として扱わない。 / “1476473 - Disable EV treatment for DocuSign roots” https://t.co/V0b92QmC0t"
「Google Chrome 57」にSymantec社のEV SSL証明書を正常に扱えない不具合 - 窓の杜
〔三菱UFJダイレクト〕銀行名変更にともなうサーバ証明書の切替について | 三菱UFJ銀行
Shigeki Ohtsuさんのツイート: "三菱UFJ銀行のEV証明書の件。Baltimoreへのクロス証明書を使えばRootCAがないのはWindows XP SP3より前しかなさそうだから、それだけ古いの使っているユーザを心配しているんじゃないですかね。 https://t.co/i40iQxafwa"
DigiCert Root Compatibility
Shigeki Ohtsuさんのツイート: "三菱UFJ銀行がBaltimoreへのクロス証明書を使わない運用だとJRE 1.4.2_17とFirefox1が影響受けそう。でも Mixed SHA256 EV hierarchy with a cross root under Baltimore Rootの構成ならほとんど大丈夫でしょ。 https://t.co/i40iQxafwa"
個人でEV SSL証明書が欲しい話 - Speaker Deck
FirefoxでオレオレEVSSL証明書 - Qiita
Yasuhiro Morishitaさんのツイート: "私は「CHromeによって選ばれた人」だったようです。EV証明書のサイトを開いてF12を押すと、コンソールにこんな表示が。 "As part of an experiment, Chrome temporarily shows only the lock icon in the address bar. Your SSL certificate with Extended Validation is still valid."… https://t.co/7FMKo2Z5ke"
Yasuhiro Morishitaさんのツイート: "私のGoogle Chrome、EV証明書でも組織名が出なくなってしまったのですが、何が悪いんでしょうか。ちなみにバージョンはWindows版の「69.0.3497.81(Official Build) (64 ビット)」。… "
Yasuhiro Morishitaさんのツイート: "(こういう表示をA/Bテストでして来るということは、Googleは将来、EV証明書の組織名表示をなくしたいと思っているということなんだな)"
Shigeki Ohtsuさんのツイート: "とうとう Google が ChromeでEVの組織表示をなくす FieldTrial を始めたようです。 https://t.co/vSF91Cj0x6"
Mitsuru SHIMAMURAさんのツイート: "これ、CA屋は大反発じゃないんですかね?Googleが強行するんですかね… "
Shigeki Ohtsuさんのツイート: "既に脅しをかけられてたので、一部 CA が anti-phishing の London Protocol を立ち上げてる途中だったんですけど… Digicertが抜けたりとあまりうまくいってないので、Gがさらに脅しをかけているのかもしれません。… "
Mitsuru SHIMAMURAさんのツイート: "ほー…。区別しないようにするというのはphising由来だったんですか… "
Shigeki Ohtsuさんのツイート: "FieldTrial にビンゴしてたようですね。 chrome://flags/#simplify-https-indicator で戻すことができると思います。… "
Yasuhiro Morishitaさんのツイート: "「Googleがブチ切れる先にある未来」という名言を思い出します😅… "
Shigeki Ohtsuさんのツイート: "AppleもSafariでのEV証明書の組織表示をやめるみたい。iOS12からなのか? https://t.co/4FsvWhapqc… "
201806AppleCABF.key
Shigeki Ohtsuさんのツイート: "iOS12のSafariで、EV証明書の組織表示がなくなったのが確認できました。padlock(鍵)マークとURLが緑色なので、まだOV/DV証明書との区別はできています。… "
Shigeki Ohtsuさんのツイート: "PayPalがクロス証明書を入れたらWindowでVerisign側のチェーンで評価され、ルートのOIDが変わりEV証明書と評価されなくなっていると。これ、ユーザが気づかなかったら実はPayPalにEV要らないかと。 / “Wh…” https://t.co/pAkQFSwRDw"
Rockridgeさんのツイート: "FirefoxがSSL証明書のEVステータスを評価するプロセスについて(公式)。 / “CA/EV Processing for CAs - MozillaWiki” https://t.co/E2HFqNYKnr"
CA/EV Processing for CAs - MozillaWiki
北河拓士 KITAGAWA,Takujiさんのツイート: "また、同名の会社を設立すればEV証明書を取得できてしまう。実際にセキュリティ専門家のIan Carroll氏が決済会社「Stripe Inc」と同名の会社を設立しEV証明書が取得できることを実証している。https://t.co/AhHtkDf8DI 費用は会社設立に100ドル、証明書取得に77ドルのみ。"
Brian SmithさんはTwitterを使っています: 「Chrome joins FirefoxOS &amp; Safari/iOS in dropping the EV indicator in primary browser UI. Nice! Looking forward to all browsers dropping all support for EV &amp; maybe even all certificate policies. Here's webpki's entire implementation of policies: https://t.co/UYJsX2qVTq ;) https://t.co/UOCnQ9q2BU」 / Twitter
webpki/src/cert.rs at 0573c1ec3fa4da14d74b9c6ee52087b80dadf16e · briansmith/webpki
Ryan HurstさんはTwitterを使っています: 「All our mistakes sooner or later surely come home to roost. - https://t.co/VS7iPn6zkB」 / Twitter
Upcoming Change to Chrome's Identity Indicators - Google グループ
Google Chrome EV表示の終焉 - ぼちぼち日記
Shigeki OhtsuさんはTwitterを使っています: 「Mozillaも、2019年10月22日リリース予定のFirefox70から、URLバーからEV表示を削除するとのことです。 / “Google Groups” https://t.co/nV3aTqPtpE」 / Twitter
Intent to Ship: Move Extended Validation Information out of the URL bar - Google Groups
Makoto Kato ︎︎さんはTwitterを使っています: 「当事者ではないので個人的な感触ですが、EVの件は、CA/Browser Forum (https://t.co/YTHViQCmPn) でAppleとかGoogleのEVに対しての話に対して、CA側が有効な解決策・回答がでなかったことの結論としか思えないんだけど」 / Twitter
CA/Browser Forum - CAB Forum
「Extended Validation 証明書」表示がChromeとFirefoxから消滅へ - GIGAZINE
Shigeki OhtsuさんはTwitterを使っています: 「SECOMさんが緊急メンテでテストEV証明書を誤発行してしまった件。既に全部失効させて対策案提示したけど、ドメイン認証してないのって突っ込まれている。無事収束してほしいな。 / “1576133 - SECOM: Mis-issued EV Certificates” https://t.co/Hmyyz57Ler」 / Twitter
1576133 - SECOM: Mis-issued EV Certificates
「Firefox」もアドレスバーのEV証明書発行元表示を廃止 ~鍵・盾アイコンの仕様も変更 - 窓の杜

CT

Certificate Transparency について|サイバートラスト
Certificate Transparency | ブログ | SSL・電子証明書ならGMOグローバルサイン
Certificate Transparency(透かし入り証明書)とは | シマンテック SSL
Certificate Transparency:業界レポート:セキュリティ編 - GMOインターネット株式会社
Certificate Transparency(透かし入り証明書)|製品・価格一覧|SSLサーバ証明書 ジオトラスト
自堕落な技術者の日記 : SSL証明書 - livedoor Blog(ブログ)
自堕落な技術者の日記 : Certificate TransparencyでわかったというThawteによるgoogle.com証明書の不正発行??? - livedoor Blog(ブログ)
自堕落な技術者の日記 : Deep Inside Certificate Transparency (その1) - livedoor Blog(ブログ)
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Rockridgeさんのツイート: "Certificate Transparencyは「認証局が証明書を発行する都度、全ての証明書発行の証跡を、第三者の監査ログに記載する仕組み」。Googleが提唱し、RFC6962としてRFC化された証明書の誤発行を防ぐ新たな技術。 https://t.co/AoCuhCeZmk"
Rockridgeさんのツイート: "Chromeには既にCertificate Transparency(CT)の検証機能が導入されており、SSLサーバ証明書がCTに準拠している(=Proofが登録されている)かどうかを表示できる。Firefoxでも同様の検証機能が… https://t.co/qs8BeRF7wT"
CT対応を示すExpect-CTヘッダとは - ASnoKaze blog
Certificate Transparency
Shigeki Ohtsuさんのツイート: "去年の誤発行のペナルティで6月以降にSymantecが発行した全証明書にSCTがないとエラーにする制限がChromeに入りました。マジやるのか、Google恐し。 / “Issue 2109913004: Require Cer…” https://t.co/ysX34FlTd3"
https://tools.ietf.org/rfc/rfc6962.txt
Certificate Transparency の仕組みと HPKP から Expect-CT への移行 | blog.jxck.io
Shigeki Ohtsuさんのツイート: "おぉ、Googleに続いてAppleも2018年10月15日以降に発行される全証明書にSCT求めるCT Enforcementを行うと。 / “Certificate Transparency policy - Apple Su…” https://t.co/trtGhYv53e"
letsencrypt/ct-woodpecker: A tool to monitor a CT log for operational problems
Shigeki OhtsuさんはTwitterを使っています 「先月末に公表された構成管理ツールSaltStackの深刻な脆弱性によってDigiCertのCTLog2サーバを管理するmasterが攻撃されたようです。CT署名する秘密鍵が危殆化したという初めての事態になってしまった。 https://t.co/Xiyvktzgxl」 / Twitter
CT2 Log Compromised via Salt Vulnerability - Google グループ

DANE

情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
DNS-based Authentication of Named Entities(DANE) | GMOグローバルサインブログ

DNS CAA

DNS Certification Authority Authorization (CAA) | GMOグローバルサインブログ
DNS CAA とは:SSL | DigiCert
DNSサーバのCAA設定 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
DNSのCAAリソース・レコード、使っていますか? | スラド IT
DNS CAA を設定した - @znz blog
Certification Authority Authorization (CAA) | Symantec
Qualysの SSL Server TestでA+評価を取得した設定例(2017-01-15時点, CentOS7 + Apache HTTPD 2.4.6) - Qiita

スライド

動的証明書読み込み ngx_mruby編 #hoscon / GMO HosCon 2016 // Speaker Deck

Let's Encrypt

ACME

autocert - GoDoc
crypto/acme/autocert at master · golang/crypto
jetstack/kube-lego: Kube-Lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
GKE でサービスを HTTPS と HTTP/2 に対応する(kube-lego 編) - Qiita
Google Container Engine上でLet's Encryptによる証明書を自動更新する(kube-lego) - Qiita
jetstack/kube-lego - Docker Hub
Shigeki Ohtsuさんのツイート: "Let's EncryptのACME TLS-SNI-01問題は同一IPでマルチユーザホスティングで任意の証明書がアップロードできる所があったからか。ブラックリストを作って再開するらしいが根本解決はできるのかな? / “018.…” https://t.co/bgF6sTzfMv"
Shigeki Ohtsuさんのツイート: "Let's EncryptのACME脆弱性の対応方針:TLS-SNI-01の利用は廃止の方向に。新規アカウントはSNI-01の利用禁止。既存アカウントはrenewalに限定。今後HTTP-01、DNS-01 のvalidationに移行を進めていくとのこと。… https://t.co/oe9ReJ1aAL"
Let’s Encryptが「ACME v2」とワイルドカード証明書サポートを開始 | OSDN Magazine
Rockridgeさんのツイート: "Let's Encryptでは、2018年3月14日のACME v2プロトコルの導入に伴い、ワイルドカード証明書の発行をサポートした。 / “ACME v2 and Wildcard Certificate Support is…” https://t.co/7VfbVMOAhJ"
Let’s EncryptとACME | IIJ Engineers Blog
続 ACME | IIJ Engineers Blog
xenolf/lego: Let's Encrypt client and ACME library written in Go
containous/traefik: The Cloud Native Edge Router
ゆきさんのツイート: "ACME Client Extension https://t.co/7TKBabYB4I ACMEを用いてクライアント証明書、コードサイニング証明書発行する拡張仕様。カジュアルな気持ちで読み始めたけど、難しい... #yuki_id"
draft-moriarty-acme-client-00 - ACME Client Extension
End of Life Plan for ACMEv1 - API Announcements - Let's Encrypt Community Support

ファーストサーバ、無料SSL証明書「Let's Encrypt」の取り扱いを開始 -INTERNET Watch
無償SSLサーバー証明書Let&#8217;s Encryptの普及とHTTP/2および常時SSL化 | OSDN Magazine
Let’s Encrypt - ArchWiki
Rockridgeさんのツイート: "Let’s Encryptが国際化ドメイン名(IDN)を含むデジタル証明書の発行をサポート。 / “Introducing Internationalized Domain Name (IDN) Support - Let's …” https://t.co/9ywe6D5OTY"
Autumn Goodさんのツイート: "2016年1月から2017年3月までに Let’s Encrypt が発行した"PayPal"の文字列を含む証明書はcrt.shで調査すると15,270件あったようです。もちろんほとんどはフィッシングで使われています。この傾向だと今年末にはさらに2万件増える見込みとのこと。 https://t.co/v32Qw4scSb"
2017/05/19にLet's Encryptで起こっていた障害についてのメモ - Technically, technophobic.
Let's Encrypt、ワイルドカード証明書を2018年1月より無料提供 -INTERNET Watch
ロリポップ!利用者向けにLet's Encryptの無料SSL証明書発行サービスを提供、GMOペパボ -INTERNET Watch
Let’s EncryptのSSL証明書で、安全なウェブサイトを公開 - さくらのナレッジ
Let's Encryptのワイルドカード証明書対応はこうなる? DNS-01のみか - Qiita
Rockridgeさんのツイート: "2017年12月時点で、Let's Encryptが発行したアクティブな証明書の数は4600万を突破。2018年中に9000万を目指す。また、2018年2月27日にはACME v2プロトコルを導入し、ワイルドカード証明書の発行を全… https://t.co/YWxZ14wH1U"
ユーザーガイド - Let's Encrypt 総合ポータル
Shigeki Ohtsuさんのツイート: "文科省外局のスポーツ庁の広報ページ https://t.co/qmRFNAsEYY でも Let's Encrypt のDV証明書を利用しているんですが… 他の https://t.co/lcSQE0omPH ドメインでちらほら。httpしか提供してないサイトよりよっぽどましかと。 https://t.co/vFqWfZMJBT"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー!証明書がLet‘s Encrypt!東証一部上場企業のサイトとしては衝撃的やな…この会社の情シスのレベルとか、この会社がサイバーでの信用というものをどう考えているかとか、色々考えさせられるわ… https://t.co/9UMVfA6BUl"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "この辺はまぁhttps://t.co/3fYww1OH4oの信頼で推すというのならまぁそうなんですねとしか言えません.民間CAにOVしてもらうのも結構面倒があるようなので,GPKIが正常化したら解決するのかなぁと思ってます…道のりはもう少しありそうですが.LGPKIが最近SECOM依拠になったので見習って欲しいなと.… https://t.co/s5Dju4emcw"
Shigeki Ohtsuさんのツイート: "最近更新したGPKIの証明書を見ると https://t.co/J8DYsMrdi6 LGPKIと同様の正常化?するのではないかと淡い期待を持って見ています(ごめんなさい島岡さん)。 https://t.co/jlwCng5hKf も再来週expireなので同様に正常化していただきたいものです。… https://t.co/kJ6GZTFv6b"
上場企業やgo.jpドメインでもLet's Encryptのサーバ証明書の利用が広がる | スラド セキュリティ
ssh port forwardingとstone経由でLet's encryptのワイルドカード証明書を作成する - .mjtの日記復帰計画
Let's Encryptさんのツイート: "Let's Encryptは1億5000万のドメインで使用されています。 https://t.co/RFNQqW12O5… "
Looking Forward to 2019 - Let's Encrypt - Free SSL/TLS Certificates
Shigeki OhtsuさんはTwitterを使っています 「Let's Encrypt続報: 未更新の130万証明書の半数以上が利用中。影響度を考慮しBR規定の5日以内の失効を止め、残り83日のExpireを待つ方針。引き続きモニターと連絡を継続。今後この様な大規模インシデントに対応できるよう失効通知するプロトコルの開発を進めると。 https://t.co/yNoxD0IrEk」 / Twitter
1619179 - Let's Encrypt: Incomplete revocation for CAA rechecking bug
nsdでの letsencryptワイルドカード証明書の自動更新
Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
Shiro KawaiさんはTwitterを使っています 「あああ、SchemerがCommon Lispでよくやるミスだ。参照取っちゃう以外にクロージャに閉じ込んじゃうのもありがち。やはりループ変数を破壊的変更するのは人類の手に余るのでは https://t.co/k6AdNy068V」 / Twitter
mattnさんはTwitterを使っています 「んータイムライン見てると Go の言語的な性質の様に書いてる人がいくらかいるけど、これ他の言語でも起きるよ?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@zacky1972 そっち行っちゃえば心配の必要がなくなるってのは自明ですが、ここでの話題は「ループ変数の更新は破壊的変更と気づきにくいからはまりやすいのでは」という話でして… なおSchemerにはループは再帰呼び出しに見えるので当然新しい束縛だろうと思うわけです」 / Twitter
FadisさんはTwitterを使っています 「certbotのnginxプラグインを使ったLet's encryptの証明書の仕込みが簡単すぎて、TLS簡単になったなぁ、となった」 / Twitter

S/MIME

上原 哲太郎/Tetsu. Ueharaさんのツイート: "S/MIMEは、有効期限が切れた証明書も全部残してないと古いメールの署名検証ができません。自分の過去の証明書もちゃんと残してないと古いメールが復号できなかったりします。ところが、その話をすると「おおっ」という反応がしばしば。つくづく使われてない技術だなと感じます。"

Twitter

Yosuke HASEGAWAさんのツイート: "Chrome 58になって、組織内でオレオレ証明書つかってると、ルート証明書いれててもページ遷移毎にmissing_subjectAltNameで証明書のエラー画面が出るようになったので、いろんな会社で叫び声きこえてておもしろいけど大変そう。"
Rockridgeさんのツイート: "Fx52:security.enterprise_roots.enabledをtrueに設定した場合に、Windowsの証明書ストアに登録された証明書機関をチェックする範囲を拡大した。参照:… https://t.co/dolm0vhOaT"
Rockridgeさんのツイート: "Fx56:中国の認証機関であるChina Internet Network Information Center(CNNIC)が発行したEV SSL証明書を無効なものとして取り扱うことにした。 / “show_bug.cgi?i…” https://t.co/f0F9XW4dg2"
Shigeki Ohtsuさんのツイート: "うわっCIAのVault8 、ThawteのFake Root証明書を仕込んでカスペルスキーのWebサーバ証明書を作ってる。25年有効のシリアル番号1のSHA-1署名やん 。 https://t.co/98p2IZNMRa https://t.co/B01q0Wj0kR"
Makoto Kato ︎︎さんのツイート: "WebTrust for BRに準拠してない運用してるGPKIよりもLet's Encryptの方がCAとしてマシな気がするし、そもそもLet's Encrypt使わない場合でもEVな証明書使わない気がするんだよね、そういうサイト。"
himorin@5/19-20ベトナムフェスティバル2018さんのツイート: "そ、そろそろGPKIは部署ごとなかったことに・・・・したい・・・ですよねぇ。。… "
Makoto Kato ︎︎さんのツイート: "ソフトバンクテクノロジー配下のCyber Trust JapanのCAがBR満たしてないかも話出てたけど、どうなったんだろ"
Hideyuki Tanakaさんのツイート: "インターネッツのssl証明書は中間者攻撃を防ぐために必要な仕組みだったのに、いつの間にかお墨付きを与えるための高額商品みたいな商売になっていたのはなぜなのだろうか…(´・_・`)"
Rockridgeさんのツイート: "Fx63:証明書のエラーページのデザインが新しくなった。 / “1463755 - Update the design of certificate error pages” https://t.co/MKaN8OGt3d"
Shinko@C94金西も17bさんのツイート: "官報嘘だろ。 『オレオレ証明書インストールしてね』って頭湧いてんの。馬鹿なの? この国なんなの。まじかよ嘘だろ… https://t.co/UAyCRUkIga… "
Kazuho Okuさんのツイート: "iOS含むAppleのプッシュサービスが、デバイス毎にユニークなクライアント証明書を使いwifiの切替の度にTLS 1.2で接続していたから、ネットワーク上からデバイスの位置をトラッキング可能だったという話。昨年修正済 #ietf102j"
Kazuho Okuさんのツイート: "X509をひとことでいうと、証明書の署名鍵の証明する仕組。ダジャレじゃないよ!"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーは、VirtualBox内のSSL通信にも侵入して、証明書情報を書き換えてMITMを強制してくるのか…… "
Rockridgeさんのツイート: "Comodo CAが2018年11月1日付けでSectigoへとブランド変更を実施。 / “Comodo CA Rebrands as Sectigo | Sectigo (formerly Comodo CA)” https://t.co/jsTnM8TY08"
Kazuho Okuさんのツイート: "TLS 1.2までは証明書を平文で交換していたが、iPhoneのプッシュ通知においてデバイスのトラッキングが可能になるなどの問題があり(証明書はデバイス毎に一意だから)、1.3で暗号化されるようになった、と言えば覚えやすいのかしら https://t.co/JmkiJmswr9… https://t.co/23JzcdISGH"
Push away your privacy: Precise user tracking based on TLS client certificate authentication - IEEE Conference Publication
Vさんのツイート: "TLS 1.3 で証明書が暗号化されて送られるのまだ広まってないのか。"
Kazuho Okuさんのツイート: "君たちの言っている公開鍵は、公開鍵交換なのか交換鍵署名なのか公開鍵暗号なのか"
Kazuho Okuさんのツイート: "公開鍵は必ずしも一般に公開して使うものではないのですよ。例えば、クライアント認証に使う公開鍵は、通信相手毎に違うものを使い、かつ、経路上では暗号化して第三者に見えないようにすることで、名寄せやユーザートラッキングができないようにする、というのが今日的なベストプラクティス… https://t.co/dlSXIw4xQC"
Kazuho Okuさんのツイート: "暗号応用の標準化に携わってる一技術者として言えることがあるとしたら、脅威モデルが何かという前提を明らかにせずに、あれが正しい、これが間違い、と主張するのは議論が空転するからさけたほうがいいよ、ってことですね"
佐々木聖也🍤인권さんのツイート: "> 経路上では暗号化して第三者に見えないようにすること ができるにもかかわらず,認証に共通鍵暗号ではなく公開鍵暗号を利用するのはなぜなのでしょうか。計算コストが無駄ではないですか?… "
Kazuho Okuさんのツイート: "いい質問だと思います。標準化されていて柔軟(たとえばTLSのクライアント認証機能を使えば、上位で動作するアプリケーションごとに認証機能をもたなくてよい)、セキュア(クライアントデバイス外に鍵が漏れることがない)、しばしばハードウェアサポートがある、といったあたりが理由かなと… https://t.co/VPFg4ndiiF"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば最近はさすがに、公開鍵の特徴を説明しようとして、RSAの特徴を説明してしまうパターンは減った気がする。 (昔、猿にはわからんだろうけど…みたいなタイトルで啓蒙していた人の成果かな?)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは明確に複数の事実誤認(RSAとDHの原理の混同、またDHの方が先)してますね。 それ以外に気になったのはどのあたりでしょう?… "
angel as ㌵㌤の猫さんのツイート: "これ…。第1回はいいけど…。山口准教授って、ガチの専門家のはずだよね。それでこの内容なの? 20年前だったらまだしようがないかもしれないけど、連載当時で2017年なんだよね。… "
ぎょうせいオンラインさんのツイート: "【連載】カフェ発マイナンバー・ICTが拓くセキュアで豊かな社会 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) 山口 利恵・東京大学大学院情報理工学系研究科ソーシャルICT研究センター特任准教授 https://t.co/PyURnDLUcY"
第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) | ぎょうせいオンライン  地方自治の総合サイト
Shigeki OhtsuさんはTwitterを使っています 「Apple Safariが2020年9月1日以降発行の証明書の有効期限を1年(と+1ヶ月の398日)に制限をかけるようです。Chromeも追随しちゃうよな。 / “position-on-1-year-ssl-tls-certificates” https://t.co/PE4ehm5FrN」 / Twitter
position-on-1-year-ssl-tls-certificates
Shigeki OhtsuさんはTwitterを使っています 「Appleが2020年9月1日よりサーバ証明書の有効期限を最大398日に制限する正式アナウンスです。 / “About upcoming limits on trusted certificates - Apple Support” https://t.co/zZ7QtjieFZ」 / Twitter
About upcoming limits on trusted certificates - Apple Support

WebAssembly

WebAssembly Studio

mbebenita.github.io/WasmExplorer/
WasmFiddle
WebAssembly Studio
wasdk/WebAssemblyStudio: Learn, Teach, Work and Play in the WebAssembly Studio
Rockridgeさんのツイート: "既存のWasmExplorerとWasmFiddleを統合し、新機能を追加して、新たなオンライン統合開発環境であるWebAssembly Studioに生まれ変わるという。今のところAlpha版に近いBeta版の状態。 / “S…” https://t.co/o88We9ZzA3"
Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE - Publickey
Coding WebAssembly? New IDE Offers Alternative to Visual Studio -- Visual Studio Magazine
WebAssembly Studio: MozillaによるオンラインWASM IDEツール
AST explorer
chikoskiさんのツイート: "WebAssembly Studioってコールグラフを可視化する機能があったのか。https://t.co/4iP8e3qcvC #webassembly"

WebAssembly

WebAssembly Specification — WebAssembly 1.0
WebAssembly Core Specification
WebAssembly Specification
WebAssembly
Roadmap - WebAssembly
Binary Encoding - WebAssembly
Tanks! Demo - WebAssembly
Submitting Feedback & Issues - WebAssembly
Modules - WebAssembly
JavaScript API - WebAssembly
Web Embedding - WebAssembly
NectarJS - JavaScript's God Mode
WebAssembly Tail Call - Chrome Platform Status
Embedding — WebAssembly 1.0
Instructions — WebAssembly 1.0
WebAssembly Core Specification
Introduction to WebAssembly — Rasmus Andersson
WebAssembly Reference Types - Chrome Platform Status
「Google Chrome 78」リリース | OSDN Magazine
WebAssemblyソースコードがGDB、LLDBを使ってブラウザ外でデバッグ可能に

MDN

WebAssembly Concepts - WebAssembly | MDN
WebAssembly テキストフォーマットから wasm に変換する - WebAssembly | MDN
WebAssembly JavaScript API を使用する - WebAssembly | MDN
WebAssembly テキストフォーマットを理解する - WebAssembly | MDN
WebAssembly のコンセプト - WebAssembly | MDN
WebAssembly | MDN
WebAssembly.Module - JavaScript | MDN
WebAssemblyコードのロードと実行 - WebAssembly | MDN
コンパイルされた WebAssembly モジュールをキャッシュする - WebAssembly | MDN
WebAssembly.instantiate() - JavaScript | MDN
WebAssembly.compile() - JavaScript | MDN
WebAssembly - JavaScript | MDN

W3C

WebAssembly Core Specification
WebAssembly JavaScript Interface
WebAssembly Web API
W3C、「WebAssembly」仕様について初めてのワーキングドラフトを公開 - Publickey
Rockridgeさんのツイート: "W3CでWebAssembly Working Groupが発足。WebAssemblyの標準仕様化を目指す。なお、引き続きCommunity Groupにおいて新機能の検討が行われる。 / “Launching the Web…” https://t.co/CnyEYnYFAJ"
WebAssembly Working Group Charter
Launching the WebAssembly Working Group | W3C Blog
public-webassembly@w3.org Mail Archives
W3C Strategic Highlights: Strengthening the Core of the Web (Web Assembly) | W3C Blog

asm.js

HTML5Experts.jp

Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーJavaScript が動く仕組み | HTML5Experts.jp
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例 | HTML5Experts.jp
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーC / C++をasm.jsに変換するツールEmscripten | HTML5Experts.jp

blog

JavaScriptの実行速度を劇的に改善するasm.jsの特徴は、CやC++のような言語をJavaScriptのサブセットで記述すること - Publickey
asm.jsの基本的な使い方・まとめ
ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く:CodeZine(コードジン)
Emscripten によって生成された asm.js 対応コードは本当に人間が書いたコードより速いのか? : document
asm.jsとかPNaClとかLLVMに興味あったので調べて回ったら少しだけ理解できた話 - ひつじのにっき
Extending Emscripten to Support Objective-C — running iOS Apps on the Web

スライド

20170222-emscripten-fs // Speaker Deck
asm.js 減量やってみた // Speaker Deck
asm.jsとWebAssemblyって実際なんなの?
asm.js x emscripten: The foundation of the next level Web games
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略

Qiita

asm.js: 仕様と実装の今 - Qiita
asm.jsの速度検証 -その1- 何も考えずに書いてみる - Qiita

Twitter

Rockridgeさんのツイート: "asm.jsの並列的コンパイルについて解説した記事。Firefoxではasm.jsとWebAssemblyの処理パイプラインを共通化しており、asm.jsでもwasm IRがベースになる。これを独立したスレッドで最適化する。 https://t.co/fvEoHlZ05X"
Rockridgeさんのツイート: "Fx49:5MBを超える巨大なJavaScriptはメモリ内で圧縮が行われる。asm.jsの消費メモリ抑制に効果があるという。 / “1219098 – re-enable compression on large sources” https://t.co/BxTPVFXEgA"
chikoskiさんのツイート: "Emscriptenでサポートされているioctl のフラグですが、ざっと読んだ限りFIONREADとTIOCGPGRPだけが実装をもち、TCSETSとTIOCSPGRPはエラーが返るようです。他のは"bad ioctl syscall"となるようです。 #emsn"
Rockridgeさんのツイート: "asm.jsが何であって、何でないかということは、2013年6月という初期の段階でかなり詳細に説明されていた。 / “azakai: What asm.js is and what asm.js isn't” https://t.co/ivGMTBQa61"
Fadisさんのツイート: "Linuxカーネルの中にはインラインアセンブリが使われている箇所があるが、JavaScriptエンジン上でLinuxカーネルを動かすには、emscriptenのasm(JavaScriptを挟める)に置き換える必要がある #kernelvm"
maoさんのツイート: "WASMのパフォーマンスについて👀 良いのう。まぁ将来的にasm.jsはどの道廃止されるし。(2018.3からは非推奨警告が出る) WebAssembly Load Times and Performance https://t.co/bIVG7WrwRT"

Embind — Emscripten 1.37.3 documentation
WebIDL Binder — Emscripten 1.37.3 documentation
asm.js
PyPy.js
kripken/emscripten: Emscripten: An LLVM-to-JavaScript Compiler

LEB128

KMC Staff Blog:DWARF と有限状態機械
DWARF 3.0 Standard
LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
LEB128 ‐ 通信用語の基礎知識
左シフト演算子および右シフト演算子 (<< および >>)
Little Endian Base 128 in JavaScript - Google スライド

setjmp

Cedec 2015 : EmscriptenとC++で作る ネイティブライクな 商用ブラウザゲーム(Making WebApp like…
Emscriptenチュートリアルコードの移植性と制限事項(a) - YUEDY
How would setjmp/longjmp be implemented in WebAssembly? - Stack Overflow
LLVM Weekly - #140, Sep 5th 2016
A cartoon intro to WebAssembly | Hacker News
src/setjmp/longjmp.c - external/github.com/WebAssembly/musl - Git at Google
Drop emscripten-fastcomp in favor of WebAssembly ? - Google グループ
⚙ D24121 [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302)
jfbastien/wasm-setjmp: Experimenting with setjmp / longjmp and exceptions in wasm
Does WASM share a stack with JS? · Issue #126 · WebAssembly/design

関数へのポインタ

WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
【WebAssembly】C/C++からJavaScriptで実装した関数を実行する - shogonir blog
【WebAssembly】wasm側で動的に作成したインスタンスをJSに渡す - shogonir blog
WebAssembly モジュールの作成と操作 | Mozilla Developer Street (modest)

スライド

20160903-WebAssembly // Speaker Deck
20161005-WASM // Speaker Deck
WebAssemblyに足りないもの - Google スライド
WebAssembly 入門 // Speaker Deck
コンパイラの人からみたWebAssembly | κeenのHappy Hacκing Blog
WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
NickBray_WebAssembly.pdf
詳説WebAssembly
はじめてのWebAssembly // Speaker Deck
20170924-html5conference-wasm // Speaker Deck
20171018-WASM // Speaker Deck
WebAssembly Proposals - Google スライド
chikoskiさんのツイート: "WASM 今の提案まとめスライド(TPAC2017でつかわれたもの)。今の状態、レポジトリ、提案者がまるっとわかって便利 https://t.co/50lGscy6wA #emsn"
WASM(WebAssembly)入門 ペアリング演算やってみた
WebAssembly future - Speaker Deck
WebAssemblyとABI | κeenのHappy Hacκing Blog
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
TypeScript で WebAssembly 処理系を書いた話 - Speaker Deck
AsteriusでHaskellの関数をJSから呼べるようにしてみた(けど失敗) (1)
tweag/asterius: A Haskell to WebAssembly compiler
C/C++とWebAssemblyを利用したライブラリ開発
emscripten_night_7.pdf - Speaker Deck
reg-viz/reg-cli: 📷 Visual regression test tool.
WebAssemblyが切り拓くフロントエンドWeb開発の未来
Updates in 2019 Q2 / WebIDL bindings - Google スライド
WebAssembly outside of the browser - Speaker Deck
Tiny WebAssembly Builds / WebAssembly Summit 2020 - Google スライド
Wasmコンパイラー作りの楽しみ (1)
Wasmリンカのつくりかた - Speaker Deck

スタックマシン

Twitter

chikoskiさんのツイート: "Stack machineでジャンプすると、スタックはどうなるんですかね。全部ポップしちゃっていいのかしら。"
からふるさんのツイート: "ジャンプ先とバランスするようにポップ、もしくは必要ならプッシュしてからジャンプが基本だと思います。… "
chikoskiさんのツイート: "バランスするがイメージつかないですが、例えば例外のようにジャンプしたまま戻ってこない場合は、必要なもの以外、全部捨ててしまって良いのかしら。… "
からふるさんのツイート: "単に外に抜けるだけでしたら、基本的にその「外」に相当するスタックの位置まで全部ポップします。ただ、ポップする前にしないといけない操作があれば、もちろん行ってからポップする事になります。ループに飛び込むとかであれば逆に必要なものを積んでから飛びます… "
chikoskiさんのツイート: "なるほど。積む時もあるんですねえ… "
からふるさんのツイート: "ジャンプ先は基本的に合流ポイントなので、スタックの状態を他の実行パスと合わせる必要があるのです。なので、積むか下ろすかは状況次第です… "

スタックマシン - Wikipedia
www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/
プログラミング言語処理
プログラミング言語処理

Emscripten

Getting Started — Emscripten 1.37.3 documentation
Introducing Emscripten — Emscripten 1.37.3 documentation
API Reference — Emscripten 1.37.3 documentation
Porting — Emscripten 1.37.3 documentation
CyberDWARF Debugging — Emscripten 1.37.3 documentation
API Limitations — Emscripten 1.37.3 documentation
File System Overview — Emscripten 1.37.3 documentation
File System API — Emscripten 1.37.3 documentation
Portability Guidelines — Emscripten 1.37.3 documentation
FAQ — Emscripten 1.37.3 documentation
Debugging — Emscripten 1.37.3 documentation
Emterpreter — Emscripten 1.37.3 documentation
Interacting with code — Emscripten 1.36.11 documentation
Emscripten and WebAssembly
EmscriptenからSSEとかpthreadを使って爆速にする : KLabGames Tech Blog

Relooper

Alon Zakaiさんのツイート: "New C++ Relooper (blocks to JavaScript loops) now in great shape https://t.co/aLvxhFl9 , and ready for emscripten 2.0 https://t.co/v48XhKAx"
kripken/Relooper: this repo is deprecated, see the main emscripten repo
Zakai-Emscripten.pdf
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
azakai's blog: Reloop All The Blocks
emscripten/docs at master · emscripten-core/emscripten
emscripten/paper.pdf at master · emscripten-core/emscripten
emscripten/splashpres.pdf at master · emscripten-core/emscripten

制御フロー

Please Support Arbitrary Labels and Gotos. · Issue #796 · WebAssembly/design
Solving the structured control flow problem once and for all
Eliminating go to's while preserving program structure | Journal of the ACM
Bytecoder/SRC-RR-4.pdf at master · mirkosertic/Bytecoder

blog

herumi

melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon

histric-1

WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
WebAssembly Troubles part 3: What About Alloca?
WebAssembly Troubles part 4: Microwasm
【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | ヌーラボ
WebAssembly(wat)を手書きする | 株式会社カブク
Writing WebAssembly By Hand
WebAssembly を使って自作言語をブラウザで動かしてみよう - はやくプログラムになりたい
パフォーマンス向上の次の一手はWebAssembly | フロントエンドBlog | ミツエーリンクス
Google V8 JavaScript EngineでのWebAssemblyのi32.addの実装を見てみる - めもちょー
Learning the Webassembly type system | Mauro Bringolf
C. Gerard Gallant: WebAssembly – Caching to HTML5 IndexedDB
Hijacking the control flow of a WebAssembly program
Wasabi
Olin – Defining a new operating primitive for event-driven services - 掃文資訊
The future of WebAssembly - A look at upcoming features and proposals
WebAssembly: 「なぜ」と「どうやって」 [翻訳記事] - DEV Community 👩‍💻👨‍💻
HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
WebAssembly版NCMBのビルドを簡単に行う方法 - ニフクラ mobile backend(mBaaS)お役立ちブログ
WebAssemblyを使って乱数調整ツールをWebに移植した話 - mizdra's blog
emruby: emscripten でブラウザで動く MRI - まめめも
WebPerl | Run Perl in the browser with WebPerl!
WebAssembly が WebGL ビルドのスタンダードに! – Unity Blog
[続] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
WebAssembly 開発環境構築の本 | WebAssembly 入門
WebAssemblyを出力するMinCamlコンパイラを実装しました - a_kawashiroのブログ
例のアレをWebAssemblyで動かした - うひょー(ブログ)

histric-2

[続々] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応 - Publickey
VMよりコンテナよりもさらに軽量な分離技術、V8のIsolateを用いてサーバレスコンピューティングを提供するCloudflare Workers - Publickey
WebAssemblyちょっとやる - バランスを取りたい
WebAssembly doesn’t make unsafe languages safe (yet) | Frank DENIS random thoughts.
WebAssemblyのAOTコンパイラを作った - 飽きっぽい人のブログ
|詳説|線形メモリとArrayBuffer |〜 wasm-bindgenではどのように文字列を扱っているのか?〜 - Mi in progress
WebAssembly: Neither Web, Nor Assembly, but Revolutionary — JavaScript January
Mozilla Hacks' 10 most-read posts of 2018 - Mozilla Hacks - the Web developer blog
Chrome Dev Summitに参加しました! - from scratch
ただの素人がフロー解析を通過した – 言語実装 Advent Calendar 2017 – kekyoの丼
Episode 49 – Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code – Misreading Chat
WebAssembly Troubles part 4: Microwasm
Rust/WebAssembly でレトロシンセをエミュレートする | hiromasa.another :o)
PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中 - Publickey
Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? - Publickey
Lucet's performance and lifecycle
Rustから生成されたWASMをCloudfareサーバレスワーカにデプロイする
Vim on Wasm on Web Worker on Browser with Atomics - はやくプログラムになりたい
WASMでPCエミュレータ作った。 - 借り初めのひみつきち
neri/vpc: A PC Emulator implemented by WebAssembly
Virtual Playground
続・WASMでPCエミュレータ作った。 - 借り初めのひみつきち
夏休みだョ!WebAssembly Proposal全員集合!! | Kabuku Developers Blog
WebAssemblyとBlazor: 何十年の問題を解決する
Running Wasm on V8 Without JS API – kanejaku.org
Fastly、WebAssemblyランタイムのサーバレス「Compute@Edge」ベータ公開 - Publickey

Fastly and partners form WebAssembly-based, open-source community Bytecode Alliance
WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly Web API」「WebAssembly JavaScript Interface 」の3つ - Publickey
mallocを使えるようにする(libcのコンパイル) | ブログ - Sumire Articles
ClangでWebAssemblyにコンパイル | ブログ - Sumire Articles
What should the memory layout look like for wasm modules? · Issue #81 · rustwasm/team
WebAssembly.Memory() - JavaScript | MDN
コマンドラインJSONプロセッサJQをWebAssemblyでブラウザに移植する - Robert Aboukhali氏とのQ&A
V8がWebAssembly SIMDをサポート
WebAssembly 1.0がW3C推奨としてブラウザ上でネイティブ動作する第4の言語に
新たに創設されたBytecode Alliance、モジュールの安全使用のためにWebAssemblyナノプロセスを提案
物体検出器 EfficientDet をブラウザで高速推論 - OPTiM TECH BLOG
WebAssemblyでホットリローディング、リモートデバッグ、統一的なハードウェアアクセスを実現する
WebAssemblyが目指していること。ナノプロセスモデルの実現、システムインターフェイス、実行時リンクの実装など - Publickey
Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち

WASI

CloudABI

Introducing CloudABI
NuxiNL/cloudabi: Definitions for the CloudABI data types and system calls
NuxiNL/cloudlibc: CloudABI's standard C library

MozillaがWASIイニシアティブを発表、WebAssemblyをすべてのデバイス、コンピュータ、オペレーティングシステムで動作可能に
Updates in 2019Q1: specs and WASI - Google スライド
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「MozillaとFastlyが推進してきたWebAssemblyのシステムプログラミング対応版WASIを更に押し進めるため昔からJS向けSIMD実装など貢献し続けてるIntelとRedHatが参加する形でBytecode Allianceを設立するとのこと。WASIのランタイムには組み込み想定のもあるし楽しみ過ぎる。 https://t.co/GHcgVVBsCb」 / Twitter
Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「長大だけど背景とか技術的視点で解説したHacksブログ記事もオススメ。 Nodeなどの既存エコシステムで問題になっている安全性の課題をランタイム設計から安全にすることで解消しつつハイパフォーマンスランタイムを実装していく。素敵。 https://t.co/qNwX8fm4zx」 / Twitter
New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing - The Mozilla Blog
WasmerさんはTwitterを使っています: 「Great presentation by @kripken showcasing Asyncify to enable async calls in #WebAssembly. ...with a demo using setjmp/longjmp with WASI and Wasmer! 😍 🎥 Talks are recorded and will be published by @wasmsf soon https://t.co/DFmf0iHVqX」 / Twitter
chikoskiさんのツイート: ""Running WebAssembly on the Kernel" 衝撃的なタイトルですが、kernelモードでwasmを実行した話。wasmerのローダと、WASIの実装をkernel moduleとして実装するこで、ring0での実行を実現。TCPサーバーの例も付属。なおネイティブより10%程度の速度向上があった。理由は不明。 https://t.co/t1r6xSIhdh"
Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks – the Web developer blog
Masaki Haraさんのツイート: "https://t.co/saiSjSeTNr Rustのwasm32-unknown-wasiサポートが早速実装されてる。wasiはWebAssemblyをブラウザ以外(のサンドボックス用途)でも使うというやつらしい"
Add intial support for wasm32-unknown-wasi by alexcrichton · Pull Request #1307 · rust-lang/libc
chikoskiさんのツイート: "Lucet: fastly産のc / wasm32-unknown-wasiコンパイラ(Sandboxing WebAssembly コンパイラ、と彼らは呼んでいる)。バイナリの処理系もついてる。これもCraneLiftをバックエンドに使ってる。https://t.co/S0W0s9mJAn"
chikoskiさんのツイート: "clangのターゲットにwasm32-unknown-wasiを追加するには / WASI向けにCをLLVMでコンパイルするには。LLVM8はwasm-32-unknown-unknownをサポートしているので、そこにwasi-sysrootからlibclang_rt.builtins-wasm32.aを追加することで、コンパイルできるようになるらしい:https://t.co/Tom22DOcpg… https://t.co/5L6mPOH733"
Compiling C to WebAssembly using clang/LLVM and WASI. | Frank DENIS random thoughts.
WebAssemblyWeeklyさんのツイート: "Compiling C to WebAssembly using clang/LLVM and WASI https://t.co/qYBrzqfUab this brief little guide shows you how to get the latest LLVM and WASI tooling working together"
chikoskiさんのツイート: "WASIは周到に準備されてたんだなー感はあるな。もちろん様々な主体による継続的なツールに対する投資の結果ではあるのだけれど。"
chikoskiさんのツイート: ".@wasmerio 0.3.0リリース。WASIに早速対応。すばやい。Lua, SQLite, PHPも実行可能に。デモ有り。… "
chikoskiさんのツイート: "「既存プロジェクトをWASIに移植するには」1. clan-8を使うこと、2. setjmpやsocketをサポートしないので適切に修正すること、3. llvm-ar/llvm-ranlibなどのパスを正しく設定すること、4. configureも忘れずに修正すること、の4点がポイント、とのこと。移植の実例もあり。https://t.co/iJevDHWifX… https://t.co/dBvFUniyva"
Porting projects to WASI: the flite program
WebAssemblyWeeklyさんのツイート: "Porting projects to WASI: the flite program https://t.co/dwNDTilGFg flite is a tet-to-speech app - this post looks at porting it to WebAssembly using the WASI system interface"
WASI resources.md
chikoskiさんのツイート: "https://t.co/nMtZpZc33U あれ? --target wasm32-wasi になったの?"
wasi-sysroot/expected/wasm32-wasi at master · CraneStation/wasi-sysroot
Rui Ueyamaさんのツイート: "ブラウザ外でのWASMとか、それで大きなプログラムを動かすことを視野に入れて、ビルド速度のためにファイルフォーマットを多少変更してもらったことがある。 https://t.co/6hW1NkOpX4"
Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
chikoskiさんのツイート: "さままざまな言語の資産を使える方がネットワーク効果が高まっていいもんね。"
Capsicum: Practical Capabilities for UNIX | USENIX
Capability-Based Computer Systems
Amoeba (オペレーティングシステム) - Wikipedia
WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど - Publickey
WebAssemblyをWebブラウザ以外の実行環境へ。システムインターフェイスへのアクセスを可能にする「WASI」の策定開始。Mozillaが呼びかけNode.jsらが賛同 - Publickey
WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 - Publickey
Bytecode Alliance
chikoskiさんはTwitterを使っています: 「Emscriptenにstand aloneモードが追加:1) -oオプションにwasmファイルを指定するとこののモードに。2)WASIのエントリーポイントである_startを出力 3) WASIのAPIを可能な限り使う4) リロケータブルメモリのサポートが不要なのでサイドモジュールとして作ったものより軽量 https://t.co/ALCAtAmHIW」 / Twitter
Outside the web: standalone WebAssembly binaries using Emscripten · V8
WebAssembly Standalone · emscripten-core/emscripten Wiki
emscripten/runtime.js at 65271b0ed8e77d07ced7f6873c3582b6b0ae2719 · emscripten-core/emscripten
コンテナ技術を捨て、 WASIを試す. こんにちは、NTTの藤田です。 | by FUJITA Tomonori | nttlabs | Medium
ドッグさんはTwitterを使っています 「ブラウザ外 Wasm の一番のユースケースは個人的にはプラグイン機構だと思ってるけどどうなんだろう.クロスプラットフォームで動くし,サンドボックス内で動かせるから使える API に制限かけてやれば比較的安全にサードパーティプラグインを動かせるし」 / Twitter
ドッグさんはTwitterを使っています 「セキュリティをしっかり考えたいなら gVisor みたいな VM 使って実行環境を隔離したほうが良さそうではあるけど」 / Twitter
chikoskiさんはTwitterを使っています 「@Linda_pp プラグインは有力なユースケースだと思います。Shopify は柔軟性とセキュリティの両方を提供するために、WASM プラグイン採用してますよね。あと Server-less での利用も同じ文脈かなと理解してます。」 / Twitter
Yohei KusakabeさんはTwitterを使っています 「@Linda_pp EnvoyProxyのフィルターがWasmプラグインになったのはまさにそれですよね。同一プロセス上でWasmバイナリを動的にダウンロードして実行出来るしランタイムもある程度管理出来るしでかなり適したユースケースだと思います。最初に聞いたときはどゆこと?ってなりましたけどw」 / Twitter
ドッグさんはTwitterを使っています 「@yo__ohei Envoy のフィルタが Wasm で書けるの知りませんでした.ありがとうございます.まだ試験的みたいですが,確かに用途にフィットしていて良さそうですね」 / Twitter

Asyncify

Asyncify — Emscripten 1.39.2 documentation
GoogleChromeLabs/asyncify: Standalone Asyncify helper for Binaryen
Pause and Resume WebAssembly with Binaryen's Asyncify

Mozilla

5x

Rockridgeさんのツイート: "Fx52:WebAssemblyがデフォルト有効化。 / “1342060 – wasm: enable by default” https://t.co/zoPVRYdMbO"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルに、WebAssemblyの段階的コンパイルに関する試験的実装が投入された。 / “1277562 - Wasm: tiered compiler” https://t.co/JDSGMaOgrN"
Rockridgeさんのツイート: "Fx58:WebAssemblyでも、JavaScriptと同様にまずはBaselineがすべての関数をコンパイルし、必要に応じてIonMonkeyが最適化を行う。 / “1391196 - Enable wasm tierin…” https://t.co/sN68l2TzC7"
Rockridgeさんのツイート: "Fx58:WebAssemblyからJITコンパイルされたJavaScriptを呼び出す処理が約50%高速化された模様。参照:https://t.co/N8YOBj3Z7u / “1360211 - Merge WasmActi…” https://t.co/eUXUP41rp8"
Rockridgeさんのツイート: "Fx58:WebAssemblyのコンパイラが改良され、ダウンロード完了前のコンパイル開始(ストリーミング)が可能になったほか、メインスレッドで高速なコンパイルを行いつつ、別スレッドで最適化を進める仕組みも入った。 / “Mak…” https://t.co/1oBtpUzXk9"
Rockridgeさんのツイート: "Firefox 58でWebAssemblyのコンパイラが改良された効果は大きく、コンパイルの所要時間が数分の1で済むようになっている。参照:https://t.co/Wt4o5HTRBo / “Impressive WebAs…” https://t.co/DRdvXbmp8l"
Rockridgeさんのツイート: "Fx58:WebAssemblyのストリーミングは本バグが取り扱ったものとみられる。 / “1406421 - Baldr: actual streaming compilation of WebAssembly.compile…” https://t.co/A28nM21M6C"

6x

Rockridgeさんのツイート: "Firefox 60では、JIT entry stubの仕組みを導入してJavaScript関数とWebAssembly関数とで呼び出しに差がないようにし、WebAssemblyの高速化を図った。また、JIT entry stub… https://t.co/xADYt0JAM3"
Rockridgeさんのツイート: "Fx63:WebAssemblyテキストフォーマットの生成機能は、debugger.htmlに委ねて、SpiderMonkeyから削除。メンテナンスの負担が低下した。 / “1447591 - wasm:: Investigat…” https://t.co/zZjj0dXscY"
SIMD.js(ECMAScript 7)
SIMD型について - JS.next
Rockridgeさんのツイート: "Fx63:SIMD.jsの実装を削除。今後はWebAssemblyにおけるSIMDのサポートに注力していくことになるようだ。参照:https://t.co/XpYmu7g1WF / “1416723 - Remove SIMD.…” https://t.co/nYli69PpbO"
Rockridgeさんのツイート: "CraneliftはMozillaが開発中の低水準コード生成システムであり、FirefoxのWebAssemblyコンパイラとして導入され、将来的にはIonMonkeyの一部機能を置き換えてJavaScript JITコンパイラに… https://t.co/RVYYbGlWVz"
Rockridgeさんのツイート: "Fx64:Nightlyチャンネルでは、既にCraneliftが導入済みであり、javascript.options.wasm_craneliftの設定をtrueに変更すれば有効となる。参照:… https://t.co/WjKgkWCY1L"

@rockridge07

連載

Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第1弾。2008年のJITの導入以来、久々にJavaScriptのパフォーマンスが大きく向上するフェーズに入るという。 / “A cartoon intro to WebAssem…” https://t.co/TC0W4jBmPP"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第2弾。まずは前史であるJavaScriptインタープリタとJITのおさらいから。stubやbailing outの概念に加え、最適化についてもわかりやすい説明があって素晴らしい。 https://t.co/3rzNKlETYa"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第3弾。まだWebAssembly自体は出てこない。機械語とアセンブラ、さらに中間表現(IR)について、図を交えながら説明している。 / “A crash course in as…” https://t.co/t1Cpy2pWLZ"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第4弾。LLVMのIRからWebAssemblyへの変換についてや、モジュールの構造とコードの動作についてなど、一挙に核心に迫る。 / “Creating and working …” https://t.co/qXZod0OJ2F"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第5弾。WebAssemblyが通常のJavaScriptよりも高速に処理される理由を、Parsing/Compiling + optimizing/Re-optimizing/Ex… https://t.co/c9RUO6LEvm"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第6弾(最終)。2017年2月28日をもって、WebAssemblyはブラウザプレビューの段階を脱した。各社デフォルトで有効化していく。将来的にはDOMを直接操作可能にし、並列処理も… https://t.co/HdO4Hzemte"

histric-1

Rockridgeさんのツイート: "レイトレーシングのデモによる速度比較。JavaScript版よりもWebAssembly版(Rustから変換)のほうが、およそ9倍高速になったという。 / “Ray Tracing: WebAssembly vs JavaScr…” https://t.co/R6weunJ5lE"
RockridgeさんはTwitterを使っています: "WebAssemblyは、Mozillaが提唱するポータブルなバイナリフォーマット。LLVMなどを通じて生成される中間コードは、当初からasm.js相当の機能が確保され、動作
Rockridgeさんのツイート: "WebAssemblyはasm.jsとの互換性を保ちつつ、実マシンのコードに近い仮想的な命令セットが定義され、メモリが連続的に確保されるなどの特徴を有する。本スライドの最後あたりに将来的な機能についても言及がある。 / “201…” https://t.co/OBNvFx6Jls"
Rockridgeさんのツイート: "WebAssemblyは規格が候補版の段階に達し、各ブラウザでの実装も進んでいることから「ブラウザプレビュー」のフェーズに突入。MozillaはFirefox 52リリース版で有効化を目指す。既にasm.jsを超えるパフォーマンス… https://t.co/xeFEDDFrBC"
Rockridgeさんのツイート: "WebAssemblyとWebGL 2.0を組み合わせた美麗なデモの動画。なお、デモ本体はファイルサイズが約100MBあり、動作にかなりのマシンパワーとメモリを必要とする。参照:https://t.co/z9SNQej2dc https://t.co/mwqnQ0f5jX"
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
Rockridgeさんのツイート: "WebAssemblyは様々な点でasm.jsよりも高速に動作するよう設計・実装されている。コンパクトで解析の容易なバイナリフォーマットの採用、JavaScriptの制約を超えたCPU機能の活用、生成用ツールチェーンの改善など。 https://t.co/aT7e6rcQOU"
Rockridgeさんのツイート: "FigmaはWeb上でUIデザインを共同編集するためのアプリ。asm.jsからWebAssemblyに移行したところ、Firefox上で使用した場合におけるドキュメントの読み込み時間が3分の1になったという。 / “WebAss…” https://t.co/GpjtLnctH1"
Rockridgeさんのツイート: "「ブラウザプレビュー」フェーズ後のWebAssemblyのロードマップについて。 / “WebAssembly” https://t.co/TtgqkKKhSk"
Rockridgeさんのツイート: "WebAssemblyのコードの構造と機能を詳細に分析した記事。WebAssemblyにおいて、プログラムとライブラリの区別はなく、すべてがモジュールとして取り扱われるという。 / “Introduction to WebAss…” https://t.co/tmzOgBstp7"
Rockridgeさんのツイート: "HumbleNetはWebRTCとWebSocketsのラッパーとなるクロスプラットフォームなネットワークライブラリ。asm.js/WebAssemblyの形式でWebゲームに組み込むことで、対戦プレイを可能にする。 / “In…” https://t.co/joNpZrOJ9M"
Introducing HumbleNet: a cross-platform networking library that works in the browser ★ Mozilla Hacks – the Web developer blog

histric-2

Rockridgeさんのツイート: "コンパイル済みのWebAssemblyモジュールは今のところJavaScriptのインスタンスを生成して利用することになっている。生成時にはimportsオブジェクトという入れ物にvalues/function closures/… https://t.co/yhQjUcrfZX"
Rockridgeさんのツイート: "WebAssemblyのメモリ管理はArrayBufferを通じて行われる。これによりメモリは他の部分から分離されて安全性が高まり、ガベージコレクションの対象にもなりつつ、JavaScriptとの値のやりとりが可能になるという。 https://t.co/cot74Cf7Wg"
Rockridgeさんのツイート: "WebAssemblyには管理領域外のメモリに対しtableを通じて間接的にアクセスする仕組みがある。現在は利用ケースが限られているものの、将来的にDOMへのダイレクトアクセス機能を追加する際に生きてくるらしい。 / “WebA…” https://t.co/hgEqxUU6sl"
Rockridgeさんのツイート: "WebAssemblyコミュニティグループは現在、SIMDやマルチスレッディングによる並列処理の有効化に注力しており、Firefoxでも2018年初めにはそうした機能がリリース版に実装されて、ネイティブゲームのWebへの移行を後押… https://t.co/edPq6X7wb6"
Rockridgeさんのツイート: "OpenCVベースのリアルタイム顔検出デモを作成してWebAssemblyに変換した結果、パフォーマンスが同一アルゴリズムを用いたJavaScript版の10数倍になったとのこと。参照:https://t.co/7vfNAWG6Ph https://t.co/3wcMDiCiED"
Rockridgeさんのツイート: "WebAssemblyの最新動向をトピックとして掲載しつつ、情報交換や議論のためのフォーラムでもあるようなWebサイト。 / “Home | WebAssembly Rocks” https://t.co/JIPIbBX81E"
Home | WebAssembly Rocks
Rockridgeさんのツイート: "Safari 11とEdgeHTML 16ベースのMicrosoft Edgeがリリースされたことにより、メジャーなブラウザすべてでWebAssemblyがサポートされるに至った。WebAssembly自体の用途が広がっているほか… https://t.co/nNPUSXMbAM"
Rockridgeさんのツイート: "binaryen.jsはBinaryenのWeb移植版であり、JavaScriptからWebAssemblyのバイナリコードを生成できるという。TypeScriptもサポート。参照:https://t.co/JxXU0IIEXw https://t.co/LaybgGvW2S"
Rockridgeさんのツイート: "「Unityなどのゲームエンジンなどで普通に出力される」数十MbのWebAssemblyファイルは、「現在のブラウザだと起動までに大変時間がかかってしまい」、「『タップしてすぐに起動』という世界には遠いのが現状です」。 / “巨…” https://t.co/GL3iRTCjVe"
Rockridgeさんのツイート: "サムスンの調査によれば、配列のサイズが小さい場合、JavaScriptはWebAssemblyを上回るパフォーマンスとなる。大半のWebアプリはJavaScriptで十分であり、WebAssemblyはゲームのような計算量の多いW… https://t.co/k5XKvZwssk"
Rockridgeさんのツイート: "Rust言語をWebAssemblyに変換するモジュールは、JavaScriptとWebAssemblyを協調して動作させる仕組みを学ぶのに適しているという。 / “Baby’s First Rust+WebAssembly m…” https://t.co/GySOyIkzcr"
Rockridgeさんのツイート: "2018年7月にリリースされたUnity 2018.2では、WebGL出力の際にデフォルトでWebAssemblyが用いられるようになった。asm.jsが用いられていた従来に比べてコードサイズが10数%減ったという。 / “We…” https://t.co/irEQxQAGZL"

Rockridgeさんのツイート: "Large-Allocationヘッダは、目標よりも少し遅れてFirefox 53で有効化されるようだ。ただし、32bit版限定。 / “Web Games Platform: Newest Developments ★ Moz…” https://t.co/LwWYzkkIYR"
Rockridgeさんのツイート: "MozillaがWebAssembly Explorerと呼ばれるツールを開発中。ブラウザ内でC/C++のコードをコンパイルしてWebAssemblyに変換するとともにその過程を可視化する。生成されたWebAssemblyもテキス… https://t.co/RdcS92vr4Q"
Previewing the WebAssembly Explorer ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "Mozillaの構想では、将来的にWebAssemblyはメール、SNS、ワードプロセッサなどのアプリやJavaScriptフレームワークにも採用されていく。文字どおりWebを変えていく力を持つので、MozillaはWebAsse… https://t.co/sZyjNr10ZP"
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
Rockridgeさんのツイート: "WebAssemblyベースのゲームなどが大量の連続的なメモリを確保できるように、Fx52でLarge-Allocationヘッダという仕組みを導入予定。e10s有効化を前提に独立のプロセスを割り当てる。32bit版Firefox… https://t.co/hGIg3w4sZx"
Rockridgeさんのツイート: "MozillaはWebassemblyのコードをまずBaselineがコンパイルし、その後バックグラウンドにおいてIonMonkeyがコンパイルしたものに順次置き換えていくという段階的コンパイルの仕組みを開発中だ。 / “Was…” https://t.co/SFYzOVC0Gp"
Rockridgeさんのツイート: "Emscriptenの開発スタート、asm.jsの導入、WebAssemblyへの発展という一連の流れを、Mozillaの開発者が語る。ゲームはユースケースであると同時にショーケースでもあり、他の分野にもWebAssemblyが広… https://t.co/GIsTGyx51x"
Rockridgeさんのツイート: "ソースマップ・パーサの一部をWebAssemblyで置き換えた(従前はJavaScript)ところ、最大5.89倍の高速化を達成し、パフォーマンスのバラツキも抑えられた。RustからWebAssemblyにコンパイルしている点もポ… https://t.co/HgW3lAeEnH"
Rockridgeさんのツイート: "最新のEmscriptenでは、生成するWebAssembly/JavaScriptについて不要なコードを含めず、無駄なコードを削除することで、サイズを従来の数分の1に減らすことに成功した。 / “Shrinking WebAs…” https://t.co/8UVetvYKj0"
Rockridgeさんのツイート: "2018年3月に発表された構想を実現させるべく、wasm-packの開発がアナウンスされた。Rust言語のクレートをWebAssemblyに変換してnpmパッケージ化する。 / “Hello wasm-pack! – Mozil…” https://t.co/bGIOywM1c8"
Rockridgeさんのツイート: "Binaryenコンパイラの最適化処理に新しくレベル4が加わった。レベル3と比較すると、生成されるWebAssemblyのサイズを20%削減できる一方、コンパイル時間は3倍かかるという。 / “Binaryen goes up …” https://t.co/9ntwdmcOxE"

Firefoxバージョン58でWebAssemblyが10倍高速化
Firefox 58では、WebAssembly実行がさらに高速化。飛んでくるパケットごとにコンパイル、実行中に裏でコードを最適化して動的に入れ替え - Publickey
Firefox 58でWebAssemblyの起動を大幅に高速化 - Mozilla Flux
Mozilla HacksのWebAssembly連載記事の和訳が開始 続編に期待(追記あり) - Mozilla Flux
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは? | HTML5Experts.jp
WebAssemblyの基礎から最新動向まで、@chikoskiに聞いてきた! | HTML5Experts.jp
清水智公@chikoski氏が語る「WebAssemblyで何ができるのか?」#html5jplat|CodeIQ MAGAZINE
WebAssembly を速くするには? | Mozilla Developer Street (modest)
MozillaがWebAssemblyに向けたツールチェインの取り組み「Binaryen」を明らかに | OSDN Magazine
WebAssembly's post-MVP future: A cartoon skill tree - Mozilla Hacks - the Web developer blog
MozillaはWebAssemblyのパフォーマンスと機能に焦点を当てている
ドッグさんはTwitterを使っています 「Mozilla はブラウザの Wasm 実装に注力することになって,ブラウザ外の Wasm 処理系 Wasmtime のチームは Fastly が引き取ることになったのか.Fastly の Wasm 処理系 Lucet に Wasmtime が吸収されるのかな? | 'Bytecode Alliance: One year update' https://t.co/8to9T0g03Y」 / Twitter
Bytecode Alliance
ドッグさんはTwitterを使っています 「ちなみに Firefox では Wasm の JIT コンパイラ実装に Cranelift を使ってるので,Cranelift の開発は Mozilla も引き続き参加する」 / Twitter
κeenさんはTwitterを使っています 「WebAssemblyのエコシステムを牽引するBytecodeAllianceにはWebAssemblyのランタイムが2つあった。Mozilla製のWasmtimeとFastly製のLucet。今回の移籍で元々計画されていた2つのマージが進展する見込。」 / Twitter

Google

Twitter

chikoskiさんのツイート: "V8に入ったWASMのコンパイルを速くするLiftoffの紹介。 Streaming APIとの組み合わせでコード出力がTurbofanと比べて10倍高速に。(最適化という意味での)品質は二の次で、スピードを重視。WASMを使ったアプリの起動がグッと速くなる https://t.co/3S9vvtb4pc"
V8 JavaScript Engine: Liftoff: a new baseline compiler for WebAssembly in V8
Rockridgeさんのツイート: "LiftoffはChrome 69でデフォルト有効化されるV8搭載のWebAssembly向けベースラインコンパイラ。既存のTurboFanで最適化する場合と比べ、コードのパフォーマンスは半分程度に落ちるが、生成は10倍近く高速に… https://t.co/UlBWojjT4S"
Rockridgeさんのツイート: "GoogleがPNaClを捨てて全面的にWebAssemblyにコミットする。2018年第1四半期にはChromeアプリと拡張機能以外ではPNaClはサポートされなくなるという。独自仕様による囲い込みの危険がなくなったのは素晴らし… https://t.co/NmM7lT9A6k"
Rockridgeさんのツイート: "Chrome 57(V8 5.7搭載)では、WebAssemblyがデフォルト有効化されている。 / “V8 JavaScript Engine: V8 Release 5.7” https://t.co/to7mwgq5Wl"
Rockridgeさんのツイート: "ChromeでWebAssemblyがデフォルト有効化へ。 / “Intent to Ship: WebAssembly” https://t.co/rRC6nqJGnt"
Rockridgeさんのツイート: "Firefoxと並んでWebAssemblyの実装が進んでいるChromeだが、現在もフラグを有効化しないと試すことができない。もっとも、規格が完成する2017年第1四半期にはデフォルト有効化の見込み。 / “V8 JavaSc…” https://t.co/t0u6WAE6mj"
Rockridgeさんのツイート: "GoogleはこれまでWebAssemblyのコードをasm.jsに変換してV8のTurboFanに処理させていたが、2016年12月にWebAssemblyをネイティブサポートした模様(デフォルト無効)。既にMassiveなどの… https://t.co/JM9sqkFaJZ"
dynamis (でゅなみす@もじら)さんのツイート: "V8はそもそもFullcodegenとかCrankshaftとかが残ってるのを今年捨ててBaseline JITのIngitionとOptimizeのTurboFanのセットに切り替えることもあって、TurboFanにJS由来のバイトコードも.wasmも突っ込むシンプル設計になる"
ドッグさんのツイート: "Google Earth で Wasm のマルチスレッド対応してるのか(あまり内部実装の話は無かったけど).sourcemap サポートは Chrome 71 から | 'Using WebAssembly and Threads (Chrome Dev Summit 2018)' https://t.co/BvT9X4i2j6"
Surmaさんのツイート: "If you start Canary with the `--js-flags="--experimental-wasm-simd"` CLI flag, you can play with SIMD in WebAssembly 🎉… https://t.co/uILOfpYdBb"

Google Developers Japan: V8 で WebAssembly を試験運用開始
Chromium Blog: Goodbye PNaCl, Hello WebAssembly!
Google Developers Japan: さよなら PNaCl、こんにちは WebAssembly
bitWalk's: WebAssembly と Google Chrome 51
Google Online Security Blog: Android Security Ecosystem Investments Pay Dividends for Pixel
rL318539
JavaScriptエンジン「V8 release v6.5」リリース。WebAssemblyバイナリをダウンロードと並行してコンパイル、ダウンロード完了とほぼ同時にコンパイルも完了 - Publickey
external/github.com/WebAssembly/v8-native-prototype - Git at Google
external/github.com/WebAssembly/musl - Git at Google
Project Zero: The Problems and Promise of WebAssembly
V8 release v7.0 · V8
WebAssembly Threads ready to try in Chrome 70  |  Web  |  Google Developers
Google、画像圧縮WEBアプリ「Squoosh」公開。ブラウザだけで圧縮やフォーマット変換が可能 - Engadget 日本版
Intent to ship: WebAssembly Threads - Google グループ

MS

EdgeでWebAssemblyを動かしてみる - ぷろじぇくと、みすじら。 - Misuzilla.org
Get started building .NET web apps that run in the browser with Blazor | ASP.NET Blog
aspnet/Blazor: Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly
Rockridgeさんのツイート: "MicrosoftもChakraCoreにWebAssemblyを実装中。数か月以内にMicrosoft Edgeの開発版で使えるようにするという。うまくいけばWindows 10 Creators Updateに間に合うだろう。 https://t.co/Tl13XoFqqO"

Apple

Rockridgeさんのツイート: "次期Safari 11ではWebAssemblyをフルサポートする。B3 JITコンパイラをベースに、Build Bytecode Quickly(BBQ)とOptimized Machine-code Generator(OMG… https://t.co/iZ7DskdRPb"
Assembling WebAssembly | WebKit

GitHub

rhmoller/wasm-by-hand: Small cookbook examples of writing WebAssembly by hand in .wast format
WebAssembly/wabt: The WebAssembly Binary Toolkit
WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly, in C++
WebAssembly/design: WebAssembly Design Documents
design/Rationale.md at master · WebAssembly/design
design/Semantics.md at master · WebAssembly/design
design/Portability.md at master · WebAssembly/design
WebAssembly/spec: WebAssembly draft specification, reference interpreter, and testsuite.
WebAssembly/meetings: Information on in-person WebAssembly meetings
webassemblyjs · webassemblyjs
jfbastien/musl: musl libc experiment
Standalone WebAssembly Example
maierfelix/glmw: WebAssembly powered Matrix and Vector library
mbasso/gccx: Transforms CPX (JSX like syntax) into asm-dom Virtual DOM
chikoskiさんのツイート: "JavaScript のようなWASMのテキスト表現。全ての式に型アノテーションが付いてないところが、asm.jsより素晴らしい(それだけで十分)。https://t.co/JwIuBytJZb… "
Lord Of The Boardsさんのツイート: "I'm loving walt #javascript #WebAssembly https://t.co/0gGMPYh90z… "
ballercat/walt: Walt is a JavaScript-like syntax for WebAssembly text format
stevespringett/disable-webassembly: Browser hacks to disable WebAssembly (WASM)
hajimehoshi/wasm-bench: Wasm Benchmark Experiment
Kimundi/greenwasm: An implementation of the Webassembly spec in Rust
オレオレ言語を作る - Togetter
オレオレ言語を作る
sfpgmr/sgl2: TDOPパーサをベースとした言語を作っていく
rianhunter/wasmjit: Kernel Mode WebAssembly Runtime for Linux
https://wwwg.github.io/web-wasmdec/
wwwg/wasmdec: WebAssembly to C decompiler
WebAssembly
kgtkr/cl8w
WasmVM
WasmVM/WasmVM: An unofficial standalone WebAssembly process virtual machine
Wasmer
wasmerio/wasmer: High-Performance WebAssembly JIT interpreter
WebAssembly/threads: Threads and Atomics in WebAssembly
design/FutureFeatures.md at master · WebAssembly/design
WebAssembly逆アセンブルして調べるテスト
wasm-usui-book/get-started-webassembly.re at master · ukyo/wasm-usui-book
dcodeIO/webassembly: A minimal toolkit and runtime to produce and run WebAssembly modules.
Putting in All the Stops: Execution Control for JavaScript
cloudflare/worker-emscripten-template

infoQ

WebでZoom: WebAssembly SIMD、WebTransport、およびWebCodecs
WebAssemblyランタイムのwastimeがReference Typeを実装、Wasmで複合型の処理が可能に
Ashley Williams氏がWebAssembly SummitでWebAssemblyの未来を語る

Qiita

WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita
(Learn the Hard Way)nodejs-8でのWebAssembly自体を調べてみた - Qiita
lldでwasmをリンクするまで - Qiita
WindowsでWebAssemblyの環境を整える - Qiita
WebAssemblyのloopはまりどころ - Qiita
WebAssemblyのテストプログラム - Qiita
Rustで書いたWebAssemblyに文字列を渡すときにUTF16, UTF8, StringBuilderのどれが速いか計測してみた(ついでにNative RustとWebAssemblyの速度差も調べた) - Qiita
RustでWebAssemblyのライブラリを作るときは配列を引数にとらないように気をつけよう - Qiita
なぜWebAssemblyはasm.jsより速いのか - Qiita
WebAssembly のベンチマークとバイトコードと Lisp - Qiita
初めてRustでWebAssemblyするときに紹介したいチュートリアル (入門) - Qiita
NuxtでWebAssemblyが使えるようになったみたいなので動かしてみた - Qiita
オールRubyでフロントエンド開発を夢見て <デモあり> - Qiita
WebAssembly のベンチマークとバイトコードと Lisp - Qiita
WebAssemblyにコンパイルする言語を実装する - Qiita
WebAssembly / Rust / AudioWorklet でシンセ作ってみる - Qiita
WebAssemblyでカメラをリアルタイムにWebM動画に変換する - Qiita
RustからWebAssemblyを出力するまで(2019年3月現在) - Qiita
2019年のWebAssembly事情 - Qiita
WebAssemblyのbr命令について - Qiita
tkrさんはTwitterを使っています: 「あ、そっかwasmのlabelって完全にスタックスコープ離隔されてるのか」 / Twitter
tkrさんはTwitterを使っています: 「ブロック外のスタックにはアクセス出来ない(スタックを受け取らずに0 or 1の結果を返す事しかできない) i32.const 1 i32.const 2 block (result i32) i32.add end」 / Twitter
tkrさんはTwitterを使っています: 「(このwasmコードは無効)」 / Twitter
tkrさんはTwitterを使っています: 「つまりスタック的には frame→label→codeの完全な階層構造と考えて良さそう」 / Twitter
Node.jsでつくるNode.js-WASMコンパイラ - もくじ - Qiita
標準ライブラリ無しのWebAssemblyでDOOMを動かす実験 - Qiita
RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
Envoy での WebAssembly サポートと WebAssembly Hub, WASM OCI Image Specification について - Qiita

Wikipedia

WebAssembly - Wikipedia
WebAssembly - Wikipedia

Twitter

その他

七誌さんのツイート: "WebAssemblyを少し眺めた。分岐で相対アドレスを使わずに構造化されているようで、ちょっとBrainf*ckに似ていると思った。 https://t.co/MrB6JRgGqP"
Kazuho Okuさんのツイート: "goto 禁止教を信じていた頃は while (...) { switch (...) { ... continue; } } とか書いたりもしてたなぁ。最近は while ブロックの最後にラベル置いて goto します"
Makoto Kato ︎︎さんのツイート: "Linが書いたHacksのWASMのbaseline compilerの話、HNではhttps://t.co/V45io6o5qq のベンチマークの話になってたけど、EdgeのWASMコンパイラでValidationがLazyだからロードだけは速いってのは初めて知った"
https://lukewagner.github.io/test-tanks-compile-time/
Rust and WebAssemblyさんのツイート: "Announcing the `web-sys` crate! 🎉🎈🎊 Bindings to ✔️ the DOM ✔️ Web Audio ✔️ 2D canvas ✔️ Web GL ✔️ fetch and the whole Web API!"
ドッグさんのツイート: "Wasm にコンパイルする前提の C++ のウェブフロントエンドフレームワーク,C++ のコードに唐突に JSX 記法が出てくる(仮想DOMが生成されるっぽい) https://t.co/rRvZYUh8eT"
asm-dom/todos.cpp at master · mbasso/asm-dom
herumiさんのツイート: "intを返す関数をvoidを返す関数ポインタ(引数の型は同じ)にキャストして使うとx64では大丈夫だけどwasmだと実行時エラー。それをチェックするにはwasm-ldに--check-signaturesをつける。しかしwasm-ld-6はバグっててそれをつけると逆にエラー。ld-7ではOKでした。@blackenedgold #compiler_study"
Yosuke FURUKAWAさんのツイート: "AudioWorkletからSharedArrayBuffer経由でwasm threadと直接データやりとりして、最後にAudioMixingEngineでUIにつなぎこむ、、!!ゴクリ #ChromeDevSummit_ja… "
petamorikenさんのツイート: "@tkihira 突然失礼します。こちらの記事のコンパイル済みの WebAssembly を IndexedDB にキャッシュする件についてですが、 https://t.co/QF98zqUFpA 残念ながら仕様から消えてしまい、Firefox の実装からも無くなってしまったので、追記していただけると幸いです。 https://t.co/qTsuGa3kLn"
dynamis (でゅなみす)さんのツイート: "貧弱だったWebRTCのエコーキャンセラーは年末あたりにバージョンアップして改善される一方、そもそもオーディオのコーデックとかも含めてWebAssemblyで実装してしまうアプリケーションが出てきてたりブラウザはメディア系も低レベルAPI提供の方向に向かいそうな話。 https://t.co/kF8T4X3e6R"
ドッグさんのツイート: "Wasm はスタックマシンだと仕様にあるけど実際 locals はそうなってないという話.元々 asm.js のバイナリ表現としてレジスタマシンで設計されていたものからスタックマシンに切り替えた経緯があるのか | 'WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine' https://t.co/BEwMJf7AnT"
WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
Makoto Kato ︎︎さんはTwitterを使っています: 「パフォーマンストークでFFIが絡む話をする場合は、FFI部分を排除したデータがないと残念なプレゼンになるけど、まぁ結論として残念ですね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「WASMのJITもTierがあるので、JSのTierをなくしたデータを取るんだったら、WASMも同じようにInterpreter/BaselineJITだけのデータをとって比較しないと意味ないのでは?」 / Twitter
VさんはTwitterを使っています 「WASM が未来なのすごくわかるなぁ。いつか汎用的な負荷試験ツールを作る日が来たら、シナリオは全部 WASM 化したい。好きな言語で好きなように書ける。」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています 「@voluntas 同感です。まずはプラグインとかスクリプト機能がWASMになるんでしょうね。ゆくゆくはユニバーサルバイナリーの地位を確立するかもというのも気になります。 ただ現時点だとLuaJITのほうが軽かったりしないのかなあと気になっているのですが。まあでもWASMが広まっていくんでしょうね。」 / Twitter
VさんはTwitterを使っています 「@hnakamur2 まず Lua を覚えてもらうのと LuaJIT Binding を維持するコストが高いと思うんですよね。k6 がシナリオを JS にしたのは英断だなぁと思っています。「WASM にさえすれば何でもいい」というのは本当に強くて、あとは API をアプリ側に用意するというのは一番キレイな形だなと。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「アプリを動かすための仮想機械を作ったとしても、新しいプラットフォームで動かすには誰かがその仮想機械を移植する必要があるんだよな(そしてそれは「再コンパイルすれば済む」ような自明な作業ではない)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「元ツイートとは関係ないけど、Write once系の技術はdebug everywhereになりがち(抽象化に漏れがあったり、抽象化レイヤーの提供する機能が少なくて環境依存な方法を使ったりするような場合)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのセキュリティーについて https://t.co/MWJgBZqE4g とか読んで調べてるんだけど、Control Flow Integrityの辺りって処理系側が工夫しないと結構簡単にバッファーオーバーランとかで破られちゃうよな…」 / Twitter
Security - WebAssembly
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いや、もちろん他の仕様も処理系がアホだと危ないのは当然なんだけど、ジャンプ先の制御って今自分が作ってるコンパイラーじゃ全然守れてないな…って。」 / Twitter
kateinoigakukunさんはTwitterを使っています 「&gt; wasm-ldに関する公式サイトというかドキュメントみたいのはどれを見ればよいでしょう? wasm-ldはlldのwasm向けポートなのでLLVMが公式ドキュメントということになるのかな? 一応申し訳程度のドキュメントがありますが、あまり期待しないほうが良いと思います!https://t.co/0gXTJKiEaK #wasmnight」 / Twitter
WebAssembly lld port — lld 12 documentation

users

@chikoski

chikoskiさんのツイート: "各ブラウザベンダ連名で出ているWASMの論文。簡約と検証のルールが明示されているのが良い。他のところにちゃんと明記されてないもんね。特にどのような簡約を行うとTrapが発生するのかがわかるところが重要:https://t.co/q0EeWovUsa"
Bringing the Web up to Speed with WebAssembly - PLDI 2017
chikoskiさんのツイート: "WebAssembly.compileStreamingが追加された意味。ファイルを全部ダウンロードしなくても、データが来たそばからコンパイルできる。… "
chikoskiさんのツイート: "WASMからCのソースコードとヘッダファイルを作るコンバーター。https://t.co/DrGr0V9jDf これは結構強力な気がする。うまくするとTypeScript(AssemblyScript)で書いたプログラムをCに変換できるのではないかしら。"
wabt/wasm2c at master · WebAssembly/wabt
chikoskiさんのツイート: "JS vs AssemblyScript vs Rustから出力されたWASMの速度比較がメインのWASM紹介記事。配列と文字列操作については、JSが圧倒的に速い。ブラウザに任せられるものは任せよう、というゴールデンルールはここでも健在かな… https://t.co/6HjJMy9D6z"
chikoskiさんのツイート: "Unityプロジェクトを使ったWASMの起動およびパフォーマンステストの結果。Firefoxがとても早く、Edgeも健闘。ストリームコンパイルを有効にしたChromeはロードがとても早くなっているのを見ると、ストリームコンパイル有無が大きいのだろうな https://t.co/UDU2h8zaP2"
chikoskiさんのツイート: "WASMからbuiltin関数を呼ぶより速いのウケるけど、当然といえば当然か。… "
Yosuke FURUKAWAさんのツイート: "まじか、JSからJSの関数呼び出すよりもJSからwasmの関数呼び出すほうが早くなるケースが大部分になりつつあると。JITとwasmのコンパイル後の距離が近くなったんだな。 / “Calls between JavaScript…” https://t.co/Y6Xbvs8VoG"
toVersusさんのツイート: "JIT/wasm で Activation Record を統一して JS => wasm が JS => JS 並に速くなった。JIT-ed JS も WebAssembly も機械語に翻訳されるのに、以前は別々の Activation Record を C++ でセットアップしており、コストが高かった。"
toVersusさんのツイート: "JS 側のパラメータを WebAssembly 側の関数に渡す前の unboxing 処理を C++ から JIT 直呼びに変更して、JS => wasm を高速にした。C++ のオーバーヘッドが無くなった。"
toVersusさんのツイート: "JS がインライン関数を持っている場合、JS => JS の速度に勝てないが、将来的に JS の中に WebAssembly をインライン化できるようにする予定。"
Wasabi - WebAssemblyにインジェクションしてデバッグを促進 MOONGIFT
toVersusさんのツイート: "JS のビルトイン関数の中で C++ で実装されている関数の呼び出しにファストパスを設け、wasm => JS built-ins を高速化した。現状、WebAssembly の値型の制約で、math 関数のみ有効。近々、WebAssembly に参照型が追加されるので、wasm-bindgen のように JS を経由する必要がなくなる。"
chikoskiさんのツイート: "Chrome CanaryでWASMのスレッド機能がプレビューできます。chrome://flags/#enable-webassembly-threads のフラグをenableすると使えます。スレッドについてはこちらにスペックがあります。https://t.co/lXH3TwY4xe… https://t.co/cEyD7AvlfI"
threads/Overview.md at master · WebAssembly/threads
bokuwebさんのツイート: "https://t.co/katFUFyNL8 のshared: trueでworker間で共有してるやつですよね?いまいちわかってないんですけど内部的にはsharedArrayBufferなんすか?… "
chikoskiさんのツイート: "サーバレスWASM…… "
chikoskiさんのツイート: "「WASMを君の洗濯機にも!」って書いてあって意味不明(褒め言葉)。FPGAに実装されたWASMのスタックマシン。https://t.co/AKt15VHcnf… "
piranna/wasmachine: Put WebAssembly in your washing machine
chikoskiさんのツイート: "「コンパイルはダウンロードよりも50M bit/s 速い」忘れがちだけど、ネットワークって随分と遠いところにあるのよね。https://t.co/h6WcuiVLog… "
chikoskiさんのツイート: "「低水準APIを提供するWebRTC NVと、WASMとの組み合わせでできることは広がる。カスタマイズされたWebRTC実装の持つ機能を、実装をWASMに出力してWebRTC NVと組み合わせて実現するといったこともできる」… "
chikoskiさんのツイート: "システムコールの呼び方を整理して、WASMの相互運用性をあげようという活動(かな)。今はRustで作ったWASMとEmscriptenで作ったものは、システムコールの呼び方が違うので、そこを統一したい、ということかな。面白いなー。 @wasmerio らしい要求だと思う。https://t.co/gn34VBSEkx"
WebAssembly & CloudABI – Wasmer – Medium
chikoskiさんのツイート: "https://t.co/XM7i4Bia1M によると、 命令セット、エンディアン、データ型、配置、呼出規約 システムコール、ファイルフォーマットを定めたものがABI。WASMの仕様で決まっていないのは、システムコールの部分だけ(こうなってるのは理由がある)。"
chikoskiさんのツイート: "面白い試み。評価のところが面白い。"Speed comparison per browser"のbrowser 3, 4が大勢なら効果大って言えるけど、1,2だけならどうなんだろう?ってところが特に面白い。JS/WASMの呼び出しコストと、JSに対する最適化の結果がブラウザによってバラバラなのが、この差を生んでるのかしらー。… https://t.co/yRGUJ74rZ9"
Yosuke FURUKAWAさんのツイート: "くぁーJSのホットスポットのところだけ最初からwasmにするっていうかっこいいアプローチ / “Replacing a hot path in your app's JavaScript with WebAssembly  |  Web  |  Google Developers” https://t.co/EZcSLKoIxN"
Replacing a hot path in your app's JavaScript with WebAssembly  |  Web  |  Google Developers
chikoskiさんのツイート: "twiggy is a code size profiler. https://t.co/2rMvCfcanE"
Introduction - Twiggy🌱
chikoskiさんのツイート: "WebAssemblyアプリの起動時間のほとんどはコンパイルに使われている。コンパイル結果をキャッシュして1000倍起動が早くなったよ、という記事。例に使ってるNginxはパーズとインスタンス化がそれぞれ10ms,20msなのに対し、コンパイルは1000msかかってる。これをキャッシュでほぼ0にするのでそりゃ速い。… https://t.co/2GUE83DHCS"
chikoskiさんのツイート: "ついでにハッシュアルゴリズムをSHA256からmeowashに変えて、1MBのバイナリのハッシュ値生成にかかってた時間が5msから4μsへと125倍も速くなった。meowashはこれかなhttps://t.co/3gG4xlwZnc"
chikoskiさんのツイート: "meowashはセキュティ目的に開発されていないが、https://t.co/e5cQzZBJTK のテストは全てパスしているし、開発陣が持っている大きなデータセットでも今のところハッシュ値の衝突は起きてないとのこと。キャッシュ用途には使えるってことかしら。"
chikoskiさんのツイート: "インストールという形を取れないから、インストールの最後に「最適化の作業中です」と言いつつコンパイルして、その結果をキャッシュするといったことは取れない(?)。モジュールに分解した上で、小さいプログラムを動かしつつ、裏でコンパイルしていくというアプローチになるのかな。"
chikoskiさんのツイート: "そういう賢いやつより、とりあえずバーストで転送してしまってガンガンコンパイルする方がいいのかもしれない。"
chikoskiさんのツイート: "C/C++からのWebAssembly作成解説本。導入から既存プロジェクトの移植まで幅広く対応してる感じ。ファイルの扱いに関する記述があることと、Web workersとの連携について述べられていることが、他にはない特徴だと思う。https://t.co/0FBeCHYr6M #webassembly… https://t.co/Ey0VmZyUFE"
Level Up with WebAssembly
chikoskiさんのツイート: "インラインWASM …… "
chikoskiさんのツイート: "WASMコンパイルされたwat2wasm (from https://t.co/ToKxthdHxQ)を使えば、watで書かれたWASMを、ダイナミックに評価することもできるよね。理論的には #webassembly"
chikoskiさんのツイート: "SIMD in wasm: Chrome Canaryでフラグつきで使えるようになったWASMのSIMDですが、Emscriptenでの試し方をざっくり解説した記事 https://t.co/vdxPv3T5re"
SIMD in WebAssembly – tales from the bleeding edge – brionv
chikoskiさんのツイート: "旧聞ですが、WebAssembly.compileとWebAssembly.compileStreamingの比較: https://t.co/xqj5YE6EYK"
Loading WebAssembly modules efficiently  |  Web  |  Google Developers
chikoskiさんのツイート: "Twiggy: https://t.co/aFJNd9dRGT #webassembly の関数呼び出しを解析するツール。使われていないコードや、逆によく使われているコードを探すのに使える。バイナリサイズを大きくしているコードも探せる。"
rustwasm/twiggy: Twiggy🌱 is a code size profiler
chikoskiさんのツイート: "WASMになったエンコーダを使って、音声をブラウザ上でmp3にしているみたい。おもしろー… "
Shunya Shishidoさんのツイート: "こえのブログ、すごいとは思っていたけど解説読んで震えている。FastlyとGCPのフル活用、PWA、Web Components、a11y、WASM、Perf Budgetsと、現代の技術全て注ぎ込んであそこまでの完成度に持って行けるのか〜悔しい!という気持ち。 https://t.co/ATSUQqggfD"
アメブロ2019: こえのブログでのPWA
chikoskiさんのツイート: "WASM向けJITコンパイラ/コードジェネレータのCrainlift。すでにFirefox Nightlyで使えるのか。フラグをつければ有効になる、とのことらしい。https://t.co/FfyO0Z409s"
In Firefox Nightly, an option has arrived to use cranelift for wasm compilation : rust
chikoskiさんのツイート: "その環境でサポートされているWASMの機能を調査するJSライブラリ。いまはミュータブルなグローバル変数、多値関数、多倍長整数のJSとの統合について調査できる。それぞれの機能を使った小さいWASMをインスタンス化して、その成否で調査をするという戦略。単純だけど、効果的だと思う。… https://t.co/q0SRRxZ7vV"
chikoskiさんのツイート: "ソースコードはこちら https://t.co/MHIEHZ3R9j。デモへのリンクもある。"
xtuc/webassembly-feature: Test if a WebAssembly feature is supported
chikoskiさんのツイート: "autoconfという向きもあるでしょうが、polifillが実装済みの不要な機能を落とすといった使い方もあるかと思います。どっちにしてもWebAssemblyはバージョンレスであることを歌っているので、プログラムがランタイムの能力に合わせることが必要だと思います。… https://t.co/n2MKQ9W9XZ"
Takashi Kawasakiさんのツイート: "autoconfの再来か。いろいろ先が心配にはなる。… "
chikoskiさんのツイート: ".@wasmerio による、各WASMバックエンドの性能比較。ベンチマークによる性能比較と、ビルド時間を比較している。時間をかけて最適化をすると計算は速くなるという結果。Craneliftがコンパイル時間が短い割には性能が出ている点が面白い。https://t.co/bo3vBhvk8D"
Benchmarking WebAssembly Runtimes – Wasmer – Medium
Intent To Shipさんのツイート: "Blink: Intent to Ship: WebAssembly Bulk Memory operations https://t.co/0lZNT6uZ6d"
Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
chikoskiさんのツイート: ""Bulk Memory Operations and Conditional Segment Initialization": https://t.co/wFM4BD9lw5 memset / memcpy相当の命令を #webassembly に追加するプロポーザル。パフォーマンス向上が主なモチベーション。Blinkへのship approval request: https://t.co/rOAcpyWKch"
bulk-memory-operations/Overview.md at master · WebAssembly/bulk-memory-operations
Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
chikoskiさんのツイート: "命令はまあ足せば足せるんだろうけど、どう足していくつもりなんだろう。CISC / RISCどっちのアプローチを取るんだろう?それとも、最近はそれ以外にもアプローチがあるのかしら?"
chikoskiさんのツイート: "WASMバイナリを呼ぶためのPythonライブラリ。"🐍+🦀+🕸 Python extension to run WebAssembly binaries."というリード文が可愛い。内部は@wasmerio とうまくPythonを繋げてる模様。… https://t.co/MModWL9nam"
chikoskiさんのツイート: "仕事を引き寄せる 愛され言語2019春(仮)の第6位がWebAssemblyの模様(StackOverflow調べ)。あれは言語、そう言語だけれども。… "
WebAssemblyWeeklyさんのツイート: "WebAssembly - one of the most ‘loved’ languages in the StackOverflow developer survey 2019 https://t.co/kAqWTgLmca… "
Stack Overflow Developer Survey 2019
chikoskiさんのツイート: "用途にあわせて @wasmerio がバックエンド(wasm-nativie codeコンパイラ)を切り替えられるようにした話。とにかく起動を早くしたい、もしくはハードウェアが重たいコンパイル処理に耐えられない→シングルパス。性能が欲しい→LLVM。その中間→CraneLift https://t.co/LE6Szk31T4"
A WebAssembly Compiler tale – Wasmer – Medium
chikoskiさんのツイート: "WebAssembly Package Manager(WAPM). npmライクなWebAssembly向けパッケージマネージャ。今のところはパッケージ数も少ないし、パッケージの粒度もまちまちなので、よくわからないけれど、依存グラフの解決をやってくれると楽しくなる、かもしれない https://t.co/rEDWrABK4Q"
Announcing WAPM: The WebAssembly Package Manager – Wasmer – Medium
chikoskiさんのツイート: "公開されているパッケージの一覧はこちら:https://t.co/znQZHYUFjH ."
wapm | WebAssembly Package Manager
chikoskiさんのツイート: "wapmの利用ガイド:https://t.co/C8DrMCuTaf npm同様に install でパッケージを取得する。公開はpublicコマンド。package.jsonの代わりにwapt.tomlにパッケージのメタ情報を記述する。tomlを使うところはRust由来な感じ。"
wapm | WebAssembly Package Manager
chikoskiさんのツイート: "publicではなく、publishコマンドでした。タイプミス"
chikoskiさんのツイート: "しゅーまい @__syumai さんにlikeされて思い出したけど、denolandと組み合わせると、結構面白くなるのでは。"
🦀 Ivan 🐘🐍💎 Enderlin 🕸さんのツイート: "JavaScriptCore as a WebAssembly binary, https://t.co/aQA2qyJObr. $ wapm install -g jsc $ jsc >>> function multiply(a, b) { return a * b } undefined >>> multiply(10, 20) 200 >>> Date() Mon Apr 15 2019, … Crazy :-). #webassembly #javascript #javascriptcore"
jsc - wapm
chikoskiさんのツイート: "Zephyr project(組み込み向けリアルタイムOS)の上で動くWASMランタイム。libcのサブセット(ほんとに小さい)付き。ワクワクするな!… "
Anas Nashifさんのツイート: "Nice to see a WebAssembly Micro Runtime project from @IntelOpenSource running on @ZephyrIoT. https://t.co/djBVKTv5bO"
intel/wasm-micro-runtime
chikoskiさんのツイート: "ざっとREADME読んだ限りでは、割り込み周りはOSが面倒みてくれて、WASM的にはイベントとして抽象化される感じ。より細かいアクセスはネイティブコードをインポートとして与える感じになるのかな… "
bokuwebさんのツイート: "うお、intelなのか。割り込みとのつなぎとかどうなるんだろうか。。。"
chikoskiさんのツイート: "WASM Unikernel…パワーワードすぎる。@wasmerio をOPS unikernel上で走らせてみた話… "
WebAssemblyWeeklyさんのツイート: "Running WASM Unikernels https://t.co/JJMoBksOoX - taking a simple Hello World app, compiling to wasm, running it on @wasmerio within an OPS unikernel"
Running WASM Unikernels
chikoskiさんのツイート: "WASM向けのtracing allocator。デバッグ向け。Rust製。Rustから作られたWASMのメモリ使用状況を調査できる。ブラウザでもNodeでも動作。 https://t.co/N54smbHKnz"
rustwasm/wasm-tracing-allocator: A global allocator for Wasm that traces allocations and deallocations for debugging purposes.
chikoskiさんのツイート: "1Passwoed、WebAssemblyを利用することで、Chromeでは最大13倍、 Firefoxでは同じく最大39倍の高速化に成功。… "
1Password X: May 2019 update | 1Password
chikoskiさんのツイート: "味わい深い結果。v8の型推論は強力なのだなとも思えるし、生存期間が長く計算能力が必要な処理にはWASMを使った高速化は有効なのだろうとも思える。さて実行回数に対する損益分岐点はどこらへんになるのだろうか、などなど。"
hiroppy🇮🇪さんのツイート: "Node.jsのECMAScript ModulesでWebAssemblyが使えるようになる🎉🎉🎉 https://t.co/LNPiT4UKvq… "
esm: --experimental-wasm-modules integration support by guybedford · Pull Request #27659 · nodejs/node
chikoskiさんのツイート: "WASMとES modulesとの相互運用性に関するプロポーザル(の説明スライド)なんだけれど、インポート、エクスポート、instantiationで、それぞれ何をやっているかを説明しているので、面白いかもしれない。文字がないのでわかる人はわかる、てきな感じかも、しれない。https://t.co/lFsG9XIoVc"
WASM ES module proposal
Running WebAssembly on the Kernel – Wasmer – Medium
chikoskiさんのツイート: "この速度向上は、kernelモードとuserモードの切り替えがないことに由来する模様。なお今回の結果は、起動は早いが最適化は不十分なシングルパスバックエンドを利用したもの(@wasmerio はバックエンドを切り替えられる)。最適化をより行うCrainliftやLLVMのバックエンドを使えばより早くなる見込み。"
chikoskiさんのツイート: "Bllockly (https://t.co/lwNdsDJCBO)向けのAssemblyScriptコードジェネレーターが作成された模様。つまり、ブラウザ上で動作しWebAssemblyにコンパイルできるビジュアルプログラミング言語がある、ということ。… https://t.co/VwZL2wQlv9"
Blockly  |  Google Developers
Robert Longさんのツイート: "Working on an @AssemblyScript code generator for Blockly and compiling it to WebAssembly in browser. Still a long way to go, but it looks doable. I'll open source it after I get a little further.… https://t.co/AuMqKuE4CS"
chikoskiさんのツイート: ".NetのアプリをWebAssembly化するまでの話。Blazorを使って.Netで書かれたHello Worldアプリを、WASM化するまでの流れが説明されている。https://t.co/uTjWM1ln8a"
WebAssembly-ifying .NET with Blazor
chikoskiさんのツイート: "Compiling C to WebAssembly without Emscripten: https://t.co/zoV5YJSoYP Clangを使ったCからWASMへのコンパイルを、step by stepで解説している。前提知識があまりなくても読めます。一般のCコンパイラ話として読んでも楽しい。"
Compiling C to WebAssembly without Emscripten — DasSur.ma
chikoskiさんのツイート: "あと超適当ではあるけれど、メモリアロケータを実装してみてもいるので、何気なくnew Array();とかやっている裏で、何がおきているかに興味ある人もどうぞ。https://t.co/zoV5YJSoYP from @DasSurma"
chikoskiさんのツイート: ""Audio Worklet Design Pattern":タイトルはAudio Workletだけれど、実質WASMを使ったストリーム処理のデザインパターン集になってる。データの受け渡し方法と、スレッド間の同期するかしないかが、デザインの分かれ目になっている。 https://t.co/qvJbiPmzQo"
Audio Worklet Design Pattern  |  Web  |  Google Developers
chikoskiさんのツイート: "サンプルコードはこちら:https://t.co/X7HG82OTop"
web-audio-samples/audio-worklet/design-pattern at gh-pages · GoogleChromeLabs/web-audio-samples
chikoskiさんはTwitterを使っています: 「さらっと書いてあるけど興味深い:Ayncifyによる非同期呼び出し。そして setjmp/longjmpのデモ。これでgoto文やexceptionを実現できる。 https://t.co/7S7YxHocwh」 / Twitter
chikoskiさんはTwitterを使っています: 「EmscriptenがLLVMバックエンドを使うようになったので、./emsdk install latestでPost MVP機能が使えるコンパイラがインストールされるようになりました。そして、fastcompを使いたいときは、latest-fastcompと明示するようになりました。」 / Twitter
chikoskiさんはTwitterを使っています 「Emscriptenを使わずに、Cでmp3デコーダをつくった話。 ヒープの管理方法についての説明が主なので、CプログラムのWASM化するさいにひろく参考になると思う。スタックの起点から上にヒープが伸びていく、ところがポイント https://t.co/bO8eSEaqua」 / Twitter
Minimp3 Wasm Without Emscripten – kanejaku.org
chikoskiさんはTwitterを使っています 「Conditional Sections. いくつかのsectionを複数回出現可能にした上で、sectionを有効にするための条件を記述するための conditional section を追加する。JS API も有効な機能セットを渡せるように拡張される、らしい: https://t.co/T0JbSAt73z」 / Twitter
conditional-sections/Overview.md at master · WebAssembly/conditional-sections
chikoskiさんはTwitterを使っています 「Firefox で使われているライブラリの一部を、WASMサンドボックス内で動かしてるよ、という話。 プロセスを作るまではいかないけど、メモリアイソレーションしたいというニーズに応えるため、RLBoxというサンドボックスを突くった、とのこと: https://t.co/sckg8jYfFB」 / Twitter
Securing Firefox with WebAssembly - Mozilla Hacks - the Web developer blog
chikoskiさんはTwitterを使っています 「論文:https://t.co/E6vAKhcnDi "we find the end-to-end memory overhead of RLBox to be modest—25% with SFI, 18% with process isolation—and transient, appearing only at content load time. The impact on page latency is small: 3% and 13% with SFI and process isolation, respectively"」 / Twitter
LibrarySandboxing/paper.pdf at master · shravanrn/LibrarySandboxing
chikoskiさんはTwitterを使っています 「NaCLについて、何も知らないんだけど、やっぱり振り返った方がいいんだろうか。」 / Twitter

@qwerty2501

クワーティさんのツイート: "どうしてwasmにはfloatにだけmax,min命令があるんですかねぇ。しかも条件が結構複雑で実装がだるいという"
クワーティさんのツイート: "wasmのfloatのminとmax命令よくわからんからlibcのfminとfmax関数にぶん投げてええか?"
クワーティさんのツイート: "relopとfbinopを実装したし、今日の進捗としてはこんぐらいでいいだろ"
クワーティさんのツイート: "LLVMBuildAShrとLLVMBuildLShrの説明がどこにも見つけられなくて困っている"
Atsushi Enoさんのツイート: "arithmetic shift right とlogical shift rightでは… "
クワーティさんのツイート: "あーそれだ。多分 ありがとうございます… "
クワーティさんのツイート: "LLVMにrot命令が存在しない・・・"
クワーティさんのツイート: "end命令のときに対応する命令がloopか、そうじゃないかで振る舞いが変わってくると思うんだけど"
7594591200220899443さんのツイート: "WASM案外遅くねえか?っていう報告が出ている https://t.co/sSZM7zkCPk"
[1901.09056] Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code
qwerty2501さんのツイート: "遅い理由として考えられるのは、 - 規格上余計にマシンコードと比べて余計に仮想メモリの処理が入る - ブラウザの最適化実装が甘い - スタックマシンなので言語のコンパイラが最適化しにくい? かな。現状遅い理由で多いのは2番目っぽそうだけど"
qwerty2501さんのツイート: "個人的にWASM vs Native CodeよりもWASM vs JVMの比較のほうが妥当な比較な気がする。"

@blackenedgold

κeenさんのツイート: "wasmは最初の引数がスタックの底。最後がスタックトップ。 #κeenメモ"
κeenさんのツイート: "webassemblyのバイナリツール、セマンティクス的に間違っててもフォーマットが正しかったらとりあえずディスアセンブルしてほしい"

@rockridge07

Rockridgeさんのツイート: "JavaVMのような実行環境があれば、将来的にWebAssemblyベースのデスクトップアプリケーションも作成可能になる。 / “WebAssembly is more than the web” https://t.co/77uD4mFOlU"
Rockridgeさんのツイート: "Rust言語から生成されたWebAssemblyがマルチスレッドで動作し、各スレッドがメモリを共有するという仕組みができつつある。 / “Multithreading Rust and Wasm | Rust and WebAs…” https://t.co/r3PF3bUG87"
Rockridgeさんのツイート: "WebAssemblyがMinimum Viable Product(MVP)に達した時点で、ゲームでいう「スキルツリー」が開放され、様々な領域へと発展していけるようになった。本記事では獲得間近の「スキル」に当たる各種新機能を紹介… https://t.co/rq0iPTUp4q"
Rockridgeさんのツイート: "Doom 3をEmscriptenを用いてWebAssemblyに移植した話。サイズがおよそ400MBあるといい、読み込みには相当な時間がかかる。参照:https://t.co/kfsfSODK2i / “Google グループ” https://t.co/cdbKMmijAn"
Rockridgeさんのツイート: "サイトに登録されたMIDI形式のファイルを再生できる。その数11万以上。C言語で書かれたプレイヤーをWebAssemblyとJavaScriptに移植したという。参照:https://t.co/axJZ5LsZXe / “Pop…” https://t.co/FbxpLWDpjW"
The Lost Art of MIDI – Bringing <bgsound> Back to the Web - Speaker Deck

シフト

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「C言語とかでunsigned intな値を32bit以上シフトするのって未定義動作なんですかね。 https://t.co/BpKdcBSxpp が手元と結果が違うな。」 / Twitter
6Rr5UX - Online C Compiler & Debugging Tool - Ideone.com
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/sV2MCUIQpe いわくそうらしいな。」 / Twitter
c - What's bad about shifting a 32-bit variable 32 bits? - Stack Overflow
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「未定義動作がないように作っているからWasmのi32.shlはmod 32した上でシフトするのか。なるほどなー。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうの漫然と仕様書読んでたときは全然気づかなかったなあ。やっぱ手動かしてこそやね」 / Twitter

Table

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのTableってどういうユースケースを想定してるんじゃろうか。大抵のホストの関数をimportすれば賄えるようにも見えるような...?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/TyUbPpRfF7 に詳しく書いてあるっぽいな。」 / Twitter
WebAssembly table imports… what are they? - Mozilla Hacks - the Web developer blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、そうか。ホストの関数をWebAssemblyで書かれたコールバックを受け取る関数に渡したいときか。」 / Twitter
S.F.さんはTwitterを使っています 「あとはtableだなあ。。これいわゆる関数ポインタを収めるテーブルなんだよね。関数の間接コールを実現するための仕組み。むかしむかしだとジャンプ・テーブルですな。」 / Twitter
S.F.さんはTwitterを使っています 「線形メモリ上に関数のアドレスを置くというのはセキュリティ上の考慮からNGとなっていて、関数への参照をこのテーブルにセットするんだよね。そしてこのテーブルへのインデックスと関数の型(type)を指定して間接コールを実現する。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あれ、どういう場合に破壊的な書き換えが発生するのかわからなくなってきた... https://t.co/gtwIE299XX で紹介されているサンプルでは明らかに破壊的に変更してるのに、私が作ったサンプルでは書き換えられない...」 / Twitter
WebAssembly.Table() - JavaScript | MDN
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「どうもコンパイルするwasmの内容に依存しているようなので、何か書き間違えてるんだろうけど...」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「(elem $tableName ...) ではダメで、 (elem (i32.const 0) ...) じゃないといけないのか。前者の方法ではtableの初期化が無視されている?」 / Twitter

wasm-decompile

chikoskiさんはTwitterを使っています 「WebAssembly Binary Toolkit (wabt) に wasm-decompiler が追加されたよ、という記事。wasm を与えると、人間が読めるコードを出力するツール。同種のツールである wasm2wat よりも可読性は高い模様。メモリのインデックス操作やコントロールフローの解析は頑張ってる様子: https://t.co/tOYL9MMC5d」 / Twitter
What’s in that .wasm? Introducing: wasm-decompile · V8
chikoskiさんはTwitterを使っています 「wasm-decompiler の README: https://t.co/d3MEH5mcNK」 / Twitter
wabt/decompiler.md at master · WebAssembly/wabt

GC

chikoskiさんはTwitterを使っています 「最後のセッション。スピーカーはW3C WASM CGのチェア。歴史の振り返りから。やると決めてから2週間でプロトタイプ作った。」 / Twitter
chikoskiさんはTwitterを使っています 「工程。パーザーはやっぱり時間がかかる https://t.co/st1UTJ7yoU」 / Twitter
chikoskiさんはTwitterを使っています 「2017年時点での仕様の分類 https://t.co/iqJLnzGfQV」 / Twitter
chikoskiさんはTwitterを使っています 「2017年の時点で、GCは作ろうと思ったら作れた。全ての変数が線形メモリ上にあるなら。実際は、仕様上ローカル変数はスタックの上にあることが大切だったし、embedder側からの参照の解決も決まってなかった。」 / Twitter
chikoskiさんはTwitterを使っています 「2018年の時点でのGC。参照や構造体を表す型が導入された。参照は、Embedder側の物も指せるのでなかなか大変。 https://t.co/IgQWboL5d7」 / Twitter
chikoskiさんはTwitterを使っています 「C APIも2018年に定義された。これはプログラムからWASMランタイムをコントロールするためのAPI。」 / Twitter
chikoskiさんはTwitterを使っています 「2019年の仕様。Host bindingsがInterface Typeに名前を替え、WASIが登場。 https://t.co/mHrwQb0qr6」 / Twitter
chikoskiさんはTwitterを使っています 「2020年。参照型はPhase4になりそう。 どんどんパイが拡大していった様子を見ていった、という話でした。 終わり」 / Twitter

バイトコード

Miura HidekiさんはTwitterを使っています 「P-System, Mesa, JVMと歴史を見ると共通のバイトコードを普及させる試みは大体失敗しているので、WebAssemblyも失敗すると思っている。JVMは失敗したかどうかは議論が分かれるけど、個人的には失敗したと思っている」 / Twitter
Miura HidekiさんはTwitterを使っています 「llvmは成功したな。そういえば」 / Twitter
Miura HidekiさんはTwitterを使っています 「llvmのbitcodeを共通バイナリにする話があまりないのは不思議」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 LLVM だと JIT 向きじゃないとかの理由で WebAssembly が出来たとかいう話が真なら、LLVM も失敗していることになりますね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、確かに。そうすると、インタプリタ(JITを含む)を前提としたバイトコードは失敗しがち、ってことになりますね。この方がしっくりきます。」 / Twitter

インタプリタ

chikoskiさんはTwitterを使っています 「次。JSC の WASM インタプリタについて。JSCはWebkitに載ってるランタイム。」 / Twitter
chikoskiさんはTwitterを使っています 「JSCは2段階の最適化をする。BBQとOMG。どちらも同じ最適化エンジンを使うけど、最適化オプションが異なる。」 / Twitter
chikoskiさんはTwitterを使っています 「コンパイルと実行前処理が時間がかかるので、インタプリタを導入した。offlineasmやbytecodeなどJSのインフラを再利用した。」 / Twitter
chikoskiさんはTwitterを使っています 「苦労点その1。関数の呼び方。JSと同じやり方では、実行コードを切り替えられなかったので、インタプリタ用に中間層を入れた。」 / Twitter
chikoskiさんはTwitterを使っています 「苦労点その2。コールスタックの扱いについて。レジスタの退避と書き戻しをすることとなった。 これらの苦労点は、ある関数はコンパイルされ、別の関数はインタプリタで動く、といったことが起こるから発生してる。」 / Twitter

サンドボックスで処理速度低下

ドッグさんのツイート: "Wasm をサンドボックスの外で走らせると,マイクロベンチマークで C++ の95%の速さで実行できるらしい | 'Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed' https://t.co/G1ZABHv2rH"
Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed
ドッグさんのツイート: "ちなみに Wasm には LLVM のベクタライゼーション最適化を阻害する問題があって,それが直ればさらにこの差は小さくなるらしい"
ドッグさんのツイート: "メモ: サンドボックスを有効にすると C++ の 75% の速さまで落ちる"
イスラエルエリカちゃんさんのツイート: "サンドボックスやっぱそれなりにオーバヘッドでかいんやな"

memory_immediate

tkrさんのツイート: "memory_immediate is 何"
tkrさんのツイート: "オフセットとか指定出来るっぽい"
tkrさんのツイート: "flagは意味分からん"
tkrさんのツイート: "バイナリ読んだ感じデフォルト2っぽい?"
クワーティさんのツイート: "デフォルト2?そんなはずは・・・"
クワーティさんのツイート: "spec見落としあったっぽいな"
クワーティさんのツイート: "規格は隅々まで読まないと駄目"
tkrさんのツイート: "データ構造アライメント - Wikipedia https://t.co/D868WNYNFy"
データ構造アライメント - Wikipedia
クワーティさんのツイート: "wasm(バイナリの方)のmemoryのalignって実はalignそのものではないよね"

Security Model

Kazuho Okuさんのツイート: "WebAssembly VMのセキュリティモデルざっと理解したけど、とても美しいな。NaClで問題だった点が全て解消されていて、かつ簡潔になっていて、これマジ速いわーという感じ。これ見てるとJava VMは完全に過去の遺物だと思う"
Kazuho Okuさんのツイート: "x86-64で動かす場合、ユーザ空間は32bit。ベースポインタ加算して実際のアドレスにマップ。6GBのガードページを置いてゼロコストでメモリ保護。リテラルとスタックはユーザ空間(実行不可)にアプリが自由に設定。コードとリターンアドレススタックはユーザ空間外 https://t.co/SawKNZeSpj"
Kazuho Okuさんのツイート: "64bitレジスタで32bitのポインタ演算すると上位32ビットはゼロ拡張されるからdisp(basereg,ptr)的なコードでアドレッシング可能。LLVM IR等でその最適化も期待できる。スタックもユーザ空間のグローバル変数にしちゃって、コンパイラに最適化させる感じ https://t.co/0SE20w6APX"
Kazuho Okuさんのツイート: "x86-64のネイティブコードに対するオーバーヘッドは、indirect call、アドレッシングモードが少ない、使えるレジスタが実質2つすくない、くらいなんじゃないかな。indirect callの最適化はJITの得意領域だし、あとの2つはあまり問題にならなさそう https://t.co/G3pvKctc01"
Kazuho Okuさんのツイート: "RISC(32bit,64bit問わず)の場合はx86-64と違って自動的なゼロ拡張使えないけど、それでもネイティブコードのオーバーヘッドはNaCl on ARMの5%を超えることはないんじゃないかな https://t.co/ksvZ1qEugL"
Kazuho Okuさんのツイート: "i386の場合はセグメントレジスタ使えばゼロオーバーヘッドに。他のアーキについては https://t.co/sq50adLOkQ https://t.co/GP1zYhC5DG"
Kazuho Okuさんのツイート: "ちなみになぜガードページが6Gかと言うと、出力されるx86-64のアドレッシングモードoff32(basereg,ptr)のoff32が0からINT32_MAXの間まで最適化する前提だからですね。ptr書いたとおりゼロ拡張されるuint32なのでこれでおk https://t.co/0SE20w6APX"
Kazuho Okuさんのツイート: "んなとこです。主な参考資料: https://t.co/crxSDWBdMP https://t.co/LGyQwknaOY https://t.co/h0NYNGklDz"
七誌さんのツイート: "WebAssemblyのスタンドアロンVM。ブラウザと関係なく、独立したバイナリをmainから始まるプロセスとして実行。やっぱりこういうのを作っている人がいるんだ。 https://t.co/ddKeoHQEWV"
Non-Web Embeddings - WebAssembly
WebAssembly/wasm-jit-prototype: Standalone VM using LLVM JIT
35649.pdf
Yuki Yugui Sonodaさんのツイート: "実行コードeipをメモリ空間の凄く離れた場所に置いて、且つ危険な領域に戻れるほど長いjmpがないことを確認すれば安全だよねとか、なかなか攻めていて良い"
小倉唯さんのツイート: "wasm の memory bound check は論文にある. JSC は signal か, pinned reg からの範囲チェック"
小倉唯さんのツイート: "segv 取ってなんなら CONTEXT 書き換えられるのか. Wasm signaling memory なんとかなるっぽいな https://t.co/ALaC1x5sLN"
Cleanly recovering from Segfaults under Windows and Linux (32-bit, x86)

SIMD

S.F.さんのツイート: "SIMD Extensionをちょこっと読んでる。 https://t.co/UHnG03JRSX"
simd/SIMD.md at master · WebAssembly/simd
S.F.さんのツイート: "仕様見てるとやっぱりモバイル・ターゲットなんだなぁと思う。これも時代の流れか。。"
S.F.さんのツイート: "128bit長だとインテルCPUだとSSEレベル。 今どきのデスクトップCPUは512bitとかだからね。並列度が半端ない。。"
S.F.さんのツイート: "違うか。。AVX-512はハイエンド仕様か。。デスクトップだと256bitか。。"
S.F.さんのツイート: "しかし512bitだと32bit floatであれば16個パック可能となって、レジスタ1個で4×4の行列がパックできるんですな。恐ろしい時代ですわ。。"
S.F.さんのツイート: "私のCPUだとAVX-2どまり。YMMレジスタ(256bit長)が16本か。それでもすごいな。。"
S.F.さんのツイート: "行列の乗算が一発でできる命令とかはないから、コーディングには工夫は必要だろうな。。"
S.F.さんのツイート: "ここにAVXを使った行列の乗算コードが載っている。8x8行列だが。。うーむ。。 https://t.co/ETZlMQEaHi"
小行列演算におけるインテル® AVX の利点 | iSUS
S.F.さんのツイート: "Long SIMDというProposalもあるのか。。 https://t.co/QPz3FJpB3z #webassembly"
design/FutureFeatures.md at master · WebAssembly/design
S.F.さんのツイート: "Intelだと、4x4行列の乗算はSSE(128bit)とAVX(256bit)では1.8倍ほどAVXのほうが速いと書いてあるな。。"
chikoskiさんはTwitterを使っています 「SIMDを有効にしたWASMでdot積を計算したら、JSより500倍早かった、というRedditへの投稿。デモサイトへのリンクあり。デモサイトはWASM SIMDを有効にしたChromeでしか動かないので注意(有効にする方法は記事の先頭に記載がある)。https://t.co/xQBu2KeYB2」 / Twitter
Wasm SIMD is almost 500x as fast as JS at calculating dot product : WebAssembly

Go

chikoskiさんのツイート: "GoのWASM出力、LLVMじゃなくて自前で書いてるみたい。https://t.co/u2OsYM5oHd https://t.co/ZQhvxNpNle 作るにあたって考えたことまとめ:https://t.co/mrOIy8pgDE GC, long jump, メモリの予約、スレッドなどが考慮されているみたい"
chikoskiさんのツイート: "https://t.co/mrOIy8pgDE にはスタックマシンのWASMで、レジスタマシンのGoのセマンティクスを再現するために必要なことも載ってる。WASMのスタックを使わずメモリ上にGoのコールスタックを作る、レジスタを参照する演算を「WASMのスタックへの操作+演算」に書き換えるといったことをしてるh"
chikoskiさんのツイート: "腑に落ちないのは"Note that the two SSA instructions can not be generated sequentially anymore, because their WebAssembly instructions are interleaved." WASMの命令って不連続なの?むしろ連続的だと思うんだけど。あれかなー、ロングジャンプを無理くり対応したからかな。"
WebAssembly architecture for Go - Google ドキュメント
Google、「Go 1.11」を公開。WebAssemblyを実験的にサポート | OSDN Magazine

reference types

ドッグさんはTwitterを使っています 「Wasm の reference types 実装のために LLVM に複数アドレス空間対応を Igaria が提案.今はプログラムとデータは同じアドレス空間に置かれる前提になってる.別アドレス空間にある funcref と externref にコード側から触りたい | 'RFC: Multiple program address spaces' https://t.co/tuHL4ozmTz」 / Twitter
[llvm-dev] RFC: Multiple program address spaces
ドッグさんはTwitterを使っています 「もともとアドレス空間を指定する仕組み自体はある(例えばポインタ型はどのアドレス空間に属するかを持ってる)ので変更自体は小さいな https://t.co/t7BFrRQVVH」 / Twitter
⚙ D91428 Add support for multiple program address spaces

WebAssembly for Proxies (ABI specification)

bells17 / べるさんはTwitterを使っています 「specはこれかな? https://t.co/uIjJ1y381a #wasmnight」 / Twitter
proxy-wasm/spec: WebAssembly for Proxies (ABI specification)
bells17 / べるさんはTwitterを使っています 「こっちはあくまでproxy-wasmにおいてのABIという感じの理解で良いのかな?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「proxy-wasmの難しいところ: - 任意のプログラムをproxyに挟んじゃって大丈夫? - 変なwasmを読んで変なところでクラッシュしない? #wasmnight」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラッシュについてはwasm-smithがいいテスト方法になるはず https://t.co/Bzbi3FRl7U 有効なWasmを生成するfuzz tester #wasmnight」 / Twitter
wasm-tools/crates/wasm-smith at main · bytecodealliance/wasm-tools
Proxy-Wasm: Wasmを利用したPlugin機構の開発 - Speaker Deck

WebAssembly Community Group
WebAssembly Specifications
WebAssembly バイナリ表現 | WEBASSEMBLY USUI BOOK

Unicode

ucd

Index of /Public/11.0.0/ucd
https://unicode.org/Public/11.0.0/ucd/UnicodeData.txt
https://unicode.org/Public/11.0.0/ucd/PropertyAliases.txt
https://unicode.org/Public/11.0.0/ucd/PropertyValueAliases.txt
https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakTest.txt
Grapheme Break Chart
https://unicode.org/Public/11.0.0/ucd/extracted/DerivedCombiningClass.txt

数字

Unicodeにある数字の一覧 | hydroculのメモ

書記素クラスタ

UAX #29: Unicode Text Segmentation
UAX #15: Unicode Normalization Forms
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
結合文字についてMacのおしい点 - yanok.net
文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする  - Qiita
サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
Unicodeの特殊な文字 “結合文字列” – ものかの

SV・IVD・絵文字

The Unicode Standard, Version 11.0
https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
UTS #37: Unicode Ideographic Variation Database
Ideographic Variation Database
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita

大文字・小文字

Unicodeの大文字と小文字のまとめ | hydroculのメモ
Unicodeの仕様に基づいた大文字小文字を変換するには | hydroculのメモ

Wikipedia

Variant form (Unicode) - Wikipedia
Unicode control characters - Wikipedia
Variant Chinese character - Wikipedia
List of typographic features - Wikipedia

Unicode 11.0.0
Unicode利用規約
UAX #44: Unicode Character Database
The Unicode Standard, Version 11.0
C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
はじめてのにき(2018-12-24)
はじめてのにき(2018-12-25)
char8_tによせて - なるせにっき
CJK互換漢字とは?新元号「令和」の「令」Unicode符号に注意! – cod-log

C

言語仕様

その他

仮定義
日記 (2016 年 6 月上旬)
初期化子は定数 - とくにあぶなくないRiSKのブログ
CとC++のIdent - in neuro
NAKAMURA Minoru's Diary (2016年12月)
C言語の現代化を目指すC2
how-to-c-response/README.md at master · Keith-S-Thompson/how-to-c-response
Origin of C Language
Origin of C Language's 'struct'
Language C FAQ
ロボ太さんはTwitterを使っています: 「「-1/2」の結果がC/C++とRubyで違うということを初めて知った。」 / Twitter
herumiさんはTwitterを使っています: 「https://t.co/LhrwyBIl7u 処理系依存が気になる古いC/C++の処理系ではdivを使う、までがセットですね。 https://t.co/Y1e4xaouPm」 / Twitter
div, ldiv, lldiv, imaxdiv - cppreference.com
/devさんはTwitterを使っています: 「C言語のお前そんな機能あったのシリーズ https://t.co/qZIUU2hjts」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCで-std=c99したらDBL_TRUE_MINが定義されてなかったんだけど、もしかしてこれC11以降の機能だな?」 / Twitter

未定義の動作・値

未規定の動作
未定義の動作
処理系定義の動作
文化圏固有動作
本の虫: 誤り:paizaの問題はC++17でも成り立つ
ツイッターで出題した未定義問題のお詫びと調査と解説について - paiza開発日誌
水島宏太(Parser)さんのツイート: "ただ、 "未定義だと、動作が言語の実装に依存しますので、コンパイラなどの環境によって、結果が変わってしまいます。" 実装依存と未定義の区別がついてないような。未定義というのは本当に何が起こってもいいということであり、実装によって挙動が一つに定まるというのは違う。"
水島宏太(Parser)さんのツイート: "実際には、未定義動作を使ったCコードというのはあり、そういうコードを動かすためには、未定義動作だから何でもいいというのは困ることがあるけど、ともあれ未定義は未定義として区別されなければいけない。"
Eijiro Sumiiさんのツイート: "「どうやら、"sequence points"の範囲の中でside effectが評価されるようです。」待て待て待て、副作用完了点も知らないでC(やC++)の問題出題したりエンジニア向けサイト運用してたのか…!? https://t.co/iJfbmMbP3I"
本の虫: Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)
本の虫: C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合
C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
未定義動作により最適化レベルで結果が変わるコード - Qiita
ロボ太さんのツイート: "安全装置において、警告にとどめるか緊急停止させるかって、もちろん想定させる危険性に依存するじゃない?例えばコピー機で用紙サイズが合わなくても警告でいいけど、工業カッターが異物を検知したら緊急停止させなきゃいけない。「警告音で手を引っ込める」ことの賭金として指切断は高すぎるから。"
ロボ太さんのツイート: "これ、別に言語仕様を変える必要はなくて、「未定義動作を検出したらエラーで落とす」というオプションつけて、それをデフォルトでオンにすればいいと思う。なんか互換性で問題起きたらオフにすればいいんだし。結局、安全側と便利側どっちに倒すか、という問題だと思う。"
ロボ太さんのツイート: "同様に、もしコンパイラが未定義動作を検出してud2吐いたりretを消したりするなら、警告吐くだけじゃなくてエラーで落とすべきだと思う。それは明らかに重大事故だから。それを「ハナカラアクマ」って呪文唱えて、知らない人を締め出す先にあるのは、コミュニティの緩やかな死だと思う。"

Clarification Request Summary for C11
n1731.txt
N1804: Discussions on DR440, DR441, DR442, DR444, and DR445
Resolving DR444

ISO

History of C - cppreference.com
C99 - Wikipedia
C11 (C standard revision) - Wikipedia
C18 (C standard revision) - Wikipedia
ISO/IEC JTC1/SC22/WG14 - C
www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
ISO/IEC 9899:2017
Clarification Request Summary for C11
N2349 - Toward more efficient string copying and concatenation
Clarification Request Summary for C11

JIS

JISにおける規定を表す言葉の表現形式 - 水底の血

C2X

C23

だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の次期標準(C2x)は「C23」になる見込みなのかな。順調に行けばの話だけど https://t.co/DIxPvxXNrO」 / Twitter
WG 14 Document log
だめぽラボ@技術書典9さんはTwitterを使っています 「C++にある二進リテラルや桁区切り文字はC言語に入るのかなあと気になってたけど、Proposalは出てるみたい https://t.co/sR4Y3483Vx https://t.co/LUx5Fl3eLp」 / Twitter
n2549.pdf
n2606.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「C23 (C2x) の新機能は今のところ ・浮動小数点数周り(最新のIEEE規格への追従;各種関数の追加、十進など) ・C++の機能の取り込み(属性、u8文字リテラルなど) ・一部のPOSIX関数の取り込み(strdupなど) ・K&amp;Rスタイルの関数定義の削除 が主なものかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C++やPOSIXの機能の取り込みはともかくとして、浮動小数点数周りは目新しい機能で、単なるライブラリー関数だけではなく#pragma等も含めるとまともに実装する処理系は現れるのかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「だいたいC99のFENV_ACCESSすらメジャーなC処理系で実装されてなくて……と思ったけどClangに#pragma STDC FENV_ACCESSを実装する奴がマージされとるやんけ。Clang 12で使えるようになるのかな? https://t.co/HzL0M2yyUf https://t.co/gopObQBHtX」 / Twitter
⚙ D87528 Enable '#pragma STDC FENV_ACCESS' in frontend
Clang Compiler User’s Manual — Clang 12 documentation

C2x Charter(C2x 憲章) - Qiita
WG 14 N 2086 -- C2x Charter
The ISO C WG has started working on a new standard: C2X : C_Programming
C – Preliminary C2x Charter | Hacker News
Urabe, Shyouheiさんのツイート: "次のCで20年ぶりくらいにCのfor文の挙動が変わるぽい。 https://t.co/CIY58JZBIt"
scope of a for loop control declaration
7594591200220899443さんのツイート: "そろそろintmax_tは間違いだったと認めようや、なあ。という提案がCに来ている https://t.co/ad910VQix9"
N2303: intmaxwidth.3emt, a way out
C言語の次期ISO標準となるC2x
C2x - Wikipedia
WG 14 N 2086 -- C2x Charter
7594591200220899443さんはTwitterを使っています 「ちなみにc2xからポインタはアドレスじゃなくなります。詳細は https://t.co/RkF7ZVxFHB を参照してください」 / Twitter
N2362: Moving to a provenance-aware memory object model for C - n2362.pdf
7594591200220899443さんはTwitterを使っています 「これが__attribute__((__malloc__))に対する委員会からの回答なのだと理解している。つまり「このポインタはこの瞬間には他のオブジェクトとエイリアスしません」みたいなやつを取り込もうとしているんだと思う」 / Twitter
papers on formalized memory models
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
井山梃子歴史館さんはTwitterを使っています 「ポインタはベースアドレスとオフセットとprovenanceの束だよ」 / Twitter
provenance - Google 検索
束 - Wikipedia
propagation - Google 検索
7594591200220899443さんはTwitterを使っています 「Provenance-aware memory object model はC2xに入れるんじゃなくて別のTSにすることにしたのか。 https://t.co/m7yjs4P9VR」 / Twitter
n2577.pdf

C11

スラド

[C/C++規格: 10] C11の新機能 その1 -- 新機能概要 | Yoh2の日記 | スラド
[C/C++規格: 11] C11の新機能 その2 -- 型ジェネリック式 | Yoh2の日記 | スラド
[C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド
C言語は滅びるべきか | スラド デベロッパー

C11 の機能 - Oracle® Solaris Studio 12.4: C ユーザーガイド
C言語の最新事情を知る: C11の仕様-脆弱性対応に関連する機能強化点 - Build Insider
C11の仕様-それ以外の主な機能強化点[C言語] - Build Insider
_Static_assert とは - とくにあぶなくないRiSKのブログ
IBM Knowledge Center - _Static_assert 宣言 (C1X)
DCL03-C. 定数式の値をテストするには静的アサートを使う
C17 (not C++17) - Qiita
C11 の _Generic の罠 - Qiita
Fadisさんのツイート: "PhoronixによるとLLVM 6.0からC言語の標準にC17が選べるようになるらしい。そんな標準あったんか、と思って調べたらC11から既知の問題を修正したマイナーアップデートらしい。そしてもう2018年だけどまだドラフトらしい… https://t.co/8qTVqGgxWg"
LLVM / Clang 6.0 Should Be Released Soon With Its Many New Features - Phoronix
アトミック操作ライブラリ - cppreference.com
C言語(C11)で可変長の配列を使う方法 - Qiita
c - The concept of a type name scope in C11 - Stack Overflow
N1570 April 12, 2011 ISO/IEC 9899:201x
ドッグさんはTwitterを使っています: 「今の C って配列の最後の要素の1つ後ろまでポインタ取れるのか int main() { int array[3]; int *p = NULL; return p &lt; &amp;array[3]; }」 / Twitter
ドッグさんはTwitterを使っています: 「@ryutorion 詳しくないのですが,どうやら C11 からの仕様らしいです: https://t.co/hiLd35nmHf (6.5.6-8)」 / Twitter
www.iso-9899.info/n1570.html
M.KさんはTwitterを使っています: 「@Linda_pp これって,ポインタの計算がオーバーフローするかどうか,とかの話では?」 / Twitter
ドッグさんはTwitterを使っています: 「@ryutorion ポインタを足した結果が配列の最後の要素の1つ後ろを指す時,それがオーバーフローしてはいけない(逆に言うとオーバーフローしなければ OK)→ 1つ後ろの要素を指すポインタは合法 と読んだのですが,間違ってるかもしれないです」 / Twitter
M.KさんはTwitterを使っています: 「@Linda_pp どちらかというと,ループの終了条件として最後の次のポインタを指すことはままあることなので,それがオーバーフローしないことを保証すること,って話なのかなと.1つ後ろを取ることが合法って言うよりは.」 / Twitter
FadisさんはTwitterを使っています 「Linuxがgccの最低要求バージョンを4.8から4.9に上げるらしい。ARM向けのカーネルをビルドする際にgcc-4.8がICEする不具合の回避などのつらいコードを消したい、C11の_Genericを使いたいといった理由かららしい https://t.co/bb1C2EKelc」 / Twitter
Linux Kernel Raising Compiler Build Requirement To GCC 4.9 - Phoronix
FadisさんはTwitterを使っています 「まだサポートが終了していないRHEL7は標準のコンパイラがgcc-4.8だが、そんな環境で標準のコンパイラで最新のカーネルビルドするヤツの為にgcc-4.8をサポートし続けるのは辛くなったという判断らしい」 / Twitter

C99

C言語の最新事情を知る: C99の仕様 - Build Insider
プログラミング言語 C の新機能
IBM Knowledge Center - 複合リテラル式
Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
関数定義の一部である関数原型形式の関数宣言子の仮引数型並びと、非原型形式の関数宣言子の識別子並び・宣言並び、および関数定義の一部でない関数原型形式/非原型形式の関数宣言子について - Qiita
Array initialization - cppreference.com

OpenMP

インテル® C++/Fortran コンパイラーによる OpenMP* 3.1 仕様のサポート | iSUS
OpenMP* 4.x による新しいレベルの並列化 (全2回) | iSUS
現在と将来の OpenMP* API 仕様 | iSUS
OpenMP* 5.0 TR7 の仕様抜粋訳 | iSUS
Fadisさんのツイート: "OpenMPの最新の仕様、OpenMP 5.0がリリースされた。OpenMP 5.0では明示的にflushしないと一貫性が保たれないメモリのサポートや、タスク間でのリダクションのサポート、配列から範囲と間隔を指定して部分配列を取り出す文法他大量の機能が追加される https://t.co/ppnZMPGBBT"
OPENMP 5.0 IS A MAJOR LEAP FORWARD - OpenMP

C++

本の虫

EzoeRyou/cpp-book: C++11 textbook
EzoeRyou/cpp14-appendix: Appendix for C++14 features
EzoeRyou/cpp17book: textbook for C++17
cpp17book/003-cpp14-core-binary-literals.md at master · EzoeRyou/cpp17book
cpp17book/004-cpp14-core-digit-separator.md at master · EzoeRyou/cpp17book
cpp17book/017-cpp17-core-u8-character-literals.md at master · EzoeRyou/cpp17book
本の虫: P1337R0: 標準ライブラリへのエイリアスを追加してC++を復活させる提案
Ryou Ezoeさんのツイート: "転職先を探しているのだが、この私のコネを持ってしてもC++17を使っている企業はなかなか見つからないぞ。"
Ryou Ezoeさんのツイート: "プログラマー以外の仕事をするとしたら何だろ。クライミングジムのスタッフとかやりたい。給料低いだろうけど。"
Ryou Ezoeさんのツイート: "C++を単に書くだけの仕事なら、普通に海外に行ったほうがいいんだろうなぁ。"
本の虫: 標準C++規格が3年おきに制定される理由
本の虫: C++20標準規格がほぼ固まった

プリプロセッサ

可変引数が空でない場合のトークン置換 - cpprefjp C++日本語リファレンス
__has_include - cpprefjp C++日本語リファレンス
トライグラフの削除 - cpprefjp C++日本語リファレンス

キーワード

auto - cpprefjp C++日本語リファレンス
registerキーワードを非推奨化 - cpprefjp C++日本語リファレンス
非推奨だったregisterキーワードを削除 - cpprefjp C++日本語リファレンス
alignas - cpprefjp C++日本語リファレンス
alignof - cpprefjp C++日本語リファレンス
static_assert のメッセージ省略を許可 - cpprefjp C++日本語リファレンス
P1152R0: Deprecating <code>volatile</code>

リテラル

生文字列リテラル - cpprefjp C++日本語リファレンス
UTF-8文字リテラル - cpprefjp C++日本語リファレンス
2進数リテラル - cpprefjp C++日本語リファレンス
数値リテラルの桁区切り文字 - cpprefjp C++日本語リファレンス
十六進浮動小数点数リテラル - cpprefjp C++日本語リファレンス
Ryo SuzukiさんはTwitterを使っています 「size_t 用の整数リテラルサフィックス uz が C++23 に入った! auto i = 0uz; // size_t 型」 / Twitter

式と文

整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
厳密な式の評価順 - cpprefjp C++日本語リファレンス
if文とswitch文の条件式と初期化を分離 - cpprefjp C++日本語リファレンス
constexpr if 文 - cpprefjp C++日本語リファレンス
非推奨だった bool 型に対するインクリメント演算子を削除 - cpprefjp C++日本語リファレンス
非推奨だった古い例外仕様を削除 - cpprefjp C++日本語リファレンス
ビットフィールドのメンバ変数初期化 - cpprefjp C++日本語リファレンス
C++ if文再訪 - in neuro
高梨陣平さんはTwitterを使っています 「この記事がものすごくわかりやすかった。C++のLambdaの話。contextのcaptureが内部でどのように実装されているか、コンパイラの解説になっている。 https://t.co/aR0eDTQwCH」 / Twitter
LobstersさんはTwitterを使っています 「Demystifying C++ lambdas https://t.co/u1dgCRTSfL #c++ https://t.co/cHk3zxlKeB」 / Twitter
Demystifying C++ lambdas - Sticky Bits - Powered by FeabhasSticky Bits – Powered by Feabhas

属性

[[fallthrough]]属性 - cpprefjp C++日本語リファレンス
[[maybe_unused]]属性 - cpprefjp C++日本語リファレンス
[[nodiscard]]属性 - cpprefjp C++日本語リファレンス
名前空間と列挙子への属性付加を許可 - cpprefjp C++日本語リファレンス
不明な属性を無視する - cpprefjp C++日本語リファレンス
[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]] - Qiita
謎の用語niebloid - にゃははー

静的リフレクション案

島鉄雄さんのツイート: "Common(Emacs) Lisp のマクロはただのリスト操作に過ぎないんで、他の言語が真似する事は絶対出来ないだろう。 強いて言えば C のマクロで既にある程度カバーできてる。 リフレクションやメタクラスは、Meta Object Protocol (いわゆる MOP)の範疇でしょ。マクロではない。… https://t.co/UDQ62hNh7D"
Ryou Ezoeさんのツイート: "今、C++は関数型プログラミングを取り入れるめどがついているので、C++20でお手軽な関数合成ぐらいできるようになるし、次かその次の規格ではモナドも入るだろう。次にC++が狙うのはCommon Lispのマクロだ。"
Ryou Ezoeさんのツイート: "それを言い出すと本物のオブジェクト指向を実装している言語はSimulaかSmalltalkだけになってしまう。… "
島鉄雄さんのツイート: "Simula とか知らないけど、静的リフレクションとメタクラスを Lisp のマクロに結びつける事に違和感があった Lisp のマクロはリストをいじって見た目を変えるだけのものと考えるべき (dolist (a b) ...) dolist はマクロで、b はリスト型でないといけないけど、マクロはそんな事分からず変形だけする… https://t.co/ctaYDsrq7E"
Ryou Ezoeさんのツイート: "C++の静的リフレクションも、どのように実装するべきかまだ議論中だが、1つの案としてはソースコードのトークン列を得てそこに対して変形ができる案がある。… "
島鉄雄さんのツイート: "なるほど! それなら納得です。Elixir は Lisp 並みのマクロがある事も売りの一つのようだけど、AST をいじくるという地獄の様な仕様になってしまってるので、そうならないように祈るばかりです。… "
Ryou Ezoeさんのツイート: "C++で策定中の静的リフレクション機能は、ソースコード情報をコンパイル時処理で得るだけではなく、改変するという機能もセット。… "
島鉄雄さんのツイート: "了解です!説明ありがとうございました。… "

C++20 - cpprefjp C++日本語リファレンス
is_pod - cpprefjp C++日本語リファレンス
C++20 Contract - in neuro
[C++]さらに出来るようになったconstexpr(C++20) - 地面を見下ろす少年の足蹴にされる私
Fadisさんのツイート: "Haskellを学んできたマンはしばしばC++で>>=をオーバーロードして関数を繋ぎたがるが、大変残念な事にC++の>>=は右結合なので、ストレートに実装した場合その関数は期待した順序で実行されない"
でちまるさん(実際かわいい)さんのツイート: "なので<<=を使えば全て解決する… "
符号付き整数型が2の補数表現であることを規定 - cpprefjp C++日本語リファレンス
Fadisさんのツイート: "C++20で符号付き整数の表現が規格で定まった事でC++17まであった不思議仕様「符号無しを符号付きに変換すると2の補数表現の値が得られるが、符号付きを符号無しに変換した結果は実装依存(n4659 §7.8)」がC++20では「整数型は他の整数型に変換できる(n4800 §7.3.8)」だけになったのは大きい"
Fadisさんのツイート: "Unicodeでは大文字小文字の対応がある文字はどれかが規格で定められていて、全角アルファベット等も含まれている。ここに大文字小文字を区別しない古典的なファイルシステムが合わさると、UTF-8のファイル名はascii外の文字でも大文字小文字を区別しないべきではという悪魔のproposalが誕生するらしい"
ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP
Fadisさんのツイート: "C++20のconceptは少なくとも言語自体にとっては「boolを返すメタ関数をconceptと一目でわかる書き方で書く方法」と「そのメタ関数を使ってconceptと一目でわかる書き方でSFINAEする方法」のセットだから従来のC++から大きな変化ではないよ。標準ライブラリ側はこれを活用して大きく変わるけど"
algorithm - cpprefjp C++日本語リファレンス
FadisさんはTwitterを使っています: 「C言語のポインタは幅広い用途で使えるが、その万能さこそが静的型付け言語のチェックを甘くする原因になる。だからC++ではポインタの用途の一部だけを満たす参照やoptional、スマートポインタ等が提供されていて、ポインタはどうしてもポインタの万能さが必要な時にやむなく使う物になっている」 / Twitter
[C++]コンセプトの5景 - 地面を見下ろす少年の足蹴にされる私
FadisさんはTwitterを使っています: 「gcc10からC++20のコルーチンの試験的なサポートが入るらしい。コルーチンは特定の位置で実行を止め、後で続きから実行ができるような関数で、非同期処理をまるで同期のような読みやすい形で書く、無限に値の列を吐き出す関数を作る、といった使い方ができる https://t.co/kXoubQDT0M」 / Twitter
Experimental Support For C++20 Coroutines Has Landed In GCC 10 - Phoronix
セクスィ・ナカナカピエロさんはTwitterを使っています: 「@fadis_ @adhara_mathphys Pythonでいうgenerator(yield文)みたいなやつですか?」 / Twitter
FadisさんはTwitterを使っています: 「@NakanakaPierrot yieldのようなものをC++で実装するために使うことはできますが、コルーチン自体の返り値はIterableではありません。コルーチンはPythonで言うyieldやasync/awaitといった物をライブラリで実現するための土台となる機能です」 / Twitter
FadisさんはTwitterを使っています: 「コルーチンには「コルーチンから呼んだ関数がyieldしたらコルーチンの呼び出し元まで戻る(=スタックを丸ごと保存する)」stackfulと「コルーチンから呼んだ関数がyieldしてはいけない(=コルーチンのローカル変数だけ保存する)」stacklessの2種類があって、C++の言語機能に入ったのは後者」 / Twitter
島鉄雄さんはTwitterを使っています: 「C++ の場合は A を継承した B と C が有って、B と C を継承した D は A を2つ持つ事になって人間が混乱するってのがあって良くないのだろう。(コンパイラは曖昧な時はエラーにするので混乱しない) なので、仮想継承を使う事になるけど、そうすると仮想関数呼び出しがかなり遅くなるというのがある。 https://t.co/fh1ub7l2zu」 / Twitter
mattn and 100 othersさんはTwitterを使っています: 「オブジェクト指向じゃなく多重継承が良くないよねって言われてるのに「オブジェクト指向は悪」って言ってるの見るとモヤモヤする。そもそもオブジェクト指向のコンセプトに継承とか無い気がするけど。」 / Twitter
島鉄雄さんはTwitterを使っています: 「仮想継承時の仮想関数呼び出しがどれだけ遅くなるか、ベンチマークしてみた。 この状況だと倍遅くなった。(正しい計測コードになってるかは若干不安が有るが…) https://t.co/4qI3IglOfr https://t.co/vbUPt2sZom」 / Twitter
仮想継承時の仮想関数呼び出しのベンチマーク
static variableの初期化順序 - in neuro
7594591200220899443さんはTwitterを使っています 「ところで四半世紀前ならいざしらず今となってはC++はCの上位互換でもなんでもないわけだけれど、じゃあ具体的にどこのへんが違うんですかというのはたとえば以下のレポジトリによくまとまっている。 https://t.co/BT5DWTcRyn」 / Twitter
shafik/determine_c_or_cpp: Determine programatically C from C++ as well as various versions
FadisさんはTwitterを使っています 「もう1つの大きな新機能coroutineも言語機能としては入ったけど、言語が提供するのはstacklessコルーチンなので、現状どこからでも気軽にyield出来るstackfulなコルーチンが欲しかったら「気合で作れ」という修羅の道になっている。C++23も、大きな変化になる気がする」 / Twitter
C++20は最終版に、C++23がスターティングブロックに
C++23 の新機能 - C++ の歩き方 | cppmap
yohさんはTwitterを使っています 「d=std::move(s) データ取出し後にはもう興味がない(実際にはデータが残ってることもある) / d=std::exchange(s, {}) 確実にデータ取出し&クリアしておきたい みたいなニュアンスの違いが」 / Twitter
[C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私
コンセプトのパラメータ置換失敗はハードエラーではない - yohhoyの日記
C++20便利機能の紹介:自動joinスレッドと停止機構 std::jthread, stop_token - Qiita
C++20コルーチンで遊ぶ with OpenSiv3D - Qiita

man

付録 C ISO/IEC C 99 の処理系定義の動作 (Sun Studio 12: C ユーザーズガイド)
6.12 互換型と複合型 (Sun Studio 12: C ユーザーズガイド)
GCC online documentation - GNU Project - Free Software Foundation (FSF)
C Extensions - Using the GNU Compiler Collection (GCC)
Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能

きじねこ

第10回 翻訳フェーズ | 株式会社きじねこ
第9回 浮動小数点数と実数 | 株式会社きじねこ
[迷信] 0xe-0xe はゼロ | 株式会社きじねこ
[C99] 第2回 オブジェクトの宣言 | 株式会社きじねこ
[C99] 第11回 その他、細部のちがい | 株式会社きじねこ
[C99] 第9回 リテラル | 株式会社きじねこ
[C99] 第7回 修飾子と記憶クラス指定子 | 株式会社きじねこ
[C99] 第3回 関数 | 株式会社きじねこ
[C99] 第5回 型と型変換 | 株式会社きじねこ
[迷信] 非局所オブジェクトは外部結合 | 株式会社きじねこ

本の虫

本の虫: 最近のC言語の配列
本の虫: fcloseはリソース解放を失敗しない
本の虫: CとC++の違い:式編
本の虫: C++03とC++11の違い: 式編
本の虫: C++で、(a/b)*b + a%b != aとなる例

Twitter

配列

hsjoihsさんのツイート: "実は、アドレスも型も一致しているのにポインタとしては別、という状況は普通にあり得たりします。… "
hsjoihsさんのツイート: "過去にブログに書いてました。「ちなみに、話が逸れますが、アドレスが同一で型が同一でもポインタとして同一であるとは限りません。」のところです。このことを知らなかったことに由来するバグの話も。 https://t.co/AfS0fgeCQN… "
C(のサブセット)コンパイラを書く上でハマった点:配列編 - hsjoihs’s diary
yoh2さんのツイート: "int d[4][8] で、d[0][10] が d[1][2] と同じにならないことがあるというのは、 &d[0][10] と &d[1][2] が同一アドレス、同一型で結果が異なるというより、 &d[0][10] というアドレス自体が UB により算出不能と考えるべきだと思います。 うーん、言葉だけの問題かなぁ。… https://t.co/K66AFBX7D5"
hsjoihsさんのツイート: "「アドレス値が同じで共に合法なポインタ」という条件を満たす、↓に書いてある「配列の最終要素の次を指すポインタ」vs.「その配列にたまたま隣り合って置かれている配列の先頭要素へのポインタ」とかのほうがよい例かもですね https://t.co/WhmcFM5kYd… https://t.co/JXaaQEYd8M"
Pointers Are Complicated, or: What's in a Byte?
デダルス・ユメノさんのツイート: "「異なるポインタ」の意味するところが曖昧なんですが、その両者は==で比較すれば真になるわけですよね。あれ、もしかしてコンパイラ最適化によって(実行時に本当に同じアドレス値になるとしても)偽になることもある?… "
Shinya Katoさんのツイート: "ubを踏んでいるのでそもそも同じアドレスになる保証がされていないというだけで、実行時に運よく同じアドレスになれば真になるんじゃないですかね?… "
置き引きにあったマヌケな鳥頭さんのツイート: "one past the end ポインタと、隙間なく置かれている次のオブジェクトへのポインタは == で true になるとC言語の規格に明確に書かれていますね… もちろん one past the end ポインタへの関節参照は UB なので、同じはずなのに違うポインタってことになるのかな…… https://t.co/H4VwVPHfrW"

オブジェクトの初期化

Kazuho Okuさんのツイート: "struct の初期化が = {}; じゃダメだとすると {0} か {NULL} かはともかく {{0}} みたいなパターンはちゃんと考えて書かないとダメなのか。めんどくさ"
Fadisさんのツイート: "グローバル変数の0初期化、規格がどうなってるか気になって見たんだけどC11の規格読む限り§5.1.2で「静的に確保されたオブジェクトプログラムの開始前に初期値で初期化される」って書かれてるけど整数型の初期値とは0の事であるとはどこにも書かれてないように見える…"
Fadisさんのツイート: "§6.7.9の10項に静的またはスレッドローカルなストレージを持つ算術型の値はゼロに初期化しろよって書かれてた。よかった、グローバル変数の初期値0はやっぱり期待しても良かったんだ"
ちゃーしゅーねこさんのツイート: "C言語の規格としては未初期化の変数が0ないしnullになるとなっているとしても、それがbssに置かれるかは別問題じゃないの知らんけど"
黄前 久美子さんのツイート: "C 言語の規格として,static や グローバル変数みたいな静的に確保される変数は必ず 0-fill されなければならなくて,ELF の bss はそのために生まれたセクション,というのを正確さを欠いて書いたけどまあそういうことです。… "
黄前 久美子さんのツイート: "普通にスタックに乗る変数は初期化しないと単なる未定義値… "
Yusuke Endohさんのツイート: "次の C プログラムが 0 を出力することは保証される? typedef struct foo { int a; int b; } foo; int main() { foo v[1] = {{0, }}; printf("%d\n", v->b); }"
Yusuke Endohさんのツイート: "何人かに「される」という回答をもらったので仕様書見たら、確かにされるようでした(途中まで初期化してあったら残りは 0 初期化されるらしい)。ありがとうございました… "

register 変数

yoh2さんのツイート: "のっけから濃いのキター! 結論から言うとエラーになるのが正解かと。ISO/IEC 9899:2011 6.7 にある脚注121でアドレスが取れない例として配列→アドレスの暗黙変換が挙げられてます。 #質問箱 #peing_yoh2_sdj… https://t.co/k6Om9ahoBF"
yoh2さんのツイート: "ところで、手持ちの環境では gcc 4.5.4, 4.9.3, 5.4.0, 6.4.0 でエラーに。clang 3.9.1 ではエラーにならず。"

C99 プロトタイプ宣言

Kazuho Okuさんのツイート: "えっCで引数にnon-null制約を宣言すふ方法があるってこと?すごい便利じゃん… "
Keigo Imaiさんのツイート: "Modern C (pdf) https://t.co/fCcGkR0zpr"
Modern C
Keigo Imaiさんのツイート: "puts のプロトタイプ宣言: int puts(char const s[static 1]); この static is 何"
Keigo Imaiさんのツイート: "長さゼロの配列って何だっけと思ったのですが(たしか構造体の最後のフィールドでのみ宣言可能?)、 それとは別に NULL が渡されるのを排除するために static 1 が使える、とのこと。 https://t.co/BjczgzaW1B @objectxplosive"
A nice, little known C feature: Static array indices in parameter declarations
KUDO Muttonski Takashiさんのツイート: "知らなかった、C99 付いていけてないな。… "
Kazuho Okuさんのツイート: "つまり、引数の型が type* ならnullable pointerで type [static 1] ならnon-nullable pointer ってこと"
Kazuho Okuさんのツイート: "とか言ってたら、自分の管理してるコードで `[static NN]` が使われてて、それをC89互換性のために廃止する PR が来てたことに気づいた"
Rui Ueyamaさんのツイート: "C89はさすがにもうよくないですか。… "
Kazuho Okuさんのツイート: "正確にいうと、「C++にないC99の機能」には依存したくないという文脈なんだろうと思います。Visual Studio... https://t.co/WXfdMh7y1e… "
Reader Q&A: What about VC++ and C99? | Sutter’s Mill
Rui Ueyamaさんのツイート: "それはまっとうな要望な気がしますね。… "
Keigo Imaiさんのツイート: "あまり深追いはしてくれない模様ですね… https://t.co/GTKNgfflAv… "
ryochackさんのツイート: "うーん、当然ながらポインタ渡しでは検出してくれないのでやらないよりはマシかな、くらいの感覚。配列のアドレスをそのまま渡すってケースは結構少ないんだよなぁ。 https://t.co/UwX1zjBE7R"
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ

void 引数

藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "ANSI Cより前の話が、もはや忘れられつつある昔話であることを実感する。 / “【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報” https://t.co/OYjiCJd8Mo"
【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報
AoiMoe a.k.aしお兄Pさんのツイート: "ちなみに「引数が無い関数は f(void) と書いたほうがいい」ではなくて、「関数プロトタイプにおいて、引数が無い関数であることを明示したければ f(void) と書かなければならない」だからね。"
SODA Noriyukiさんのツイート: "1980年代後半~1990年代にC書いてた人間には完全に常識だったので、時の流れを痛感する。"

後置演算子

やねうら王さんのツイート: "私にはコンパイラの気持ちはわからないが、コンパイラ作成者の気持ちはわかるので、returnと後置インクリメントを併用したときに適切なコードを生成するのが難しいことはわかるし、当時はそういう地雷を踏みそうなコードはなるべく避けながらプログラムを書くのが常識であった。(と思う)"
FFFumihiro MMMatsuiさんのツイート: "あー確かにコード生成のやり方によってはスタックに積んで即 ret で飛んで直後の加算が実行されないとかのバグありそう"
FFFumihiro MMMatsuiさんのツイート: "後置インクリメントは式の中では加算前の値を見せつつその後に変数が加算されてないといけないから演算子一個なのに吐くコードがちょっと複雑"
FFFumihiro MMMatsuiさんのツイート: "なんであれ演算子にしたんだろう"
FFFumihiro MMMatsuiさんのツイート: "あれが演算子であるために副作用完了点まわりで未定義動作のコードが結構たくさん生産されてるよなたぶん"

式の評価など

まあぼ@cubさんのツイート: "つまり「添字演算子を評価した結果の"値"にアドレス演算子を評価できるのはなぜか」ということか。言語仕様そのままだとコンパイラが作れないってことだよね。指摘した人しゅごい。"
Masaki⊣Haraさんのツイート: "型aの値を単に横にn個並べたものが配列で、アドレスであって参照先が型aであると見なせるものがポインタというイメージ (つまりぜんぜん違う) 似ているように見えるのは、配列のrvalueが特定の文脈で自動的に配列の先頭へのポインタのlvalueに自動変換されるから という認識"
るくすさんのツイート: "まあ別にローカルスコープ内でしか使わない変数をchar *s=" "としようがchar s[]=" "としようが、ホットスポットでも無い限りキャッシュ効率がどうのとかでも無いんだけど、前者の書き方は普通にイラッとくる"
なぎせ ゆうきさんのツイート: "int i = -(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-5; ひゃっほーい… "
りあね xa1 ver 21.5.0さんのツイート: "CastExpressionはUnaryExpressionNotPlusMinusの一種で、それはUnaryExpressionの一種。前置演算子やプリミティブ型へのキャスト演算子の右にはUnaryExpressionが来れるので、キャストと前置演算子は同じ優先度のはず。「-(int)-5」が通ると思う"
Rui Ueyamaさんのツイート: "うわー、C言語初心者レベルで勘違いしてた。xが配列のとき&xもxもxのアドレスなんだった。&xなんてか書かないから忘れてたわ。フルスクラッチからCコンパイラを書いたことすらあるのに。"

水島宏太(ゆる糖質制限)さんのツイート: "一つ提案してみたいのだが、C, Java, Ruby, Python, 等の値渡ししかない言語で、そもそも参照渡しという用語が登場する意味がないので、それらの入門書において、値渡し/参照渡しという用語を使うこと自体をやめてみてはと思う。"

CERT C

PRE

PRE05-C. 字句の結合や文字列化を行う際のマクロ置換動作をよく理解する
PRE10-C. 複数の文からなるマクロは do-while ループで包む
PRE32-C. マクロの引数内で前処理指令を使用しない

MSC

MSC06-C. コンパイラの最適化に注意する
MSC24-C. 非推奨関数や時代遅れの関数を使用しない
MSC15-C. 未定義の動作に依存しない

ARR

ARR02-C. 初期化子が暗黙的にサイズを定義する場合であっても、配列のサイズは明示的に指定する
ARR30-C. 境界外を指すポインタや配列添字を生成したり使用したりしない

DCL

DCL12-C. 抽象データ型は opaque な型を使って実装する
DCL13-C. 関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
DCL21-C. 複合リテラルの記憶域を理解する

MEM

MEM02-C. メモリ割り当て関数の結果は、割り当てた型へのポインタに即座にキャストする
MEM03-C. 再利用可能なリソースに格納された機密情報は消去する
MEM04-C. サイズ 0 のメモリ割り当てを行わない
MEM07-C. calloc() の引数は乗算した結果がラップアラウンドしないようにする
MEM08-C. realloc() は動的に割り当てられた配列のサイズ変更にのみ使用する
MEM09-C. メモリ割り当て関数がメモリを初期化すると仮定しない
MEM36-C. realloc() 関数呼び出しでオブジェクトのアラインメントを変更しない

STR

STR05-C. 文字列リテラルの参照には const へのポインタを使用する
STR11-C. 文字列リテラルで初期化される文字配列のサイズを指定しない
STR30-C. 文字列リテラルを変更しない
STR32-C. 文字列を引数にとるライブラリ関数に null 終端されていない文字配列を渡さない

EXP

EXP34-C. null ポインタを参照しない
EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない

FIO

FIO17-C. fread() を使用するときは、null 終端文字に依存しない
FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

INT

INT09-C. 列挙定数が一意の値に対応することを保証する
INT10-C. % 演算子を使用する際、結果の剰余が正であると想定しない
INT33-C. 除算および剰余演算がゼロ除算エラーを引き起こさないことを保証する
INT34-C. 負のビット数のシフトやオペランドのビット数以上のシフトを行わない
INT02-C. 整数変換のルールを理解する

ERR

ERR30-C. 関数を呼び出す前に errno をゼロに初期化し、関数の異常終了時にのみ errno を参照する
ERR33-C. 標準ライブラリ関数のエラーを検出し対処する

FLP

FLP00-C. 浮動小数点数の限界を理解する
FLP03-C. 浮動小数点エラーを検知して処理する
FLP34-C. 浮動小数点の型変換は変換後の型の範囲に収まるようにする
isgreater - cppreference.com
isless - cppreference.com

fno-delete-null-pointer-checks

KMC Staff Blog:fno-delete-null-pointer-checks
第5回 Linuxのカーネルに潜む脆弱性をつぶすパッチ
JVNVU#162289: ある種の範囲チェックを破棄するC コンパイラの最適化の問題
情報セキュリティ技術動向調査(2008 年上期):IPA 独立行政法人 情報処理推進機構
Using the GNU Compiler Collection (GCC): Optimize Options
[llvm-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang

fread

_sopen_s、_wsopen_s
_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32
_fdopen、_wfdopen
fread
fclose、_fcloseall
Man page of FREAD
FIO17-C. fread() を使用するときは、null 終端文字に依存しない
FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

SEI CERT C Coding Standard - SEI CERT C Coding Standard - Confluence
CERT C コーディングスタンダード
実例で学ぶ脆弱性対策コーディング

Entry Point

TLS(DLL)

Fiber Local Storage

Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
Fibers - Windows applications | Microsoft Docs
Be aware: FLS-Fiber Local Storage – Slava Oks's WebLog
Fiber local storage - 1.66.0
windows - FLS vs TLS, can I use Fiber Local Storage in place of TLS? - Stack Overflow
実行時メッセージ「JMP0015I-U」のシステムからのエラーコードに「0x45A」が通知されます。
Fiber Local Storage - How is Fiber Local Storage abbreviated?
FLS (Fiber Local Storage) limitations in Windows
How does one emulate c++11 thread_local but for fibers (Fiber Local Storage)? · Issue #179 · boostorg/fiber
Fiber (computer science) - Wikipedia
Windows 10プレビュー、“Cドライブ”への圧迫を軽減する機能 - PC Watch

スレッド ローカル ストレージ (TLS: Thread Local Storage)
DLL_THREAD_ATTACHで割り当たTLSをDLL_PROCESS_DETACHで解放するには?
スレッド局所記憶 - Wikipedia
6.6 .tlsセクション
TLS Callbacks - セキュリティごった煮ブログ|ネットエージェント
DLLのマルチスレッド対応
第V部~マクロから呼び出すDLLの作り方
__thread で指定した変数の領域はスレッド終了時に開放されるのか? -> できるだけ使いまわすようです - Qiita
スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)
IBM Knowledge Center - __thread ストレージ・クラス指定子
Using the GNU Compiler Collection (GCC)
スレッドローカルストレージ - cpprefjp C++日本語リファレンス
Thread local storage - 兼雑記
__thread、マルチスレッド変数
c - How does the gcc `__thread` work? - Stack Overflow

プログラムはどこから始まるの? ~ WinMain とは? - Web/DB プログラミング徹底解説
main関数 ‐ 通信用語の基礎知識
スタートアップルーチン ‐ 通信用語の基礎知識
-ENTRY (Entry-Point Symbol)
Assembler/ForFun(x86_32)/06, 32bit Windows with NASM - Glamenv-Septzen.net
winapi - C++ Windows return vs ExitProcess - Stack Overflow
x64 アセンブリーの概要 | iSUS
x64 Architecture | Microsoft Docs
If you return from the main thread, does the process exit? – The Old New Thing
Assembly Programming on x86-64 Linux (04)
プログラミングノート - x86
アセンブラに手を出してみる - Qiita
関数実行の流れを紐解く(弊研究室の某課題について考える2日目) - ごちうさ民の覚え書き
C - CreateThreadで指定するスタックサイズ(43694)|teratail
マルチスレッドのWindowsプログラミングでは、スタックはどう扱われてい... - Yahoo!知恵袋
OSとプログラミング言語の関係 - 現在組み込み系のプログラムを学習中です。... - Yahoo!知恵袋
64ビット環境におけるリバースエンジニアリング - セキュリティごった煮ブログ|ネットエージェント
アレ用の何か
Fadisさんのツイート: "x86_64のABIでは%raxで返り値を返す為、C言語のmain関数でreturnしなかった場合%raxがステータスコードになる #kernelvm"
Fadisさんのツイート: "スタートアップルーチンの段階でスタックポインタの設定などを行う段階で%raxを使っており、ASLRでスタックポインタのアドレスが毎回変わる為毎回異なるステータスコードが帰ってくる #kernelvm"
Fadisさんのツイート: "ちなみにこれ、C++の場合規格でmain関数のreturnが省略された場合return 0;を書いたように振る舞う事が定められているから、C++としてコンパイルすると必ず0が返ると思う #kernelvm"

プリプロセッサ

mcpp

(macro-of-inline report) mcppという選択肢 - テストステ論
mcpp -- a portable C preprocessor with Validation Suite
h8liu/mcpp: A portable C/C++ preprocessor
www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html

本の虫

本の虫: Raw String Literalとプリプロセッサ
本の虫: C/C++で0xf+1は合法なのに0xe+1はコンパイルエラーになるのはなんで?
Shinya Katoさんのツイート: "pp-numberは全ての整数と浮動小数点の形式を内包していて、その形式に則って字句解析すると0xe-8は一つのpp-numberトークンになるはず で、プリプロセッサの処理が終わって値と型を特定するタイミングで整数表現としも浮動小数点としてもありえない0xe-8が出てきてエラーになるということだと思われる"
OS開発ゼミ担当 uchan_nosさんのツイート: "0xe-8は整数/浮動小数点数として解釈できないが,規格では字句解析の段階でpp-number(整数と浮動小数点数を表す)型のトークンになってしまい,後段で整数にも浮動小数点数にも解釈できずコンパイルエラーになる,という話だそうです.添字に浮動小数点数が使えない,というのは関係ない話ですね.… https://t.co/vh1fEHlaKa"
ぷりさんのツイート: "演算子の前後に空白を入れないのがダメなのはコンパイラによっては構文解析に失敗してコンパイルエラーになる場合があるためです。… "
ぷりさんのツイート: "a[0xe-8] とかいうコードを書くとエラーになるんですよ。… "
本の虫: なぜGCCのCプリプロセッサーはlinuxという名前のマクロ名を定義するのか
本の虫: cstdint.hのMIN/MAXマクロ

整数定数式

suzuki shingoさんのツイート: "C でコンパイル時に式が整数定数式か判断するマクロを考えた人がいるみたい。良くこんなの思いついたな » Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming https://t.co/pgOp6AR36O"
Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming
SODA Noriyukiさんのツイート: "非定数式xについて「(x) * 0L」をコンパイラが 0に最適化『できない』ことに依存しているので、コンパイラのバージョンに依存しそうだなと思ったら、gcc-4.4以前だと副作用のない整数式を、このマクロが誤って定数式と見なしてしまうことがスレッドの続きで指摘されてますね: https://t.co/OvdSHP2kTg… https://t.co/HDvdBk3igb"
SODA Noriyukiさんのツイート: "新しいバージョンのコンパイラの方が、最適化能力が落ちているように見えるのがなんか不思議… LLVM 8.1.0 では gcc-4.5以降と同じ結果でした。… "
前田敦司さんのツイート: "「(x) * 0L」を0に最適化したとしても,それはC99規格でいう「整数定数式」ではなく「0になるとわかっている整数式をvoid *にキャストしたもの」に過ぎず,sizeofの結果が異なるということのようです. https://t.co/rO4U40Ffqr… https://t.co/bqaKLblELW"
前田敦司さんのツイート: "あ,それは「0になる整数式」とはまた話が違って,「整数式を整数定数式扱いしちゃった」ってことですね.それは規格違反のバグということになるんでは.たしかにバグのあるバージョンなら動かない,ということはあるでしょうね.… "
前田敦司さんのツイート: "null pointer constant(npc)は「値が0である〈整数定数式〉をvoid*にキャストしたもの」と定義されていて https://t.co/VMHqNU2JYZ たとえば「変数 * 0L」は整数定数式でないのでnpcじゃない,ということですね.… https://t.co/JCZTcQxcoz"
前田敦司さんのツイート: "また,a?b:cで,bかcのどちらかがnpcで他方がポインタなら,結果はnpcでない方のポインタ型になる. そうでなくてどちらかがvoid*なら結果はvoid*になる,と書いてありました. https://t.co/LeYT6XZkml 6の最後.… https://t.co/p2RLZzkfpl"
前田敦司さんのツイート: "まさにこの仕様を用いて,1 ? ((void*)((x)*0L)) : (int *)… は  xが整数定数→ :の左はnpc → 全体は(int*)  xが整数定数でない→ :の左はnpcでないvoid* → 全体は(void*) となってるわけですね.… https://t.co/LU1OAnSGWk"
前田敦司さんのツイート: "補足: ・?:のポインタ型変換の仕様が肝なので,a?b:cの値がbかcかは関係ない.実際 (1 ? …)を(0?…)に変えても動きます. ・ 整数定数式はcaseラベル,(可変長でない)配列のサイズ,プリプロセッサディレクティブなどで使われ,処理系や最適化レベルによらず必ずコンパイル時に値が決まります.… https://t.co/L1dtyfPQYu"
KaiGai Koheiさんのツイート: "https://t.co/25XfMZpHnV PostgreSQLでintやfloatのプリミティブ型演算子のオーバーフローチェックって割とexpensiveなんだけど、ビルド環境によってはこーゆーの使ってもいいよね。(検算するよりキャリーフラグ見た方が軽い)"
Using the GNU Compiler Collection (GCC): Integer Overflow Builtins
Arithmetic overflow checks in C++ Core Check | Visual C++ Team Blog
c++ - How to detect integer overflow? - Stack Overflow
x64 (amd64) Intrinsics List | Microsoft Docs
__readeflags | Microsoft Docs
rL256686
Kirill Yukhin - Re: [PATCH i386] Introduce __readeflags () and __writeeflags () intrinsi

C++でCプリプロセッサを作ったり速くしたりしたお話
プリプロセッサのトークン結合演算子「##」の仕様が不明 - satosystemsの日記
blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
x3J11-86-196.pdf
cpp.algo.pdf
Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
printf 用のマクロの話 - 兼雑記
C言語/前処理指令 - Wikibooks
C/C++ プリプロセッサ リファレンス
Preprocessor Reference
最近プリプロセス時処理が楽しい - 茅の下
How to remove lines added by default by the C preprocessor to the top of the output? - Stack Overflow
#include ディレクティブ (C/C++) | Microsoft Docs
Kazuho's Weblog: pthread_once が嫌いすぎて再実装した話
Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
Clarification Request Summary for C11
herumiさんはTwitterを使っています 「dirty hackが必要になって #define AAA aaa #if AAA == aaa void foo() {} #endif #undef AAA #define AAA bbb #if AAA == aaa void foo() {} #endif というようなコードを書いたらfoo()が二重定義のエラーになってしばらく悩んだ。よく考えたら確かにそうなる。マクロむずい。」 / Twitter
std::めるぽんさんはTwitterを使っています 「BOOST_PP_STRINGIZE が存在してる理由を知ってたおかげで原因不明の問題を解決できた。ほんとプリプロセッサの挙動怖いな…」 / Twitter
std::めるぽんさんはTwitterを使っています 「#define REGISTER(func) void func() { ((Func)dlsym(mod, #func))(); } REGISTER(foo); REGISTER(bar); みたいなことをした時に、foo や bar が実は #define で foo_v2 や bar_v2 みたいな別の名前になってた(しかも foo や bar 関数も dll 内に存在してる)って問題だった」 / Twitter
822823回マクロを展開するとGCCが死ぬ - Qiita
入谷 優さんはTwitterを使っています 「とあるマクロに与えた __VA_ARGS__ が単一引数として扱われて困っていたのですが、MSVC ではちょっとした回避策が必要になるのですね。マクロの展開順序について理解を深めなければ…… https://t.co/tzDtyubnWq」 / Twitter
visual c++ - MSVC doesn't expand __VA_ARGS__ correctly - Stack Overflow
__VA_ARGS__の引数をループするやつはなぜ動くのか - in neuro

型変換

punningの意味・用例|英辞郎 on the WEB:アルク
型変換
型変換
C/C++における整数型の昇格 - Qiita
C言語で暗黙の型変換が発生する16のパターン(+演算子の結果型5パターン) - Qiita
hikaliumさんのツイート: "え…整数の縮小変換って -Wall -Wpedantic -std=c11 つけていてもだめでさらに -Wconversion つけないと教えてくれないの?コンパイラさん、信じてたのに…(想定通りの値が出ないのでQEMUのソースまで読みに行った挙句の初歩的ミスだった)。… https://t.co/p9joqP2nqO"
herumiさんはTwitterを使っています: 「今日の気づき : clangで(unsigned int)(-2.0)はでたらめな値を返す。https://t.co/P0oktu52Br 未定義なのは知っていたけどx86環境なら(unsigned int)(-2)ぐらいになるだろう(こちらはvalid)と勝手に思っていた。VCはそうなった。gccだと0だった(バーションやオプションにもよる)。」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
herumiさんはTwitterを使っています: 「補足。clangだと-fsanitize=undefinedで実行時に「runtime error: -2 is outside the range of representable values of type 'unsigned int'」と怒ってくれる。 https://t.co/gQneIrIyuW」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さすがはclang…B.メイヤー先生の品質基準の一つ「ロバストネス性(仕様外領域の(なるべく安全な)グレードダウン)」みたいな発想は皆無(笑) なお、float f = 2.0; を(u_int)f; にキャストした場合は、他と同じ結果になる様子。 https://t.co/WMuDyQjmBH」 / Twitter
汎整数拡張 - Wikipedia

アライメント

構造体・共用体

Kazuho OkuさんはTwitterを使っています 「全てのメンバが uintX_t である struct の alignof は alignof(uintX_t) に等しい、って C99 の規格上言えるんでしたっけ?」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho alignof は C11 で規定されたものと思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 あっすみません、アラインメントが、という意味です」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho JIS §6.7.2.1 構造体又は共用体オブジェクトのビットフィールド以外の各メンバの境界は,その型に適した処理系定義の方法で調整する。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 ありがとうございます。たとえば union U { struct { uint32_t x, y; } s; uint32_t a[2]; }; において、offsetof(U.a[1]) == offsetof(U.y) である保証はないと」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho 構造体の padding (メンバ間と末尾のメンバの後)が入る条件が処理系定義だから、その保証はないと解釈しました」 / Twitter

倍数

倍数 - Wikipedia
C言語について質問です。以下の仕様を満たす倍数判定... - Yahoo!知恵袋

MS

ROUND_TO_PAGES macro (Windows Drivers)
構造体メンバーの埋め込みとアライメント | Microsoft Docs
集約と共用体
アラインメント (C++ の宣言)

きじねこ

第3回 境界調整(アラインメント)を調べる | 株式会社きじねこ
5.3 アラインメント調整のため、オフセットを切り上げる。 | 株式会社きじねこ
データ型のアラインメントとは何か,なぜ必要なのか?
C/C++ 関数・マクロ集 ((ほぼ?) 処理系・OS 非依存)

Twitter

Izumi Tsutsuiさんのツイート: "であれば、「ARM用としてカーネルをいじるようなヤツならちゃんとルール守ったコードを書け、 unaligned access なんぞするんじゃねえ」ということで、カーネルは常に -mno-unaligned-access 付きでビルドせよ、という姿勢が正しいのかもしれない"
SASANO Takayoshiさんのツイート: "x86/x64であってもunaligned accessは禁止、という方向に持ってった方が良いんじゃないかな…(確か禁止するフラグありましたよね?"
OS作れないマン WalB担当さんのツイート: "C++11から導入されたalignasいいね。手軽。"
Kazuho Okuさんのツイート: "sizeof は変数を引数に取れるのに、alignof / _Alignof はなぜ型しか引数に取れないのか"
Kazuho Okuさんのツイート: "@objectxplosive まあ __alignof__ なければ16にするとかでいいので"
Yaðuaki Möritaさんのツイート: "@kazuho なんででしょうね、alignasでアラインを大きく取った変数の参照取ってデリファレンスしてalignofとかが実装依存になりそうだからかな、、"
Kazuho Okuさんのツイート: "@MoritaYasuaki あー。 p = aligned_alloc(alignof(*p), sizeof(*p)) って書きたいだけなんですけどねぇ"
yohさんはTwitterを使っています 「(n+N)&amp;~N派かな N=(1&lt;&lt;B)-1」 / Twitter
\助けよや/さんはTwitterを使っています 「アラインメント揃えのパディングに便利なイディオム。 [0,1,2,3,4,5].forEach(n =&gt; console.log(n, (n+3) &amp; -4)); 0 0 1 4 2 4 3 4 4 4 5 8」 / Twitter
\助けよや/さんはTwitterを使っています 「2の補数表現ビット列に依存したコードなので、あまり期待してなかった。」 / Twitter
\助けよや/さんはTwitterを使っています 「-1 は当然 all 1 の 11(略)1111で、-2 は 11(略)11110、-4 は 11(略)1100、-8 は 11(略)1000 … ((1 + 3) &amp; -4) =&gt; 4 &amp; 11(略)1100 = 4 ((2 + 3) &amp; -4) =&gt; 5 &amp; 11(略)1100 = 4 ((3 + 3) &amp; -4) =&gt; 6 &amp; 11(略)1100 = 4 ((4 + 3) &amp; -4) =&gt; 7 &amp; 11(略)1100 = 4 ((5 + 3) &amp; -4) =&gt; 8 &amp; 11(略)1100 = 8」 / Twitter
\助けよや/さんはTwitterを使っています 「@yohhoy 確かにそっちの方が直感的ですよね。」 / Twitter
yohさんはTwitterを使っています 「@yoya まぁ小さいBに関しては定数を覚えてしまってるので、どっちでもさほど変わらない疑惑👻」 / Twitter

データ構造アライメント - Wikipedia
剰余演算 - Wikipedia
アライメント計算 : Follow The Master
アライメント(バイト境界)
アライメントを知る - 組込屋
メモリ上での配置に関して、多次元配列と構造体の配列の比較 - in neuro
C++17: 動的メモリ確保とアライメント - in neuro
アライメント解説 - in neuro
GCC - __attribute__ ((packed)) 指定に反してアライメント調整が適用される(29684)|teratail
c - Why does GCC pad functions with NOPs? - Stack Overflow
c - Question about round_up macro - Stack Overflow
Skyrocketing

ビット演算

ビットフィールド

とみながたけひろさんはTwitterを使っています 「@yohhoy webkitという辛いブツがあるんですよね https://t.co/ADzU8yYXlx 「一方で省メモリや高速化なんかの点では、これはなかなかすごく頑張ってるように思います。まず省メモリについては、そこらじゅうで bit field が使われてるとかいう時点で既にアレです」」 / Twitter
WebKit について (コード) - 兼雑記
2007-06-01
\助けよや/さんはTwitterを使っています 「実際のコードでバイナリ記述に使おうとすると struct の word アライメントで、byte がパッキングしたりしなかったりで死ぬ。(何度か死んだ」 / Twitter
yohさんはTwitterを使っています 「@yoya https://t.co/V371DTSGiG プログラマの期待に反して、外部データとのやり取りには使い物にならないですよね。」 / Twitter
EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない
yoh2さんはTwitterを使っています 「環境によって宣言順が異なる struct iphdr の version フィールドと ihl (ヘッダ長) フィールド……」 / Twitter

POPCNT

ビットを数える・探すアルゴリズム
x86x64 SSE4.2 POPCNT
__popcnt16、__popcnt、__popcnt64 | Microsoft Docs
x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
marisa-trie の PopCount を改良しました - やた@はてな日記
Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
Binary Hacks と 64bit popCount 問題 | TAKESAKO @ Yet another Cybozu Labs

Twitter

herumiさんのツイート: "整数絶対値のトリックは昔Oh! FM(-TOWNS)に載っていて感動して高速化にはまった(当時のHigh-Cが既に利用)。ビット演算で今まで一番頭をひねったのは某コーデックのプロファイルで70%を占めてたやつ。 https://t.co/W3xh7jK9jh 「calcは最適化可能」というヒントありでもかなり難しいと思う。#tcfm"
misc/codec-calc.cpp at master · herumi/misc
herumiさんのツイート: "考えてみたい人のために問題にすると、リンク先のcalc()関数はassertの条件下で分岐無しアルゴリズムに変換できる。テーブル参照は使わない。 https://t.co/6ISKNUBHOB"
shinichiro hamajiさんのツイート: "一行になったけどこれで良いのかな https://t.co/uLVp8o4dZ1 https://t.co/bgNE78joyw"
for https://github.com/herumi/misc/blob/master/codec-calc.cpp
herumiさんのツイート: "レスポンスめっちゃはやっ!! すごい。 私の想定解です。コードから想像すると同値な変形をしながらロジカルに攻めたのでしょうか。ループを消すところにひらめきがいりそうに思いますが。 私の場合は出力結果とにらめっこしながら、その結果になるような式を調整して見つけました。… "
shinichiro hamajiさんのツイート: "a&bはaでいいですね。calc_mine1でこの分岐は上位2bitの組み合わせだなあと理解、calc_mine2で3つ目のブランチが消えて上位1bitが異なるかどうかだけでループ止めてるのでclz一発だな、と。当然実際はもっと試行錯誤しています。これを高速化できるという情報無しでされたのはすごいと思います。… https://t.co/QxVxR1XBRD"
herumiさんのツイート: "ビット演算クイズ回答編 https://t.co/pCg5HtSvaY https://t.co/7gspg4slex"
melancholic afternoon
shinichiro hamajiさんのツイート: "僕の試行過程を書いてみた https://t.co/8j0KDewPSi 一気に書いたのに途中で文体変わる不思議 https://t.co/vsybCYy9vC"
ビット演算クイズを解いた時の話 - 兼雑記
herumiさんのツイート: "ビット演算クイズを解いた時の話 https://t.co/SGgeEwDTXc こういう作業の他人の思考経路を見られることはあまりないのでめちゃ面白い(特にbn\anのテーブル簡略化とループいらなくね?のあたり、そうやって突破するんだという)。 https://t.co/Fftbw6tj73"
shinichiro hamajiさんのツイート: "正直同じ問題を解いた人しか面白くない記述だろうなあ、つまり @herumi さん以外に想定読者がいねえなあ、と思いながら書いていたので、面白いと思っていただいてありがたいです。面白い問題ありがとうございます!… "
とみながたけひろさんはTwitterを使っています 「ビットフィールド、最上位ビットに1ビット割り当てると最適化が進むという特性がある(符号判断でビット判断を置き換えることができることが多いため)。まあ、爪に火を点すビンボーという奴ですね」 / Twitter
とみながたけひろさんはTwitterを使っています 「なお21世紀の近代的なCPUは最上位以外でも「ビットが立ってたら分岐」みたいなのを一命令で実行できるので(ARM64)、こういうビンボーは考えなくてもよくなった。x86-64は…BEXTR命令ょゎょゎやし対応CPU少ないめやからなあ…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「複数のbitを同時に触りたいことがあって (例えば bitset &amp; user_modifiable とか)、bool や bit field を使うとそれが面倒くさくなるので、整数型を使って各ビットに名前を定義する派です←完全にオッサンの発想」 / Twitter

Blog Alpha Networking: ビット(bit)操作の覚え書き
Big Endian と Little Endian の判別(Kodama's tips page)
すばらしいビット | プログラミング | POSTD
明日使えないすごいビット演算
bit manipulation - Get bit offset in C++ - Stack Overflow
複数のビットフィールドを持つ数値の並列演算

ポインタ

ポインタ演算
配列とポインタ
3次元配列でのポインタ - C・C++ - 教えて!goo
くいなちゃんさんはTwitterを使っています: "C言語のポインタは簡単です。 例えば、 printf("Hello World!!\n"); と書くところを、 (*************************************printf)("Hello World!!\n"); と書いても動きま
Tsukasa #01さんはTwitterを使っています: "つまり、くいなちゃんの例では * 一回で、"関数型" → "関数へのポインタ型" (暗黙の変換) → "関数型" (* 演算子) という変換が行われてることになる。C9
関数ポインタと実体で引数が違うと、CではエラーにならないがC++ではエラーにな... - Yahoo!知恵袋
C FAQ 5
人はなぜポインタで苦しむのか - Qiita
プログラマでいたい:[C言語]voidポインタの演算 - livedoor Blog(ブログ)
MEM10-C. ポインタ検証関数を定義して使用する
MSC16-C. 関数ポインタの暗号化を検討する
PRE03-C. ポインタ型でない型をエンコードするには define よりも typedef を選ぶ
INT36-C. ポインタから整数への変換、整数からポインタへの変換
EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
EXP37-C. 正しい引数の数と型で関数を呼び出す
EncodePointer function (Windows)
DecodePointer function (Windows)
Protecting against Pointer Subterfuge (Kinda!) – Michael Howard's Web Log
NAKAMURA Minoru's Diary (2010年4月)
S.F.さんのツイート: "タグ付きポインタか。。なるほど。。現代のCPUアーキテクチャは32/64ビットで、4/8バイト でアラインメントされるのが通常だから、アドレスの下位2ビットもしくは3ビットをタグ(フラグ)として利用するのか。。"
S.F.さんのツイート: "更には64ビットCPUであってもアドレス空間は実質はそれ以下だから、更にタグ用に使えるビット数は増えるのか。。"
uchanさんはTwitterを使っています 「なんでstrtol()の第2引数はconstポインタじゃないの??? long strtol(const char *str, char **str_end, int base)」 / Twitter
にゃははー仙人さんはTwitterを使っています 「@uchan_nos 説明が雑すぎた。char*な文字列を使っている場合にconst char*にはできるけどconst char**にはできないのでそうなってるはず。元からconst char*な文字列を使ってればいいんだけど、Cって大体mutableな方を優先して提供している感じなので(正確な議論は知らないけど)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ポインタを純粋なアドレスとして使うのは太古から strict aliasing rule に引っかかって問題になるし provenance 以前にそのあたりを説明するべきだと思う / https://t.co/JLwsBhkCvV」 / Twitter

strict aliasing rules

(翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
strict aliasing rules, type punning解説 その1 - gununuの日記
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
猫科研究所 - gcc option
C - strict aliasing ruleについて|teratail
16.1 strict alias rule · ThePolitewaylearntoCPP17
SGソフトウェア開発ブログ: [C] Cのstrict aliasingについて
strict aliasing rules, type punning解説 その1 - gununuの日記
C - strict aliasing ruleについて|teratail
c - What is the strict aliasing rule? - Stack Overflow
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
猫科研究所 - gcc option
std::aligned_storageを正しく使うためのstrict aliasing rulesとstd::launder - 地面を見下ろす少年の足蹴にされる私
What is Strict Aliasing and Why do we Care?
GCC いろいろ - akcnvの個人的備忘録 @ ウィキ - アットウィキ
【C/C++】Strict Aliasing Rule - Togetter
ISO Cの型違いポインタアクセス禁止規則 - sumiiのブログ
OS自作したい。技術書典6・う38さんのツイート: "strict aliasing ruleとunionてどんな関係になってるんや?"
OS自作したい。技術書典6・う38さんのツイート: "https://t.co/Mhzu2hcon2 にはstrict aliasing rulesに抵触しないエンディアン変換方法としてmemcpyやunionを使った手法が紹介されているけど,普通にビットシフトとor演算を使った方法でも,最適化によってbswap命令に置き換えてくれるみたい.テストコード→ https://t.co/Ez50MPHGwY"
convert_endianness_optimization.cpp

旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
Kazuho OkuさんはTwitterを使っています 「Cのポインタをどう説明するかについては、型ごとのviewであって、viewが重なるか(重なりうるか)に関しては、、、って aliasing, restrict, provenance あたりを説明するのが、僕は一番伝わりやすいと思う」 / Twitter

long double

long double ‐ 通信用語の基礎知識
www-an.acs.i.kyoto-u.ac.jp/~fujiwara/server/longdouble.html
long double - Wikipedia
calculation with long double precision

128 ビット整数

C - 64bit以上のビットボードを扱いたい(18432)|teratail
gcc拡張、128bit integer | messier42の日記 | スラド

@kazuho

Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
Kazuho Okuさんのツイート: "C言語にはクロージャがないからコールバック関数定義してデータ構造体を持ちまわってる? マクロつかえばいいのに、ご苦労じゃね"
Kazuho Okuさんのツイート: "と思ったけど、100行以上続くマクロ展開のあるCコードとか書いてるわ。闇技術www https://t.co/PTgNiPTrbL"
picotls/picotls.c at master · h2o/picotls
Kazuho Okuさんのツイート: "構造化データのcodecをCで書いてるとマクロにブロック埋め込むの超便利でクロージャ気分なんだけど、マクロ内のステートメント単位でデバッガで追えないのだけが辛い。ちなみにこんな感じ https://t.co/k8xRffKEzg"
picotls/picotls.c at master · h2o/picotls
Kazuho Okuさんのツイート: "僕のCコードの中で再頻出のメンバ名は super です。なぜなら struct Dog { struct Animal super; void (*bark)(Dog *dog); }; ... struct Dog *dog = (Dog *)get_animal(...); とか書くから。今時のCなら当然ですよね。"
Kazuho Okuさんのツイート: "言語のもつパラダイムによって特定のデザインパターンを強制されないのがC言語のいい(わるい)ところです"
Kazuho OkuさんはTwitterを使っています 「ふと気になって試してわかったけど、↓みたいな感じで書けば関数宣言をコピーすることできるんだ。。。 typedef __typeof(fprintf) fprintf_t; fprintf_t foo; int main(int argc, char **argv) { foo(stdout, "hello world\n"); return 0; }」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu プロトタイプ宣言しかしてないのでリンクできない感じですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「何をやってたかというと、プロトタイプを全く書かずに、ライブラリ実装のコンパイルタイムでの切り替えをサポートすることはできるのかなーって試してたのでした。(実際にやるかどうかほ別として)できそうという結論に達した https://t.co/RUh0FZEJwM」 / Twitter
introduce `h2o_sysfn` macro; allows deployments to replace certain syscalls with their own by kazuho · Pull Request #2418 · h2o/h2o

今までに遭遇したことのない警告が出て困っています。 - Windows7 3... - Yahoo!知恵袋
Hideyuki Tanakaさんのツイート: "式の型と値の型の区別がついてない人が多いんじゃない?(知らんけど)"
alignas - cppreference.com
/J (既定の char 型の unsigned への変更) | Microsoft Docs

オーバーラップ判定

ほっとさんのツイート: "C/C++で、異なる配列内の要素を指すポインタ同士の大小比較は未定義っての、同僚に指摘してもらって初めて知った。 メモリのオーバーラップを検知したいという状況だったけど、調べてみたらなかなか奥が深いのな… https://t.co/SCZqm5ci8v とか https://t.co/rC9W7i4E0P とか"
C++においてメモリブロックのオーバーラップ判定は不可能なのか - センニジュウヨン
How to check if a pointer is in a range of memory | The Old New Thing
Fadisさんのツイート: "あー、でもundefined behaviorになった時点でコンパイラはこの比較をそれらしいマシン語に落とす必要が無くなるから、それも保証されないか"

MiraclePtr<T>

Kentaro HaraさんはTwitterを使っています 「MiraclePtr(みらくる☆ぽいんた!!)が記事に取り上げられてた。まだ実験段階のプロジェクトですが、Chromiumの生ポインタを「Use-after-freeを検知して安全にクラッシュするポインタ」に性能劣化0%・メモリ劣化0%・コード自動書換で置き換えるというみらくるな構想で、 https://t.co/qXowPSx0Nt」 / Twitter
MiraclePtr<T> One Pager [PUBLIC] - Google ドキュメント
Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(&lt;--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(&lt;--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
Miura HidekiさんはTwitterを使っています 「プログラム解析を駆使して、必要なければGCをスキップして生ポインタを使って必要ならGCを使うっていうことはmmcの経験から可能だろうなーっておもう。問題は、GCとかメモリ管理のランタイム側をそのように対応しないといけないこと。この辺もプログラムに合わせて自動生成するようになっていくと思う」 / Twitter
hikaliumさんはTwitterを使っています 「MTECheckedPtr, めっちゃおもしろい。アロケータのメタデータにタグ情報を突っ込んでおいて、derefするときはそのtagで上位16bitをxorしてからderefする。freeされたらtagを違う値に書き換えておけば、derefするときにnon-canonicalになってuse-after-freeを防げる。うおお。 https://t.co/JVaIsdZhEm」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「https://t.co/tjZR3BEWlU MTECheckedPtr&lt;T&gt; 、なるほどと感心した。セキュリティ的にはオーバーヘッドに対してこれどのくらいカタいのかな。任意アドレスに書く状況になってたらアドレス漏れててタグも漏れてそうで、入口部分の、読ませちゃダメな領域を読んじゃう機会が減るという感じかな」 / Twitter
Kentaro HaraさんはTwitterを使っています 「@shinh タグが漏れてるとアウトだし、せいぜい16bitが限度なので回数攻撃で突破できるかもですね。結局はリスクの程度問題で、いまはUaFのバグ修正に膨大なエンジニアリングコストとインフラコストを費やしてるので、UaFのリスクを減らすことでそれを減らせないかなというお話です。」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@xharaken なるほど、やっぱり mitigation で、トレードオフの問題になる感じですよね。 16bit 限度なのは ASLR の上位 bit に犠牲になってもらえば巨大 null page 作って増やせそうですね……まあ別の mitigation 弱めるのは本末転倒感がありますが。面白いドキュメントありがとうございます!」 / Twitter

Linux

LLVM

本の虫

本の虫: MPEG RVCからLLVMアセンブリを出力するJADE
本の虫: LLVMに電力効率を最適化するコンパイルオプションの議論

blog

LLVM + clang で LLVM IR やアセンブリを出力する – ymyzk’s blog
C のコードから LLVM IR コード(LLVM アセンブリ)を生成したり LLVM ビットコードに変換したりする | Meta Meta Lab.
LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ - 脱力系日記
LLVM bitcodeのCFGを生成する - 脱力系日記
LLVMについて調べたことまとめ - kotetuのブログ
HaskellでLisp to LLVM IRコンパイラ その4 (SSA中間言語) - Arantium Maestum
オープンソース活動がフルタイムの仕事になる仕組みの話|Rui Ueyama|note
2019年度未踏体験記 | カオスの坩堝

OSDN

LLVMのコンパイラ「Clang」、セルフホスティングに成功 | OSDN Magazine
性能を改善した「LLVM 2.5」がリリース | OSDN Magazine
LLVM 2.6リリース | OSDN Magazine
C/C++/Objective-Cサポートが強化された「LLVM 2.8」がリリース | OSDN Magazine
LLVM Project、最後の2.xリリースとなる「LLVM 2.9」を公開 | OSDN Magazine
LLVM Project、LLVM 3.0をリリース | OSDN Magazine
LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine
コンパイラ環境「LLVM 3.2」をリリース、最適化機能を強化 | OSDN Magazine
最適化機能の強化が行われた「LLVM 3.3」リリース、ClangではC++11のフルサポートを実現 | OSDN Magazine
「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine
Appleの64ビット版ARMコンパイラコードが統合された「LLVM 3.5」リリース | OSDN Magazine
Goバインディングが加わった「LLVM 3.6」リリース | OSDN Magazine
「LLVM 3.9」リリース | OSDN Magazine
「LLVM 5.0」リリース | OSDN Magazine
「LLVM 6.0」リリース | OSDN Magazine
「LLVM 7.0」リリース | OSDN Magazine
「LLVM 8.0」登場、WebAssemblyを正式サポート | OSDN Magazine
「LLVM 9.0」リリース、asm gotoのサポートでLinuxカーネルのビルドが可能に | OSDN Magazine

Qiita

Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE) - Qiita
LLVM bitcode基礎知識 - Qiita

Twitter

SSA

Miura Hidekiさんのツイート: "llvmでは基本ブロックがすべて独立していて、IRコードが字面上連続していてもジャンプ命令が必要。今度作るのはどうしようか考えている。llvmの仕様はインプリメントでは楽できるが、使う人が大はまりするおそれがある、というか大はまりした。"
zehnpaardさんのツイート: "いったんASTを自分が定義した別のSSA IRに落とし込んでからllvm irに変換するようにした方がスッキリする"
Shunsuke Shidaさんのツイート: "ASTからLLVM IRを作ってた頃は支配辺境が自明な構文(for, if等)ではあっさりとSSA形式に出来たけど、breakやcontinue等で苦労する羽目に。 バイトコードからの方が最終的には正確にやれそう。"
ドッグさんのツイート: "SSA な処理系の中間言語は割とそんな感じかと(LLVM IR とか)… "
Kenta IDAさんのツイート: "LLVM-IRはやっぱ解析するの前提やし、レジスタマシン、SSAなので楽やなーと思ったりする。 #dotnetconf"
Urabe, Shyouheiさんのツイート: "LLVM IRそんな読みづらいかなあ?いやSSAだから手書きは面倒だし書けとは俺も言わんけどさ。読むのは普通じゃね? http://t.co/0AAS8FH0bx"
Urabe, Shyouheiさんのツイート: "LLVM IRがCよりマシな理由第1位として「手書きがめんどう」という話がある(手でSSA変換できるやつは少ない)。なのでクソコードが書かれる蓋然性が低い。"
光のインターネットの闇さんのツイート: "LLVM IRってSSAだからmovっぽいものがない?"
azuさんのツイート: "LLVM IRはSSAなので変数を再利用しない"
κeenさんのツイート: "LLVMのmem2reg、適当なコード吐いても最適化しくれるくらいにしか思ってなかったけどレジスタが全部SSAなLLVM IRだとミュータブルな変数は全部スタック使うしかなくてmem2regがないとまともな速度出ないのか。"
ロックフリーのkumagiさんのツイート: "x86はmov命令だけでチューリング完全の域に達しているのにLLVM-IRにはmov命令が存在しないからやる気が足りない(SSAを根本から冒涜した無知な発言)"

最適化

うー@技術書典8 Day1う31 BitNOSさんはTwitterを使っています: 「Clangってcosやsinなどの数学関数を副作用が無い前提で最適化してくれないっぽい?引数が同じなら何回も計算し直す必要無いはずなのに,律儀に何回も呼び出してくれちゃう。」 / Twitter
yohさんはTwitterを使っています: 「@uchan_nos https://t.co/aVORPK6mI4 -ffast-mathオプションとかどです?」 / Twitter
Compiler Explorer
とみながたけひろさんはTwitterを使っています: 「@yohhoy @uchan_nos fastmathなしだと毎回例外が起きることを期待するからですねー」 / Twitter
yohさんはTwitterを使っています: 「@takehiro_t @uchan_nos https://t.co/VQGtBfFSzw 同じ効果を得るなら、-fno-math-errnoオプションの方が-ffast-mathより"安全"かもですね。」 / Twitter
c++ - How to force GCC to assume that a floating-point expression is non-negative? - Stack Overflow

x86-64-128さんのツイート: "戻り値がvoidではない関数でreturnを書き忘れた場合,Clangだとret命令が生成されないんだね.戻り値がゴミになるだけかと思ったらプログラムが暴走してびっくりした."
Kazuho Okuさんのツイート: "LLVM の bitcode 使うことで GCC のインラインアセンブリよりも(場合によっては)高速なコードが書く方法 / “Kazuho's Weblog: Writing fast code using C++, LLVM b…” http://t.co/tMHWNmCF"
Kazuho's Weblog: Writing fast, processor-independent code using C++ and LLVM bitcode
Kazuho Okuさんのツイート: "内部中間表現として bitcode 使ってるだけならそれで問題ないですしねぇ RT @Constellation: LLVM, 基本くるくる変わるから, project に突っ込むのが常套手段っぽい."
Kazuho Okuさんのツイート: ".@wasabiz コンパイラは、仕様が不安定な LLVM bitcode より C 言語を出力すべきみたいな話をこのまえ同僚とした"
Taisuke OEさんのツイート: "UnityのWebGLサポートの仕組み。 C#ソース -(mcs)-> .NET bytecode -(IL2CPP)-> C++ソース -(clang)-> LLVM bitcode -(emscripten w/ asm.js)-> Javascript #unitej"
Hajime Moritaさんのツイート: "ところで Vulkan といえばセットになってるシェーダ用バイトコードの SPIR というのがまたやばい。LLVM の bitcode そのまま標準かした仕様。一方でシェーダコンパイラを実行時に動かす OpenGL もそれはそれでやばい。グラフィクス近づくべからず。"
Atsushi Enoさんのツイート: "KotlinのIRからLLVM bitcodeを生成するのがKotlin/Nativeの核心で、LLVM bitcodeさえ出来てしまえば後はllvmがやってくれる領域です(純粋bitcodeではないかもしれない)。Kotlin/JVMと共通化できるKotlin IRを設計したのもすごいけど多分これはK/N部隊の仕事じゃない気がする。… https://t.co/ulm8s4JGyZ"
sicさんのツイート: "C拡張を動かすために LLVM bitcode のインタプリタ持ってるの異常 #rubykaigi"
ぬるぽへ@技術書"典"5か31さんのツイート: "「LLVMの真実」、LLVM bitcodeはarch依存の色々なものが入っていて全然portableじゃないしあーき共通じゃない #kernelvm"
Fadisさんのツイート: "LLVMにbinutilsのstripの置き換えを目指す新しいツールllvm-stripが追加された。stripはオブジェクトファイルや実行可能バイナリから不要なシンボルを削除してバイナリを小さくしたり、うっかり必要なシンボルまで削除して実行不能バイナリを作るのに用いられる https://t.co/CxUZNEwHQv"
LLVM-Strip Introduced As An Alternative To GNU Strip - Phoronix
shinichiro hamajiさんのツイート: "#rebuildfm のSwift話、Swiftはclangと違ってもともとSILていう中間言語がLLVM bitcodeの前にあったので、アクセラレータに投げられるTFグラフの抽出がこのレイヤで自然に行なえる、て話があるのも面白いところだと思う。SILについては https://t.co/4u2GuUI07K"
SIL v13.key
朝はむずかしいさんのツイート: "MS がLLVM IRへのデコンパイラを出したっぽい。今のところ、ELFにのみ対応。https://t.co/DJeVnAPKrq"
Microsoft/llvm-mctoll: llvm-mctoll
10/27,28はOSC Tokyoさんのツイート: "Clangに-fno-pltを付けることが自作OSだと重要かも."
OS自作したい。技術書典6・う38さんのツイート: "vimの補完にclangdを使っているんだけど,しばらくvimを起動しっぱなしにするとclangdがめっちゃメモリ食ってある瞬間にほぼ動作が止まってしまう."
Fadisさんのツイート: "clang9から新しいオプション-ftime-traceが追加されている。gccやclangは以前から-ftime-reportでコンパイルのどの段階にどの程度の時間を要したかを出力できたが、-ftime-traceでは更に階層的な処理の内訳をchrome://tracingで読めるJSON形式で出力する事ができる https://t.co/jIyy3xv6yQ"
LLVM Clang 9.0 Adds "-ftime-trace" To Produce Useful Time Trace Profiling Data - Phoronix
Makoto Kato ︎︎さんのツイート: "The Clang AST can now be dumped to JSON. https://t.co/PTLLZ1yknh まじか"
rL360622
Fadisさんのツイート: "GoogleがLLVMと組み合わせて使う新しいlibcを作ろうとしている。新しいlibcは既存のlibcよりモジュラ−で、non-PIEやstatic-PIEな実行可能バイナリをロードでき、基本的には標準に沿って実装するが今日では使われないような機能まで網羅するつもりはないとしている https://t.co/KoEd3Wl1G6"
Google Developers Are Looking At Creating A New libc For LLVM - Phoronix
Fadisさんのツイート: "LLVMメーリングリストに投稿された内容では、このlibcは少なくとも当初はx86_64だけをターゲットとして実装するとされているが、それに対して別のGoogleの中の人が「Fuchsiaで使いたいからAArch64で動かしたいんだけど、どのへんがアーキテクチャ依存になるの?」って返してる https://t.co/oYxtjLR0u7"
[llvm-dev] A libc in LLVM
uint256_tさんはTwitterを使っています: 「実際, CilkがどのようにIRをアセンブリにまで落としているのか簡単な経路を書くと, IR &gt; DAG &gt; MachineInst &gt; アセンブリ となる」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t さっさとDAGの説明に移りましょう. IRはDAG(directed acyclic graph)形式へと変換される. なぜこんなことをするのかと言うと, グラフ構造のほうがパターンマッチなどを使った変換がやりやすいから.」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t この時点で, 例えば ((node + c1) + c2) のようなグラフが, (node + (c1 + c2)) と変換されます. (cXは定数, c1+c2は定数畳込みされる) ほかにも, x86など複雑なアドレス指定ができる環境では, loadやgetelementptrのまとまりを一つの命令に置き換えるなどの処理もする」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t 次はMachineInst. DAGはMachineInstへと変換されるが, これは何なのかというと もはやグラフ構造ではなく命令の列. どんな命令なのかと言うと, 特定の命令セットの命令や, Cilk特有の命令が混じった状態のもの.」 / Twitter
uchanさんはTwitterを使っています 「__attribute__((interrupt))を付けているのに,Clangがスタックの計算をミスっている気がするよ。」 / Twitter

LLVM - Wikipedia
LLVM Language Reference Manual — LLVM 9 documentation
LLVM Bitcode File Format — LLVM 8 documentation
LLVM Bitcode Introduction
emit-llvm - Google 検索
clang - the Clang C, C++, and Objective-C compiler — Clang 10 documentation
"compiler-rt" Runtime Library
libunwind LLVM Unwinder — libunwind 8.0 documentation
LLVM Backend の紹介
AddressSanitizer — Clang 11 documentation

GCC

KMC Staff Blog

KMC Staff Blog:cast-as-lvalue
KMC Staff Blog:gccの便利なオプション (-save-temps)

本の虫

本の虫: GCCのSVN trunkをビルドする方法
本の虫: Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる
本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張
本の虫: GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話
本の虫: GCC 4.8でぶっ壊れるSPECのお粗末なコード
本の虫: GCCエクスプローラー
本の虫: ソフトウェアの思想が設計にもたらす影響
本の虫: GCC 6にインデントミスの警告機能が追加

blog

x86/x86_64関数呼び出しチートシートを書いた | d.sunnyone.org
[GDB] Linux x86-64 の呼出規約(calling convention)を gdb で確認する - th0x4c 備忘録
はじめてのにき(2018-09-28)
SEGV探偵が往く - なるせにっき
gcc 組込み関数(memcpyとか)のインライン展開抑制
GCCの拡張機能を使ってSTLもどきを作る | 株式会社きじねこ
melancholic afternoon
gccのインラインアセンブラ内からcのラベルにgotoでジャンプ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

OSDN

GCCプロジェクト、25周年記念リリースとなるGCC 4.7.0を公開 | OSDN Magazine
C++への移行が完了、最適化機能も強化された「GCC 4.8」リリース | OSDN Magazine
C++11やC++14のサポート改善や最適化機能の強化が行われた「GCC 4.9」リリース | OSDN Magazine
GCC 5系初のリリースとなる「GCC 5.1」登場 | OSDN Magazine
「GCC 5.2」リリース、多数のバグが修正される | OSDN Magazine
140件以上のバグを修正した「GCC 5.3」リリース | OSDN Magazine
5系で最後のリリースとなる「GCC 5.5」公開 | OSDN Magazine
「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine
「GCC 6.4」リリース、不具合修正がメイン | OSDN Magazine
「GCC 7.1」リリース、長らく使われていたReloadがLRAに置き換えられる | OSDN Magazine
「GCC 7.2」が公開 | OSDN Magazine
「GCC 7.3」リリース、CPUの脆弱性「Spectre」への対応も含む | OSDN Magazine
「GCC 8.1」リリース | OSDN Magazine
8系最初のポイントリリースとなる「GCC 8.2」が公開 | OSDN Magazine
「GCC 7.4」が公開、バグ修正が中心 | OSDN Magazine
「GCC 8.3」リリース | OSDN Magazine
「GCC 9.1」リリース、D言語サポートが追加される | OSDN Magazine
「GCC 9.2」リリース | OSDN Magazine
GCC7系の最終リリースとなる「GCC 7.5」リリース | OSDN Magazine

Qiita

GNU コンパイラ・コレクション C言語拡張 - Qiita
x86-64プロセッサのスタックを理解する - Qiita
MacのGCCで返り値を返さない関数を書くと鼻から悪魔が出る - Qiita
コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita

Twitter

Fadisさんのツイート: "メモリ1GBのマシンではもはやGCCのアップデートが自力でできないという厳しい現実に直面している"
Fadisさんのツイート: "gcc「警告: {}無しのif文の次の行に同じインデントで文を書くの、if文の中身と見間違われるからやめといたほうがいいんじゃないかな」"
品川 高廣さんのツイート: "MinGW の gcc は -mno-ms-bitfields を付けないと struct の __attribute__((packed)) を黙って無視するのか。これは酷い。"
Kazuho Okuさんのツイート: "gccにも__has_builtinが来そうな流れ? / “66970 – Add __has_builtin() macro” https://t.co/Zacd0derfz"
NOKUBI Takatsugu野首貴嗣さんのツイート: "SEGV探偵が往く - なるせにっき https://t.co/1FXYvbbQcM 「CFLAGSの行に-save-tempsを追加してビルドし直すとコンパイル中の一時ファイルが残ります」知らなかった。ずっとgcc -Eしていた…結構前に新設されたオプションのようだ"
Kazuho Okuさんのツイート: "union使った型変換はコンパイラ依存。GCCでは合法 https://t.co/zqOrxLkF3K"
Structures unions enumerations and bit-fields implementation - Using the GNU Compiler Collection (GCC)
とみながたけひろさんのツイート: "そうそう、最近のgccって「おまえバージョンコントロールソフトでコンフリクトした部分を直してないだろ」とか「これはgoto failバグじゃねーの」みたいなのを専用の警告で教えてくれるんだよな。なんか笑ってしまうが笑ってはいけないんだろうな…"
taklさんのツイート: "昔相当頑張って調べた記憶がある。昔の話だけどEBP使わずにESPだけを使うと遅くなるケースがかなりたくさんあった。gcc3の頃は-O3付けても-fomit-frame-pointerが有効にならなかった。最近は-O3付けると-fomit-frame-pointerが自動で有効になるから、コンパイラかCPUの進化で良くなったんだろう(昔話)"
はぇ~☆さんのツイート: "ローカル変数にEBPを使うのはABIでそう定められているからなので、本来、最適化とは関係ないっぽいです。ESPを使えば汎用変数が1つ自由になるので確実に速くなります。EBP / ESPどちらにしてもスタックのアライメントに注意しないとローカル変数の参照が遅くなります。… https://t.co/aeyDBYlgSl"
はぇ~☆さんのツイート: "んで、EBPを使う場合はスタックのアラインメントとは別にEBPのアライメントが可能なので、コード生成が楽になります。とはいえESPとてスタックに積むサイズに注意を払えばアライメントは維持できるわけで。そんな程度の差だそうです。… "
taklさんのツイート: "こんにちは。気になったので少し調べてみたのですが、最適化マニュアルの1997年版では「葉関数ではEBPをGPRとして使え」1999年版では「デバッグ情報が不要なときはESPベースの、必要なときはEBPベースのスタックフレームを使え」になっていました。世代毎に色々ありそうですね。… https://t.co/xKWo4ndu8C"
Kazuho Okuさんのツイート: "sprintf(char [6], "%" PRIu16, ...) が GCC でバッファサイズが足りないと言われることがあるというのと、それが HEAD で修正されたという話を読んだ。なるほどこれはこうなるわ... https://t.co/R8961RXSTB"
Kazuho Okuさんのツイート: "習性としては、予約済のマクロを再定義した場合の挙動は未定義という規約を利用して、GCC側で PRIu16 のマッピングを "%hu" あたりにハードコードしたのかなと想像"
ともきさんのツイート: "gcc -g でコンパイルして objdump -S すると (VS でよくある) アセンブラと C を同時に見るモードになることがわかった https://t.co/Wat6thyOgE"
Shiro Kawaiさんのツイート: "うお、いつの間にかgccが、未宣言関数呼び出しのwarningに似ている関数名をdid you mean...?ってサジェストしてくれるようになってる"
Fadisさんのツイート: "gccの-Wallが名前に反して全ての警告を有効にしなくて、更に多くの警告を有効にするための-Wextraがあるけど、それでも有効にならない警告があって、そいつらを1つづつ有効にするのめんどくさいから、-Weverythingで全部有効になるようにしようぜ、という提案がなされている https://t.co/ygUtTq7uwJ"
GCC Unlikely To Adopt A "-Weverything" For Exposing All Possible Code Warnings - Phoronix
Fadisさんのツイート: "gccの警告全部盛り-Weverything、一見良さそうに見えるけど「お前のインデントが気に入らない(-Wmisleading-indentation)」とか「Effective C++読んで出直してこい(-Weffc++)」とかものってくるわけでだな…"
Fadisさんのツイート: "コンパイルエラーを人間が読みやすい形で出力する事は一方でコンパイルエラーをパースするスクリプトを発狂させる事になる為、gcc9はコンパイルエラーをより読みやすい形式に変更すると同時に、コンパイルエラーをJSONで出力できるようになるらしい https://t.co/tgysp6OBnu"
にゃははー仙人さんのツイート: "インクルドガードがわからないから2回読まないといけないというの、もう何年も前にコンパイラはインクルードガードを識別して展開をスキップしてるからそれは速度向上の理由じゃない https://t.co/MdEYZD2Njp #cppmix"
The GNU C Preprocessor Internals: Guard Macros
Fadisさんのツイート: "svnからgitへの移行を進めるgccが一部のまだ変換されていないブランチを除いてgithubで見れるようになったらしい。gccはsvn上の全てのブランチ、全てのコミットをgitに移そうとしていたが、gccの歴史が長すぎて難航、メモリ価格の高騰によって頓挫しかかったりしていた https://t.co/arBhv3e3iI"
A Linaro Developer Has Taken Up The Effort Of Converting GCC's SVN To Git - Phoronix
Fadisさんのツイート: "これ、コンパイラのバージョンの問題じゃなくてNXビットまたはそれに類する仕組みを持つアーキテクチャであることと、ldがそれを活用していることの2つが条件じゃないかな"
←↓↑→さんのツイート: "今日一部の識者と話した結果、main = 195;は最新のgccでコンパイルした場合だとSegmentation faultが発生してしまうけど、__attribute__((section(".text"))) main = 195;ならば動くという事を知った。 実行結果:https://t.co/Yg3pVuNDHT"
Kazuho OkuさんはTwitterを使っています: 「C互換のクロージャは昔のGCCが-fnested-functionでやってて、あれはスタック上にトランポリンコード生成してたけど、ヒープにコードと変数領域わけるとか近代的なやり方すれば今でも可能だとは思うんですよね」 / Twitter
taklさんはTwitterを使っています 「「GCCだと」整数をポインタにキャストしたときのビット表現がどうなるか定められている。 https://t.co/uTEjdbk3Gn ヌルポインタは「定数の」0をポインタに変換したときに得られるので、ヌルポインタでないビット表現が0のポインタを得るには (void *)(uintptr_t)0 とかでいいと思うけど、自信ない。」 / Twitter
Using the GNU Compiler Collection (GCC): Arrays and pointers implementation
herumiさんはTwitterを使っています 「https://t.co/37AzusUhoc Cの規格(6.3.2.3 3)では整数定数0か(void*)0がヌルポインタ(NULL)。NULLへのアクセスは未定義。したがって0へのアクセスは不可能。それ以外の整数からポインタへのキャストは処理系依存。 このコードはNULLへのアクセスと等価とみなしてgccやclangはud2を生成するようです。」 / Twitter
hikaliumさんはTwitterを使っています 「@uchan_nos uint8_t *p = 1; p--; *p = v;」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@hikalium @uchan_nos アドレスを即値指定した時点でUBになったりしません? だとしたら0番地に書くのも処理系・プラットフォーム依存なのでその処理系特有のマクロが用意されていると仮定して良さそうな」 / Twitter
herumiさんはTwitterを使っています 「ちなみにud2は無効例外を出す命令。 CPUのパイプラインでud2を検出すると継続する命令のデコードを停止してCPU負荷を下げる働きをします(Intel最適化マニュアル3.4.1.5 Branch Type Selection)。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi これカーネルや組込だと怖い感じがするのですが、別途0番地へのアクセスを許可したりNULLを別の値に変えるコンパイラオプションがあるのでしょうか」 / Twitter
herumiさんはTwitterを使っています 「@kazuho ちゃんと調べてないですがgccだと-fno-isolate-erroneous-paths-dereferenceというオプションがありました。 *(char*)0 = 1;が-Ofastでも期待通りの出力をしました。clang-8はそのオプションは無いようです(同様のものがあるかは未確認)。」 / Twitter
herumiさんはTwitterを使っています 「@kazuho -fno-delete-null-pointer-checksだとgcc/clangともに*(char*)0 = 0;で期待する(?)コードがでました。dereferenceしてるのでその先のポインタはNULLじゃないとみなす? 本来int a = p-&gt;v; if(!p)...の後ろのチェックを省略するやつ(デフォルトon)なので意味的に逆な感じもするのですが。@hikalium」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @hikalium おー。名前はともかく https://t.co/PrJRKGyXl9 の説明みると、これが null へ理由があってアクセスしうる場合に設定すべきフラグのようですね」 / Twitter
C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium

Q & A

C - アセンブリとC言語(47437)|teratail
c - Trying to understand gcc option -fomit-frame-pointer - Stack Overflow

depfile gcc format - Google 検索
GCC -mtune 何やってるか
微妙に便利なgccのオプション - in neuro
difference between gcc and vc
C++とCは互換ではないです (#2214382) | GCC、CからC++への移行が完了 | スラド
Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
新しいGCC 8.1がC++2aのいくつかの機能をサポート
45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
C言語におけるラムダを関数マクロで実現したものです。 GNU拡張文法(複文の式化、関数内の関数定義)を用いているので、gccでしか用いることができません。 また、トップレベルで用いることも不可能です。 C++でもコンパイルエラーにならないように、C++0xのラムダに変換するようにしています。 利便性を考え、ある程度の省略表記を許すようにしています。
GitMirror - GCC Wiki
Instrumentation Options (Using the GNU Compiler Collection (GCC))

list_head ‐ 通信用語の基礎知識
list_entry ‐ 通信用語の基礎知識
container_of ‐ 通信用語の基礎知識
linux-2.6.25/container_of() - コグノスケ
ユーティリティー - container_of() - linuxのメモ
container_ofマクロ - Linuxの備忘録とか・・・(目次へ)
container_of(マクロ): ふらふら日記
container_of()/linux2.6 - LinuxKernelHackJapan
おべんきょーぶろぐ: container_of
container_ofでsysfsのコールバック関数を一元化 - shimada-kの日記
Callgrind + Kcachegrindで関数呼び出しのトレースをする - Qiita
ソースコード直接実行のテクニック - 何とは言わない天然水飲みたさ
bcc(1): Bruce's C compiler - Linux man page
あじのり→ᓚᘏᗢ ‹ロボマス!さんのツイート: "関数の型を書いたあと改行するスタイルは初めて見た… "
藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "それはUnixでは標準的なスタイル。こうすると^hogeで関数定義を探せる。GNU https://t.co/JQuSui39Oi もこのスタイル。https://t.co/7N1kAyiaDH"
GNU Coding Standards
SODA Noriyukiさんのツイート: "*BSD系のカーネルで使われているスタイル KNF - kernel normal form もこのスタイルですね: https://t.co/njRYAuY76V… "
src/share/misc/style - view - 1.54
社会人でもOSを作りたいさんはTwitterを使っています: 「初心者がC言語でまず覚えるべき構文 __attribute__((interrupt))」 / Twitter
電子工作室

blog

NASA 小野雅裕氏に聞く、なぜ宇宙では「C言語」が使われるのか 『宇宙兄弟』の人気コラムニスト|ビジネス+IT
メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
10年ほど後のBinary Hacks - 兼雑記
はじめてのにき(2018-06-21)
C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
プログラミング、リファクタリング、そしてすべてにおける究極の疑問 | iSUS
巡回的な添字
const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue
Cの配列はa[i][j]とa[i*Nj+j]のどちらが速いか試してみた | ナンクル力学系
CASL II 入門講座 第5章 数値を10進数の文字列に変換する
10進文字列と整数値の相互変換 - プログラミングのメモ帳
整数を文字列に変換してみる: 毒を食らわば皿までど~ぞ
セルフホスティングCコンパイラを書いた - 茅の下
コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
compilium v2 におけるdeclarationの実装 - /var/log/hikalium
低レイヤを知りたい人のためのCコンパイラ作成入門
RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
マジックナンバー0x03F566ED27179461の求め方とHD流のNLZ - Koonies/こりゃいいな!
cccコンパイラのバックエンド - molecular coordinates
本の虫: MSVCのSTLがGitHubで公開
microsoft/STL: MSVC's implementation of the C++ Standard Library.
Kazuho's Weblog: C言語で配列の要素数を安全に数える話
atoi関数のかしこい実装 - yohhoyの日記
条件変数 Step-by-Step入門 - yohhoyの日記(別館)
C++ミューテックス・コレクション -みゅーこれ- 紹介編 - yohhoyの日記(別館)
C++ミューテックス・コレクション -みゅーこれ- 実装編 - yohhoyの日記(別館)

POSTD

学校では習わないコーディングスキル:オブジェクト所有権 | プログラミング | POSTD
C言語 | POSTD
高速なハッシュテーブルを設計する | プログラミング | POSTD
C言語パズル集:Cにまつわる興味深い問題あれこれ | プログラミング | POSTD
2016年、C言語はどう書くべきか (前編) | プログラミング | POSTD
2016年、C言語はどう書くべきか (後編) | プログラミング | POSTD
C90, C99, C11, C++98, C++11で異なる動作をするコード | プログラミング | POSTD
C++11のスレッド、アフィニティ、ハイパースレッディング | プログラミング | POSTD
C言語、知ってるつもり? | コンピュータサイエンス | POSTD
私はC言語を知らない | コンピュータサイエンス | POSTD
型安全性とは何か | プログラミング | POSTD

Qiita

printf のマイナーな機能の紹介 - Qiita
linuxカーネルで学ぶC言語のマクロ - Qiita
1バイトが8bitに定まったのは2008年 - Qiita
char の符号 - Qiita
sizeof演算子にまつわるアレコレ - Qiita
C言語のバグ回避をするための習慣 - Qiita
C言語分かってなかった (I Do Not Know C) - Qiita
C言語のポインタを含む構造体の初期化まとめ。 - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第2回 : 符号無し整数型のチェック) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第3回 : C言語の整数の性質を知る) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第4回 : 符号付き整数型のチェックと動機の動機) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第5回 : 続・符号付き整数型のチェック) - Qiita
printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
Asyncify を使ってみた - Qiita
reallocの怪 - Qiita
C言語における多次元配列の動的な確保 - Qiita
MISRA related document - safety and security on c and c++ - Qiita
Ancient C探訪記
shinichiro hamajiさんはTwitterを使っています 「式だと 6B が最短だと思ってて、その中では --*""; が好きで SEGV デバッグする時に使ってる https://t.co/3r8zdb42JH」 / Twitter
C言語で16文字でセグフォらせる - Qiita
C言語でオブジェクト指向を表現する (クラス、継承) - Qiita

GitHub

mimalloc

ドッグさんのツイート: "MS が公開した新しい汎用メモリアロケータ mimalloc 気になる.3500 LOC の小ささで高速高効率(benchmark あり)セキュアで,malloc をそのまま置き換えて使える | 'microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.' https://t.co/NSYMGEXf8N"
microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.
ドッグさんのツイート: "まだよく読んでないけど,でかい1つの free list ではなくページごとの小さい free list をたくさん持つらしい.あとページ内のメモリが全開放されると積極的に OS に返すらしい.technical report の paper: https://t.co/Bt9lC3zhMz"
Mimalloc: Free List Sharding in Action - Microsoft Research
Microsoft、高性能メモリアロケータ「mimalloc」公開 | マイナビニュース

libdivide, optimized integer division
ridiculousfish/libdivide: Official git repository for libdivide: optimized integer division
はじめてのにき(2018-03-13)
8cc/parse.c at master · rui314/8cc · GitHub
rui314/9cc: A Small C Compiler
https://maierfelix.github.io/mini-c/
maierfelix/mini-c: C to WebAssembly compiler
まさみさんは語りたいさんのツイート: "G-FreeはROPで利用されるガジェットになりうるコードシーケンスを生成しないCコンパイラのようだ。そしてx86のガジェットコード面白い。CISCだけにやりたい放題だ(笑)。 https://t.co/xm0vGaR1Tk… "
acsac2010rop.pdf
pagabucさんのツイート: "Today we are releasing clang-gfree, a set of LLVM machine passes to produce (almost) gadget-less binaries for x86-64! Go check it out: https://t.co/ZSUIe4gJtr"
pagabuc/gfree: Implementation of G-Free: Defeating Return-Oriented Programming through Gadget-less Binaries
Fadisさんのツイート: "libxsmm: Intelアーキテクチャ上で小さい行列を効率よく計算するために作られたライブラリ https://t.co/JCouuNTCnW #kernelvm"
hfp/libxsmm: Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives.
gifnksm/gifcc: Tiny c compiler
chikoskiさんのツイート: "ES5をCにコンパイルするツール、JS2C https://t.co/zkhgpD4DzY 開発中のようで、ノート(https://t.co/m9rliFekyO)やブログ(https://t.co/GQBeobM22z)は示唆に富んでて面白い。"
js-to-c/NOTES.md at master · timruffles/js-to-c
septag/sx: Portable base library for C programmers, designed for performance and simplicity.
cdecl.c
Rui Ueyamaさんのツイート: "不必要に難しいことで有名なC言語の型の構文を解説してみた。これを読めばvoid (*signal(int, void (*)(int)))(int)とかも読めるようになるはず(多分)。 https://t.co/a85pc5FsV2"
低レイヤを知りたい人のためのCコンパイラ作成入門
(*(void (*)())shellcode)() とは - Qiita
hiromi-miさんはTwitterを使っています: 「というわけで #seccamp 2019 Y-II Cコンパイラ自作ゼミに参加してきました、ありがとうございました. 結局、C++のクラス機構の一部、ステップ実行情報の出力、template &lt;typename T&gt;add&lt;T&gt;(T a, T b); のような関数定義を実体化できるようにしました. 進捗は次の通りです: https://t.co/tiEFbPYtG0」 / Twitter
hiromi-mi/hanando-fukui: Self-hosted (Subset of) C Compiler
DoctorWkt/acwj: A Compiler Writing Journey
Cello • High Level C
orangeduck/Cello: Higher level programming in C
arithy/packcc: A packrat parser generator for C
Rui UeyamaさんはTwitterを使っています 「いままでにないレベルでchibiccに機能追加している人からメールがきた。GCC互換inline asmとかint128みたいな機能とかが増えてる。これはすごいな。https://t.co/LlyFPZiD6z」 / Twitter
cosmopolitan/README.cosmo at master · jart/cosmopolitan

Wikipedia

演算子

条件演算子 - Wikipedia
エルビス演算子 - Wikipedia
Null合体演算子 - Wikipedia
Null条件演算子 - Wikipedia
Three-way comparison - Wikipedia
CとC++の演算子 - Wikipedia
CとC++の演算子 - Wikipedia

ライブラリ

ssize_t ‐ 通信用語の基礎知識
time_t - Wikipedia
printf - Wikipedia
printf - Wikipedia
strlcpy - Wikipedia
strlcat - Wikipedia
strlcpy(3)
strscpy
まさみさんは語りたいさんのツイート: "TLの皆さんから教わったstr*cpy再度まとめ ・strncpy:固定長の配列に文字列をコピーするための関数 ・strlcpy:ユーザが勘違いしているstrncpyの挙動をするように作られた ・strscpy:挙動をより安全側に倒したstrlcpyの実装(ただし極端なアドレスを渡せば死亡する)"
まさみさんは語りたいさんのツイート: "ちなみにlinuxカーネルのstrncpy_from_*は動作が違う・・・ ・strncpy_from_user:strncpyとほぼ同じだがdstの残りを0埋めはしない ・strncpy_from_unsafe:strscpyとほぼ同じだが-E2BIGを返さない。"
まさみさんは語りたいさんのツイート: "strscpyの実装、面白いな。2つのループになってるのか。1つ目はlong型でaligned access、2つ目はcharで1byteずつアクセスしてる。"

引数 - Wikipedia
評価戦略 - Wikipedia
結合法則 - Wikipedia
冪乗 - Wikipedia
絶対値 - Wikipedia
端数処理 - Wikipedia
フリースタンディング環境 - Wikipedia
C99 - Wikipedia
C11 (C言語) - Wikipedia
Duff's device - Wikipedia

Twitter

その他

histric-1

Kazuho Okuさんのツイート: "Cのソースファイルから(プリプロセッサかけた後でもいいので) ASTをサクッと、JSON等で取り出すプログラムってないのかしら。structをダンプするコードを生成したい"
Kazuho Okuさんのツイート: "こういうコードを手書きするの嫌なんです… "
成瀬さんのツイート: "libclangとか使う感じですかねぇ。前に書いたスクリプトだと https://t.co/tcqh5OJUIm こういう… "
Add CRubyBot · nadoka/nadoka@1b7ae45
Kazuho Okuさんのツイート: "libclang を使うプログラムを書くのは嫌じゃーって思ってたんですが、なるほど FFI で叩くという手は良いかもですね… "
Daisuke Makiさんのツイート: "うろ覚えですが、これがgoで似たようなことしてた気がします https://t.co/OLAFiEnzhp… "
Kazuho Okuさんのツイート: "srd!!! ありがとうございますありがとうございます… "
Yoshimasa Niwaさんのツイート: "`clang -cc1 -ast-dump` の結果をなんかスクリプトでちょいちょいする感じですかね… "
Keigo Imaiさんのツイート: "大昔に Haskell の Language.C で似たようなことをやりました。この手のことをやるの代数的データ型があると最強ですね。 https://t.co/kzjJukBpUH… "
Language.C を使ってC言語のソースコードを解析する (with Data.Generics) - keigoiの日記
ケケモコソカメニハさんのツイート: "https://t.co/L82sPEejNW ocamlですが、まさにそういうことを目的としたCILもあります… "
cil-project/cil: C Intermediate Language
Qさんのツイート: ".oO(CIL開発が停滞しているのでは。。。)… "
島鉄雄さんのツイート: "stdio バッファは printf 等が改行を出力する度にバッファをフラッシュするもんだと思ってた。 printf は改行かもしれないけど、fwrite はファイルに書き出した後に fflush() せずに close() (fclose() でない)すると何も書きだされない。 I/O のたびに自動的にフラッシュするは違うような気がする…… https://t.co/s6nvyep2Pq"
島鉄雄さんのツイート: "#include <stdio.h> #include <unistd.h> int main() { FILE* file = fopen("test.txt", "w"); fwrite("test", 1, 4, file); // fflush(file); close(fileno(file)); } このコードを実行すると 0 バイトの test.txt が書きだされる。(Linux, Windows とも) fflush() すれば勿論 4 バイトになる"
島鉄雄さんのツイート: "Wikipedia を見ていたら uint64_t xorshift128plus(uint64_t state[static 2]) { [static 2] みたいな書き方を始めて見た… stackoverflow に答えがあったけど、少なくとも2要素があるという事らしい でも1要素の配列を渡してもワーニングすら出ないのはC言語らしいがw https://t.co/cTYZuD0pn9… https://t.co/QrK99wKVS9"
c - What is the purpose of static keyword in array parameter of function like "char s[static 10]"? - Stack Overflow
コンパイラ作りの魅力を語る / Making compilers is fun - Speaker Deck
DQNEOさんのツイート: "PHPerKaigi 2019で、C/Goコンパイラを作る過程で学んだことについて話しました! 資料を公開しました。 「コンパイラ作りの魅力を語る」 https://t.co/CRvivRYFAa #phperkaigi"
Kazuho Okuさんのツイート: "C言語、だいたいいいんだけどクロージャがないことだけが辛い"
Fadisさんのツイート: "ベアメタルC++動かす準備ってCで使ってたldscriptにvtable置き場足して、bssとdataを初期値にして(Cでもやるやつ)preinit_arrayとinit_arrayの中のポインタを全てcallして(Cでもやるやつ)、ハードウェアのセットアップして(Cでもやるやつ)mainに飛ぶだけ(Cでもやるやつ)だったと思うんだけどな"
Fadisさんのツイート: "ベアメタルC++でnewするにはメモリ確保できる必要があるけど、libstdc++のlibsupc++を使う場合最終的にlibcのmallocが呼ばれる。libcにnewlibを使う場合最終的にプラットフォーム毎に実装する関数_sbrk()にたどり着く為、「newされたらどうしよう」はここで解決すると良い"
品川 高廣さんのツイート: "gcc/clang限定。 #include <stdio.h> int main(int argc, char *argv[]) { if ((void*)main < __builtin_return_address(0) && __builtin_return_address(0) < &&e + 0xff) return argc > 1 ? *argv[argc-1]-'0' + main(argc-1, argv) : 0; printf("%d\n", main(argc, argv)); e: return 0; }… https://t.co/V5IzQQX9y9"
hikaliumさんのツイート: "これの何がおもしろいのかというと、低レイヤの人なら親しみのある「その型のアドレスの下位ビット、常に0では?」というネタに加え、ポインタ-整数キャストをできないなら隣接要素のアドレス差が1byteのchar*にキャストして(char*)0との差分を取ればいいじゃない、という狂った発想です。 #w2019progB… https://t.co/zTUX91qJfR"
hikaliumさんのツイート: "ついにワンライナーになった(誰も嬉しくない)。 #include <stdio.h> int main(int c, char*v[]) { return c>=2? ((char*)v-((char*)0))&1? ((char**)(((char*)v-((char*)0))-1))[1][0]-'0'+main(c-1,v+1) :printf("%d¥n",main(c,(char**)(((char*)v-((char*)0))|1))) :0; }"
品川 高廣さんのツイート: "関数末尾のアドレスを正確に求められないのが難点。このコードは clang -O3 でコンパイルすると、ラベル e の後ろで main() を呼び出すコードが生成される。asm volatile ("") を挟むと clang では回避できるが、今度は gcc で動かなくなる。UNIX 限定なら etext が使える。"

histric-2

島鉄雄さんのツイート: "C11を使ってオブジェクト指向もどきをしてみた。 https://t.co/fG0XngOOfp 自前プリプロセッサでオブジェクト指向する方法は色々あるけど、C11だと合法的(?)にここまで出来るっていうテスト。 自前プリプロセッサを突き詰めると別言語になってしまうけど、この程度なら全然良いんじゃないかね。… https://t.co/nmmm8OqDyi"
C 言語でオブジェクト指向(案)
島鉄雄さんのツイート: "ほんとはコンストラクタとか凝りたかったけど、長くなるので今回は割愛。 C11 でオブジェクト指向する標準的な規約(プロトコル)を少し考えたくなった。 最終的には GObject に行きつくだけかもしれないが… いや GTK の API にこのプリプロセッサをかませばいいのか…"
Kazuho OkuさんはTwitterを使っています: 「return a == b; を書き直させられた話、「言語仕様知ってればわかるだろ」って批判するなら、GCCの「ビット演算子と比較演算子を組み合わせる場合には () を使え」っていう警告(-Wparentheses)も同じ勢いで批判してほしい気持ちある」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「なんていうか、言語仕様知ってればわかるだろ、っていうのは読みやすさに関するコンパイラの警告全否定する話だし、return a == b が許容されるのは、return a = b が警告を出すという前提において、読み誤りようがないから、とかそういう理由づけになるんじゃないか」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「sprintfで「%.8s」という記法が役立つ日が来た。%sに対して精度(.n)を与えることで配列の末尾がnul終端されてなくても使えるんだよ。っていうのを以前ベテラン組み込みエンジニアさんから教えてもらった。」 / Twitter
7594591200220899443さんはTwitterを使っています: 「(Cの)const外しキャストは従来から違法だったわけだけど、const外しキャストが違法であることを積極的に活用してconst外し==dead code判定==最適化で消すコンパイラが爆誕して人類とバグとの戦いは新たなステージへと https://t.co/P8R6MnVMLB」 / Twitter
7594591200220899443さんはTwitterを使っています: 「const外しキャストは明示的なキャストなので、プログラマの意図を尊重するため型の不一致の警告とかは出ない。出ないが、const外しキャストをdead codeの意図で使ってるプログラマなどいないはずなので、結果的に警告も何もなく既存のプログラムがなぜかぶっ壊れるという惨状が発生している」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「me freaks, adds `#define const` https://t.co/iHMVgTHXmC」 / Twitter
Shiro KawaiさんはTwitterを使っています: 「そうか、constなオブジェクトを変更することがUBなんであって、const落としても変更してなければ大丈夫なのか。 https://t.co/AlXoj5CheU」 / Twitter
yohさんはTwitterを使っています: 「@n_soda このケースはconst-ness objectそれ自身に対してconst除去したからマズイいのであって、const char* process0(const char*)内部実装をchar* process1(char*)で代用する程度の話には影響しないと思いました。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ごもっとも。 C/C++の規約原理主義的な最適化は、そろそろ何とかして欲しい。 (未定義のアクロバティックな活用ではなく、警告 or エラー停止する方向に) https://t.co/eWPAQsBxKC … https://t.co/oif4y0wVJ5」 / Twitter
島鉄雄さんはTwitterを使っています: 「メモリマップドI/Oの場合はその領域はそもそもキャッシュしない指定になってるはずだけど、通常のメモリ領域の場合は普通にキャッシュに載るでしょ。 で、CPUのキャッシュコヒーレンシにより一貫性が保たれてるはず。 DMAする為だけのデータをキャッシュに載せたくない場合は専用の命令がSSEにある。」 / Twitter
島鉄雄さんはTwitterを使っています: 「元記事の &gt; volatileなオブジェクト(volatileと指定されたメモリ領域)へのアクセスは、CPU内部のキャッシュ機構を通り越してその領域へ直接読み書きする形になっているはずです。 は間違ってると思われる。 volatileは最適化でレジスタに値を保持せずに、逐一メモリにアクセスするってだけでしょ。 https://t.co/voiP4LxzGZ」 / Twitter
FadisさんはTwitterを使っています: 「if「文」と三項演算子は別モンで、一番大きな違いは文であるため評価結果の型を決定する必要がない点」 / Twitter
yoh2さんはTwitterを使っています: 「?: 演算子の左端がCとC++で違うという割とどうでもいい気付きを得た。 cond ? a : b = c; がこうなる。 C: (cond ? a : b) = c; と同じ (エラー) C++: cond ? a : (b = c); と同じ」 / Twitter
yoh2さんはTwitterを使っています: 「ちなみにC++ で (cond ? a : b) = c; と書くと a か b へ c を代入する意味に。 代入演算子の左辺もCとC++で違うんだよね。Cでは unary-expression, C++では logical-or-expression。」 / Twitter
yoh2さんはTwitterを使っています: 「s/左端/右端/」 / Twitter
重巡洋艦 キノガッサさんはTwitterを使っています: 「@yoh2_sdj https://t.co/HiFMrmPJ0f」 / Twitter
条件演算子と左辺値の扱いの差 - yohhoyの日記
uint256_tさんはTwitterを使っています: 「clang, return 0 の 0のために alloca i32するのなんでだろう」 / Twitter
DrumatoさんはTwitterを使っています: 「@uint256_t これは結果論なんですが, int main(){ int x = 40; if(x == 30){ return 1; } } みたいなコードをclangに入力すると, true-block内でalloca i32した仮想レジスタに1を代入しています. main関数内で明示的にreturnされなかったときのために利用されているのかもしれませんね.」 / Twitter
uint256_tさんはTwitterを使っています: 「LLVM, 賢いからmem2regとかそのあたりの最適化でallocaとかが消えて, phiとかで代用するのかな https://t.co/hBzjs8VNVR」 / Twitter
uint256_tさんはTwitterを使っています: 「@drumato clangを軽く読んでみました. どうやらこの方法のほうが, コードが簡単になりそう」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@uint256_t LLVMのallocaは確実にスタックに領域を取ってくれると思っていると最適化で酷い目に合います(それで泣いた」 / Twitter
uint256_tさんはTwitterを使っています: 「@miura1729 賢くなりすぎたコンパイラが人間を苦しめるいい例ですね」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@uint256_t 確かに。仕様をちゃんと読まないのが悪いと言えば悪いんですけど...」 / Twitter

histric-3

うーさんはTwitterを使っています: 「システムコールからの戻り値って基本はint型の戻り値だけなので,どうやってその値からerrnoに代入する値を決めているのかなあと思ったらこのコードにたどり着いた。-256&lt;result&lt;0なら,符号反転した値をerrnoに代入してる。 https://t.co/bQSGe54e08」 / Twitter
libc/bionic/__set_errno.c - platform/bionic - Git at Google
島鉄雄さんはTwitterを使っています 「これは、いわゆるパターンマッチに漏れがあるとエラーになる言語を使えば防げるバグだろう。 なのでこれは糞コードではない。 最近の C/C++ のコンパイラは switch で漏れがあると警告を出すから分かるけど、エラーにしてしまうべきだろう。 そういうオプションが無いかちょっと調べてみる。 https://t.co/lLpwF38si8」 / Twitter
島鉄雄さんはTwitterを使っています 「-Werror=switch で、switch の漏れをエラーに出来た。 C++ の場合は enum class があって int 等には無理やりキャストしない限り変換できないから、より安全になる。 あと、if 文の羅列で分岐されると漏れをチェックできないから、やっぱり古い言語では限界があるのかね… https://t.co/Nh2YlqmJWy https://t.co/WIHFSX2FgY」 / Twitter
Kazuho OkuさんはTwitterを使っています 「名前つき番兵のメリットは値を読めるところなので、ポインタをデリファレンスすることで(も)終端判定したい場合には使ったりする https://t.co/vXyBV3CbHy」 / Twitter
ハガさんはTwitterを使っています 「@kazuho うーん、僕はむしろ、デリファレンスできない可能性を持っていることがポインタのメリットだと思っているので、特に終端判定の場合にデリファレンス後に判定というのはちょっと想像できませんでした。」 / Twitter
藤枝和宏 - ぱんなこった@佐鎮さんはTwitterを使っています 「この番兵は高速化のためだと思う。linked listでキーを探すときに番兵にキーをセットしてから探す。最後で必ず止まるので次が最後か調べずにループを回せて条件分岐1回お得。 / “ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)” https://t.co/ZrCqgKPJID」 / Twitter
ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)
FadisさんはTwitterを使っています 「ポインタがめんどくさい事になるのはSEGVした時じゃなくて、SEGVせずに走ってしまった時だよ。読んではいけないものを読んでリモートにぶちまけたり、書き換わってはいけない物を上書きしたり、飛んではいけないところに飛んで実行してしまったり」 / Twitter
あわねずみさんはTwitterを使っています 「C言語の授業 ある子がarray[i]とi[array]を間違える。 先生「i[array]はできません」 私「*(i+array)です」 先生「*なんてありません」 私「*はあります。ポインタの参照演算子が*です」 先生「誰に教えてもらったんですか?」 私「お母さんです」 →懇談会で母親に事前学習をしないように念押しされる」 / Twitter
kinabaさんはTwitterを使っています 「A Simple, Possibly Correct LR Parser for C11 https://t.co/jPKTn3ikIN めっちゃ面白かった。C言語文法の決定性文脈自由じゃないところ全集。「lexerに情報共有して識別子毎に型名か否か区別してトークンを出させる」という、概念としては定番の実装なんだけど、細部の罠と解決策が楽しい」 / Twitter
A Simple, Possibly Correct LR Parser for C11 | ACM Transactions on Programming Languages and Systems
kinabaさんはTwitterを使っています 「特にdangling-else問題と識別子の文脈依存性の問題が混ざるとより問題が深まる(GCCも昔のバージョンで構文解析バグっていたらしい)というの考えたことがなかった。おもしろいなー」 / Twitter
herumiさんはTwitterを使っています 「https://t.co/athh4LqnMQ #define N 16 char str[N]; memset(str, 0, N + 1); この例のコードならcppcheck, Visual Studioの/analyze, pvs-studioなどの静的解析ツールやclang-9で警告出ますね。https://t.co/Oj0EEqANG4 #yurubug」 / Twitter
なたがわさんはTwitterを使っています 「a[i]とi[a]が意味的に等価なのはe1[e2]が*((e1) + (e2))のsugarだから、ってのは知ってるけど、そもそもこの加算が意味的に非対称な演算なのに逆も許してる (というかint + ptr要る?) のは謎だし、i[a]を許しても嬉しいのはparserで即desugarしてASTサボれるくらいでは...? なんか歴史/理由あるのかな」 / Twitter
FadisさんはTwitterを使っています 「volatileは、コンパイラは言われたのと同等の結果になるアセンブリは吐くけど、言われた通りの順序で計算するアセンブリを吐くとは限らないぞ(=計算過程を横から覗き見できる場合、期待したのと違う状態が観測されるかもしれないぞ)、という前提知識を要するから、初心者への説明は詰まりがちだよな…」 / Twitter
FadisさんはTwitterを使っています 「横から覗き見する手段とは具体的には、シグナルハンドラや割り込みで実行を中断して別の処理を行なっているとか、ハードウェアのレジスタを操作しているといった状況が該当する。別のプロセッサが同じメモリを見ている状況はキャッシュやアウトオブオーダーの影響が載る為volatileでは救いきれない」 / Twitter
対鉱物用武装さんはTwitterを使っています 「volatileの法則 1. つけるな。 2. (上級者限定)まだつけるな。」 / Twitter
対鉱物用武装さんはTwitterを使っています 「MMIOはふつうベンダ提供のマクロで隠されてるし、シグナルハンドラは同期化して受けるほうが安全」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語で struct S s; load(&amp;s); みたいなやつ、2行になるやん? 実は struct S s = (load(&amp;s), s); と書けば1行でvalidなCになる?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「パフォーマンス意識したコードをメンテしていくのはCの方が楽だと思う」 / Twitter
ハガさんはTwitterを使っています 「まぁ、いまどきC++ではなくCを使う[理由]はあっても、[利点]は無いよなっていう。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C++、Cよりロジックを組み合わせてコードを構築する手法が多いのはいいんだけど、その複雑性が利点になるか弱点になるかはケースバイケースだと感じてる。コードを書き捨てるケースではC++使うけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「もうちょっと具体的に書いておくと、たとえば、C++の優位点というのは、汎用的なデータ構造があるという点に多分に依存しているが、速度重視でコードを書く場合は専用のデータ構造を起こすことが多いので、汎用的なデータ構造をあまり使わない、とか」 / Twitter

くいなちゃんさんはTwitterを使っています 「「三項演算子とは、三項の演算子すべてを指す広い言葉だから、?: は三項演算子ではなく条件演算子と呼ぶべき。」 とよく聞きますが、条件演算子以外の三項演算子を見たことがありませんでした。 あります…?」 / Twitter
しさしさんはTwitterを使っています 「@kuina_ch SQL の BETWEEN 演算子とかどうですか? x BETWEEN y AND z」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「整数オーバーフロー例外発生のコンパイルオプション付けると、整数演算が3-12倍遅くなる(前者clang, 後者gcc)という実験。 わざわざ調べてる人いるのね。 https://t.co/eEjmc2ZWEV」 / Twitter
How expensive is integer-overflow trapping in C++? – Daniel Lemire's blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語に register というキーワードあるけど、今時だと firstcache とか lastcache みたいなキーワードがあっても良いかも。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マルチスレッドコードが動いている時にいきなり _exit (3) を呼ぶの、なんとなく正常終了できるつもりだったけど、スレッド破棄順序によって他のスレッドのスタック参照してるスレッドが SEGV する可能性があるのかぁ、ってなってる。そりゃそうだよな」 / Twitter
yoh2さんはTwitterを使っています 「「C89 と C99 のどちらでも well-formed でありながら結果の異なるプログラムを定義済マクロに頼らず書ける」並に重箱の隅。 (知ってるのは enum 使うやつ)」 / Twitter
yoh2さんはTwitterを使っています 「これね。 https://t.co/fP8aCUvAQ2」 / Twitter
yoh2さんはTwitterを使っています 「類似でちょっと思い出したネタ。 # include &lt;stdio.h&gt; enum E { A = 1 }; int main(void) { int n = 0; for(n = 0; n &lt; (enum E { A = 2 })1; n++) /* (enum { ... }) はキャスト兼 enum 宣言 */ ; printf("%d\n", A); /* C99以降: 1, それより前: 2 */ }」 / Twitter
yoh2さんはTwitterを使っています 「C オタクに C++ オタク、妙なところに宣言を埋め込みがち。」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「一般 C++er「using によるエイリアス宣言は typedef の上位互換」 C++ 規格オタク「typedef だけ許される文脈がある」 https://t.co/ZbTY3SCir1 https://t.co/2lKIzwGsfT」 / Twitter
A typedef for when an alias declaration cannot // [unfold] Bits of awareness
mattnさんはTwitterを使っています 「C言語のポインタが初学者を悩ませる理由は宣言時と使用時に * が付いたり付かなかったりする int *p; p = &amp;v; のと配列の参照方法が *(p+2) と p[2] の2つがあるというのが原因だわね。 Go は意図的にこれをさせない様にした。」 / Twitter
KateさんはTwitterを使っています 「finally worked out how to make a function for addition. C isn't as hard as people say https://t.co/OFdqEKs6HR」 / Twitter

_Atomic

Nerry さんはTwitterを使っています: 「usbcmdレジスタを_Atomic uint32で定義して usbcmd |= hogehoge すると機種によってはうまく動かない」 / Twitter
Nerry さんはTwitterを使っています: 「usbcmd |= hogehoge をコンパイルすると lock or [usbcmd], hogehoge になるが、うまく動く機種と動かない機種がある。 usbcmd = usbcmd | hoge に書き換えると以下のような機械語になって動く mov eax, [usbcmd] or eax, hogehoge xchg [ucbcmd], eax」 / Twitter
Nerry さんはTwitterを使っています: 「以上から A |= B と A = A | B は必ずしも等価ではない。」 / Twitter

メンバ関数へのポインタ

鯉江さんのツイート: "メンバ関数のポインタは確認してないですが、メンバのポインタは素朴に実装すると構造体の先頭からのオフセットになって、それだと0に特別な意味は持たせられないのでnull pointerのビット表現には別のものをつかう、というはなしがARM書いてあったような記憶です。 https://t.co/uwEdj5dzaR… https://t.co/Q7Y6J3ZTBR"
Ideone.com - YK4oHe - Online C++ Compiler & Debugging Tool
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い、x64でもそうなりますね。知らなかった。… "

opaque pointer

ゆたかさんさんのツイート: "C言語で構造体は使えるけれど、構造体のメンバーに直接アクセスさせないようにするにはどうすればよいでしょうか? 答え:構造体をtypedefしたものだけを開示してポインタとして使う… "
SODA Noriyukiさんのツイート: "このイディオムはopaque pointerと呼ばれててその名でググれます。 typedefはせず struct foo; で済ませ、またヘッダ内で宣言されてる関数呼ばない場合は # include "foo.h" の代わりに struct foo; で済ます変種もあったり(再コンパイルの必要性が減るのでこっちの方が好き) https://t.co/u0BXaV0O0H"
まさみさんは語りたいさんのツイート: "私はelfutilsで知りましたが、デバッグが大変面倒なので死にそうになりました。全部ソースコードひっくり返して実装調べた記憶が。… "
SODA Noriyukiさんのツイート: "その辺は良い開発支援ツールがあるか、あるいはコーディング規約の縛りがあればあまり困らないような。 もう30年くらいopaque poniterばかり使ってプログラム書いてますが、「struct foo の関数宣言は foo.h に入れ、構造体定義は foo.c に入れる」程度の規約で運用していて特に困った覚えがないです… https://t.co/q5yAWmsBsf"
KOYAMA Youichiさんのツイート: "私も同様に foo.h には関数だけ書いて foo.c に構造体を書くのですが、 foo をライブラリとして提供する場合 (おそらく strip しちゃうので)、それを使ったプログラムをビルドすると gdb とかでのデバッグ時にロクに構造体の中身が表示できないというワナはありそうですね。… https://t.co/qd1yeCaw5I"
SODA Noriyukiさんのツイート: "プロプライエタリのライブラリの内部でコケてると、死んで!って気持ちになりそうですね…^^;… "
なかのん&マジックさんのツイート: "こういうの常識では……違うの……?"
y-Akiさんのツイート: "C(++)言語で大きな物を作るときは必須と言える手法ですね。大規模C++本とかにもあるっけか ちっちゃいプログラムしか扱ってないなら知らない事も多いかも… "
なかのん&マジックさんのツイート: "OSのAPIがそもそも使ってる手法なのに……… "

NUL 終端していない文字列の printf

けろ🐸さんのツイート: "最近C言語で「ほえ~」ってなったのは、 char buf[4] = 'ABCD'; printf("%.*s", sizeof(buf), buf); でNULL終端してないchar*が簡単にprintfできること……はよ知りたかったわ"
けろ🐸さんのツイート: "コンパイル通さずに書いて怒られたけど、一行目はchar buf[4] = {'A','B','C','D'};の間違いだから、ゆるして…。(まあ雰囲気は伝わるはず)"
株式会社クローバーフィールドさんのツイート: "char buf[4] = “ABCD”; でもOKですね。 あと、厳密なことをいうと、*はint型の実引数を期待するので、sizeofの評価結果を渡すと未定義になります。 明示的にintでキャストしましょう。… "

フォーマット文字の文字数

るくすさんのツイート: "int len = sprintf(NULL, 0, format, args)でフォーマット文字の文字数返ってくるテクニック良くみるんだけど、これPOSIXに書いてある仕様なんすかね https://t.co/8pYFEklqsn"
まさみさんは語りたいさんのツイート: "カーネル内ではよくお世話になっています・・・。… "
Hiroaki Nakamuraさんのツイート: "おお、そんな技あったんですね。検索してみると https://t.co/xKejO9kgJU のRETURN VALUEに int len = snprintf(NULL, 0, format, args) で文字数取れるようなことが書いてありました。… "
fprintf, printf, snprintf, sprintf - print formatted output
herumiさんのツイート: "char buf[10]; int n = snprintf(NULL, 0, format, args); if (0 <= n && n < 10) { sprintf(buf, format, args); } がバッファオーバーフローする状況はありえるか(10点)。 https://t.co/U3OJlbAsk0"
herumiさんのツイート: "私の想定解は次のものでした。 const char *fmt="%'d\n"; int v = 12345678; // LC_NUMERIC=Cだった n=snprintf(NULL, 0, fmt, v);// 12345678なのでn=9 // 別スレッドでsetlocale(LC_NUMERIC, "en_US.UTF-8");が呼ばれた sprintf(buf, fmt, v); // 12,345,678が書き込まれてバッファオーバーフロー… https://t.co/5kU9QwuPUV"
herumiさんのツイート: "グローバルな状態に依存したくないときのために非標準ですがロケールを指定できるsnprintf_lとかWindowsだと_vscprintf_lとかがありますね。… "
herumiさんのツイート: "C++もずっとCのロケールを引きずっていて、数値と文字列の相互変換ですらロケール非依存でできる標準ライブラリが入ったのはC++17になってからです。… "
Kazuho Okuさんのツイート: "そもそもs(n)printf実行中に別スレッドでsetlocale呼ばれる可能性のあるコード、ということになると未定義動作になるような気がしました。未定義動作にバッファオーバーフローも含まれるという点に異論はないですが… "
herumiさんのツイート: "一応たまたま二つの関数の間で呼ばれたというつもりでした。 実行中にsetlocaleが呼ばれると未定義というのには同意です。 まあ、あまりよい問題ではなかったですね。すいません。>るくすさん。… "
るくすさんのツイート: "いえいえ。 この手の限られた制約からの状況把握はシステムの脆弱性を突いてエクスプロイトを書く際の重要なステップなので良い訓練になります。面白かったです。結構使うんですよね、TOCTOUは。 例えばメモリ使い果たして文字数の返り値だけネガティブにしとくとかも。race conditionはキリがないすね… https://t.co/pUiIYbPzCp"

klib

Kazuho Okuさんのツイート: "最近は klib とか使うイメージ。部品ごとに分かれてるし https://t.co/AVmoh0Zfw9… "
Klib — a generic library in C
attractivechaos/klib: A standalone and lightweight C library
NaOHaq(苛性ソーダ)さんのツイート: "Cで書いてると連結リストも連想配列も基本的に自前で実装せざるを得ないんだよな……。既製品を使おうとするとものごっついフレームワークの一部だったりするし……。"

3-stage bootstrap

Fumihiro MatsuiさんはTwitterを使っています: 「そういえばセルフホストは複数世代検証が要るんだっけか。まず既存コンパイラで自作のをコンパイルしてAを作って、それ使ってBを作って、さらにBでCを作って、BとCが等しいか比較検証とかするんだっけ。BもCも自作コンパイラ由来(Aは違う)なので入力等しければ本来は同じはずで。全然詳しくないけど」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「でもコンパイラって、リンクされるライブラリの寄与とか除いても、自身のソースには無いけど自身をコンパイルした親コンパイラに由来するバイナリが普通に混じり得るはずで、そういうのの伝搬とかちゃんと考えるとなんかそれ自体結構面倒そうだな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「なんか3回って数字が妙に記憶に残ってるんだけど単にGCCのビルド&検証がそうだったからかも」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「そうだそうだ、3-stage bootstrap ってやつだ」 / Twitter

配列とポインタの判別

Kazuho OkuさんはTwitterを使っています 「C言語で、ある値がポインタなのか配列なのかを知る方法ってあるのかなぁ(gcc/clang拡張でも可)。意図としては countof(array) みたいなマクロで、引数arrayに渡されるものがポインタではなく配列であることをビルド時に保証したい cf. https://t.co/izurmOdiTl」 / Twitter
_countof Macro | Microsoft Docs
Yuki Yugui SonodaさんはTwitterを使っています 「@kazuho &amp;してからintptr_tにキャストして、元の値と比較したらイケませんか? もっと移植性のある方法もあった気はするんですが」 / Twitter
mattnさんはTwitterを使っています 「@kazuho gcc だとこのマクロがうまく動きそうです。 # define IS_ARRAY(arg) __builtin_choose_expr(__builtin_types_compatible_p(typeof(arg[0]) [], typeof(arg)), 1, 0)」 / Twitter
mattnさんはTwitterを使っています 「@kazuho ビルド時じゃないか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@mattn_jp いや __builtin_constant_p に食わせてOKなら使えばいいので、これもいけそうな気がしますねありがとうございます」 / Twitter

コンパイラのいじめかた / How to fight the compiler - Speaker Deck
llvm-project/clang/INPUTS at master · llvm/llvm-project
ソフトウェア1 (2020)

Assembly

UTF-8 validation

ドッグさんはTwitterを使っています 「Lemire 氏次は UTF-8 の validation か.SIMD の pshufb 命令を使って 16バイトごとの table lookup に vectorize して,それを3回やるだけでできるのか | 'Ridiculously fast unicode (UTF-8) validation' https://t.co/sfVDunjaAL」 / Twitter
Ridiculously fast unicode (UTF-8) validation – Daniel Lemire's blog
ドッグさんはTwitterを使っています 「paper: https://t.co/Vz0fa836MD 6.1 の最後の段落と TABLE 9 に具体例が載ってる」 / Twitter
2010.03090.pdf
ドッグさんはTwitterを使っています 「Rust も String や str の値の動的な生成には unsafe 使わない限り UTF-8 validation が必ず入るので高速化すると嬉しい気がする」 / Twitter

ABI

その他

その他

shinichiro hamajiさんのツイート: "ABI 地獄は Qt/KDE で10年以上 C++ ライブラリを配るということにつきあってた人の、この話が面白かった気がする https://t.co/fx80ZQ4teS #cppmix"
Cover Slide Title
Thread Local Storageの初期値について調べた - Qiita
ABI の境界 (Modern C) での移植性 | Microsoft Docs
C言語系/呼び出し規約/x86/naked - Glamenv-Septzen.net
KMC Staff Blog:QEMU の Microsoft x64 環境での不具合
APIとかABIとかシステムコールとか - Qiita
Makoto Kato ︎︎さんはTwitterを使っています: 「Linux/aarch64のコードをWindows/arm64にポートする時に気をつけないといけないのは、x18がLinuxだとスクラッチレジスタだけど、Windows (iOSもだけど) だとスクラッチレジスタではないので、ちゃんと値を保持しないといけないってところ。ABIの定義みたら、プラットフォーム依存と書かれたはず」 / Twitter
FadisさんはTwitterを使っています 「intのサイズがいくつでlongのサイズがいくつってのはC++の規格じゃなくてABIが決めるところで、ABI次第では両者は同じサイズになり得る。でもサイズが同じである事と、型が同じであることは別の話で、両者が同一の型扱いされることは無い」 / Twitter

objdump

[reverse-engineering] objdumpを使用したフラットバイナリファイルの逆アセンブル [disassembly] | CODE Q&A 問題解決 [日本語]
2590 - x86-64 validator allows addressing mode with the redundant "%riz" encoding - nativeclient - Monorail
【ベースアドレス】の例文集・使い方辞典 - 用例.jp

POSIX

可変長引数

ロボ太さんはTwitterを使っています: 「C/C++で、以下の実行結果が「3 1.200000」になることを知って震えている。 printf("%d %f\n", 1.2, 3);」 / Twitter
Masaki HaraさんはTwitterを使っています: 「これどういうことかと思ったらva_listの構造も特殊なのか。たとえばPowerPC64 System V ABI V2だとva_listは引数を順に並べたものになっているので、可変長な関数を呼ぶときはcalling conventionが変化するんだけど、AMD64 System V ABIでは%alに使用したSSEレジスタの個数を入れるだけしい」 / Twitter
Masaki HaraさんはTwitterを使っています: 「まず前提条件として ・固定長引数関数は、できるだけ引数をレジスタに入れて渡したい ・可変長引数関数はどうせva_listに入るのでスタックに入れて渡したい という要件があるんだけど、ここでnon-prototype関数という厄介なやつがいる (伝統的なC言語にある、引数型が不明な関数)」 / Twitter
Masaki HaraさんはTwitterを使っています: 「こいつは呼び出し側からは固定長か可変長かすらわからないので、わからないなりに上手く呼べる必要がある。なので基本的に以下のような戦略になる ・引数はできるだけレジスタに入れて渡す ・可変長引数のときは必要に応じてレジスタからスタックにコピーしなおす」 / Twitter
Masaki HaraさんはTwitterを使っています: 「で、レジスタとスタック上の位置が1対1対応してればここまでの議論で完結するんだけど、多くの場合は整数と浮動小数点数は別のレジスタに入れたほうが効率がよい (固定長引数のときはそうしたい)。」 / Twitter
Masaki HaraさんはTwitterを使っています: 「しかも、できれば沢山レジスタに入るほうがいいので、整数レジスタは整数レジスタで詰めて入れたいし、浮動小数点数レジスタも同様。 ところがスタック部分は共用なので、「どこからがスタックに溢れたのか」がわからなくなる。」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「レジスタに置いて呼んでからスタックにコピーされるのかあ」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「なんかレジスタ経由して「書式文字列通りに引数並べてあったらレジスタにこう置いてあるでしょ他は知らん」みたいなノリなのかな、でもなあって思ったら意外と部分的にそういうノリっぽい上にもっとあれな話だった」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「Cの処理系は初期の仕様をカバーしつつ効率的なコードを吐く事の両立を求められるとほんときつそう。gccとかclangとか超感謝」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「発展課題: これが当然だと思った皆さんは、va_start, va_arg, va_stop の実装を考えてみましょう https://t.co/jXo8DhCdd9」 / Twitter

値渡し

uint256_tさんはTwitterを使っています 「#cilk 構造体を値渡しするためには,かなり大がかりな改修が必要なことが分かった.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t ほんとあれややこしいんで、そんなに得になっているのか誰かにちゃんと説明してほしい。あと、 struct { double x, y; }みたいなやつは2つのXMMレジスタで渡されたりしますよね(さらにトリッキー)。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 xmmなどのレジスタが関わってくる場合については,どこかに詳細なドキュメントが置いてあったりするのでしょうか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t https://t.co/1SIFcKzwpt の 3.2.3 Parameter Passing のあたりです」 / Twitter
psABI-x86_64.pdf
uint256_tさんはTwitterを使っています 「@rui314 ありがとうございます (確かにこれはややこしい)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t まあx87の80ビット浮動小数点数とか__m256あたりはとりあえず無視していいとは思いますけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t そこらへんをとりあえず置いておくと、 - 16バイトより大きいとかunalignedなメンバがあったりするとスタック渡し - それ以外の場合、8バイトごとに区切って考えて、8バイトに含まれているメンバが全部浮動小数点数型ならXMM、そうでなければ整数レジスタ渡し というルールのはず。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 かなりすっきりしますね.わかりやすい.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t struct { int a; float b; double c; }だと、aとbは(上位32ビットと下位32ビットで)まとめて1つの整数レジスタで渡して、cはXMMという。そこまで詰めるメリットあるのかなぁという感じですけど。」 / Twitter

_ko1さんのツイート: "https://t.co/Wlk3omuOir (VALUE)(*funcptr)(VALUE) と (VALUE)(*funcptr)() で呼び出し時のコンベンションが違うようなんですが、後者って何? eax なんて callee は見ないよね?"
Shiro Kawaiさんのツイート: "funcptrがvarargだった時にFP引数の数をalに入れることになってるので、それを0にしとくため?… "
_ko1さんのツイート: "FP引数!! 知りませんでした… "
Shiro Kawaiさんのツイート: "callee側でどう使ってるのかはよく理解してない。スタックにスピルした場合でも結局va_argで渡される情報を信用してアクセスするしかなさそうだけど…xmmの退避に関係する?… "
Kazuho Okuさんのツイート: "va_startは引数かもしれないレジスタを全部スタックに展開するけどxmmでそれやるとさすがにメモリ食い過ぎるから… "
Shiro Kawaiさんのツイート: "なるほど。va_listの実体をスタックに持たないとならないからか。全部va_argで使い切られてたらどのレジスタ使えばいいのかわかるけど、va_listのまま他の関数に渡される場合があるからコピーは必要と。… "
mpx-linux64-abi.pdf
Cの可変長引数とABIの奇妙な関係 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SPARC(32bit)で構造体を渡す時、レジスタに収まるサイズでも、ポインタ経由になるの、考慮漏れだったのかな? v9でもx64でも、レジスタサイズより大きい場合にはじめて、ポインタ経由になる。」 / Twitter
kubo39@求職中さんはTwitterを使っています 「@rui314 @uint256_t x86においてebxレジスタをGOTのために予約していた話でしょうか。GCC 5以降はそうではなくなりました。 https://t.co/m571IdUGTV」 / Twitter
New Optimizations for X86 in Upcoming GCC 5.0: PIC in 32-Bit Mode
Assembly 2: Calling convention – CS 61

x64 ABI

WINAPI とは何か? - C/C++ 入門
melancholic afternoon
ACCU :: Windows 64-bit Calling Conventions
Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
Makoto Kato ︎︎さんのツイート: "@d_toybox (Unix ABIだと6個だけど)。uint64_t -> uint32_t の暗黙的な変換とかは別に命令実行する必要ないんでそんな関係しない"
Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"

x32 ABI

本の虫

本の虫: x32 ABIの簡易的なまとめ
本の虫: GoogleのNative ClientチームがLLVMにx32を所望
本の虫: glibc 2.16がリリース。x32をサポート
本の虫: LLVMにx32のサポートを追加するパッチ

x32-abi
Fadisさんのツイート: "Linuxカーネル開発者達がx32 ABIの廃止を検討している。x32はx86_64のハードウェアを要求しながら32bitのアドレスを使う事でx86_64の機能を利用した性能の向上と、アドレスが短い事による性能とバイナリサイズでの強みを共に享受しようというABIで、あまり流行っていない https://t.co/hvFqRfIW66"
Linux、x32のサポート終了か - ト―バルス氏は賛成 | マイナビニュース

kABI

kABIとは何か - 赤帽エンジニアブログ

スタック

[C言語]コールスタック(スタックフレーム)の仕組みを復習する | KentaKomai Blog
WIN64スタック | さすらいのプログラマ - 楽天ブログ
スタックと割り込み ―― プログラムが動く仕組みを知ろう|Tech Village (テックビレッジ) / CQ出版株式会社
スタックフレーム - 関数に渡される引数を知る - Web/DB プログラミング徹底解説
windows - newbie trying to understand disassembled code - Reverse Engineering Stack Exchange
c - マシンコード実行時のランタイムエラーが不明確

アライメント

メモリアライメントの話 @ゲームプログラマの小話[開発:メモリ] - Qiita

エンディアン

エンディアン - Wikipedia
エンディアン - デバイスドライバの記述
PCI - OSDev Wiki
Ext4 Disk Layout - Ext4

ソフトウェア規約

x64 ソフトウェア規約 | Microsoft Docs
x64 software conventions | Microsoft Docs
__fastcall | Microsoft Docs
/favor (アーキテクチャ固有の最適化) | Microsoft Docs
/Zp (構造体メンバーの配置) | Microsoft Docs
コンパイラ組み込み | Microsoft Docs
呼び出し規則 | Microsoft Docs

呼び出し規約

x64 での呼び出し規則 | Microsoft Docs
x64 calling convention | Microsoft Docs
__m128 | Microsoft Docs
setjmp | Microsoft Docs
longjmp | Microsoft Docs
コンピューター:C言語講座:構造体・共用体・ビットフィールド

スタックの使用

x64 スタック使用量 | Microsoft Docs
x64 stack usage | Microsoft Docs
Gamasutra - In-depth: Windows x64 ABI: Stack frames
malloc | Microsoft Docs
__m128 | Microsoft Docs
_aligned_malloc | Microsoft Docs
_alloca | Microsoft Docs
align (C++) | Microsoft Docs
__declspec | Microsoft Docs

プロローグとエピローグ

x64 プロローグとエピローグ | Microsoft Docs
x64 prolog and epilog | Microsoft Docs
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Windows x64で電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
X64 Memory segmentation – Is the game over? | AaLl86 Security
或るプログラマの一生 » x64 環境でのアセンブラプログラミングにおける注意点
x64 Assembly Language Programming
64-bit _alloca. How to use from FPC and Delphi? | Atelier Web
Saving Space When Saving Space - emsea
Thread’s Stack – Satyem
assembly - Meaning of BND RET in x86 - Stack Overflow
assembly - What does `rep ret` mean? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "余談ですが、x64は概ねプロローグでstack事前確保(alloca系は別として)なので、関数内でcall毎のpush/popがない分、x86よりダンプが読みやすい印象があります。 (ただダンプ解析では、引数がスタックにない分、若干解析しづらい)… "

例外処理

x64 例外処理 | Microsoft Docs
x64 exception handling | Microsoft Docs
MSVC の例外処理 | Microsoft Docs

x86-64とARM64の可変長引数関数の呼び出し規約 - Qiita

MS

定義済みマクロ
WINVER および _WIN32_WINNT の変更
/DISASM
/HEADERS
/SECTION (DUMPBIN)
Microsoft Macro Assembler Reference
MASM for x64 (ml64.exe)
ML and ML64 Command-Line Reference
PROC
.ENDPROLOG
SEGMENT
COMM
EXTERN (MASM)
INCLUDELIB (MASM)
INCLUDE (MASM)
PUBLIC (MASM)
Directives Reference
.MODEL
Symbols Reference
ML Error Messages
Operators Reference
MASM Numbers and Operators - Windows 10 hardware dev
アセンブリ言語の式
operator IMAGEREL

x64

その他

X86 Opcode and Instruction Reference
Intel XED
SSSE3: fast popcount
WojciechMula/sse-popcount: SIMD (SSE) population count --- http://0x80.pl/articles/sse-popcount.html
Expression templateとfmaについて - in neuro
maveの中身について - in neuro
SIMDベクトル・行列ライブラリを作った - in neuro
本の虫: 今でも乗除算をビット演算に展開する意義はあるんだろうか
part03.pdf
アセンブリ – 64ビットコールゲートの使い方 - コードログ
Nerry さんはTwitterを使っています: 「deadbeefみたいなの、x64ではあまり適当に設定しすぎるとpage faultの前にcanonical violationに引っかかって例外のエラーコードとして取れないのしんどい」 / Twitter
パフォーマンス – x86_64:IMULは2x SHL 2x ADDより速いですか? - コードログ
minix86
アセンブリ – x86で相対的な短いjmpをエンコードする方法 - コードログ
エンコーディング – 相対JMP(x86)はアセンブラーにどのように実装されていますか? - コードログ
x86 の汎用レジスタのルーツ - 借り初めのひみつきち
x64で配列の添字にintを使うと遅い - in neuro
InstLatX64さんはTwitterを使っています 「#Intel refreshed the "Data Streaming Accelerator Architecture Specification" to 1.1 with #ENQCMD/ENQCMDS of #SapphireRapids https://t.co/SDQ1mg5Tpt https://t.co/Z9jztPsq2Y」 / Twitter
INTEL® DATA STREAMING ACCELERATOR ARCHITECTURE SPECIFICATION - 341204-intel-data-streaming-accelerator-spec.pdf
PEXT/PDEP - Google 検索

herumi

introduction to x86-asm
x64 Assembly Language Programming
Intel optimization
misc/fence.md at master · herumi/misc
herumiさんのツイート: "mclの基礎体のx64(Xbyak)実装の多少詳しめの解説(書きかけ)。今日の社内勉強会の資料。adoxやadcxの解説ってあまり見かけない(というか命令の存在自体知らない人が多そうな印象)。 https://t.co/FCz6Zm7NMW"
opti/field-impl.md at master · herumi/opti
melancholic afternoon
MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ
herumiさんのツイート: "先日のIntel MKL-DNNについてのブログを書いてるときに見つけたAVX-512用指数関数expの改良(22命令→19命令)のpull requestがmergeされた。 https://t.co/nviKW0gyrK そしてvcvtps2dq + vcvtdq2psはvrndscalepsに出来るというのを知った。これはvroundpsの拡張だったのか。 https://t.co/o2DiBVCRZZ"
herumiさんのツイート: "xchg eax, eaxは64bit環境じゃnopじゃないよと説明したよね、と思ったけど@sksat_tty さんはその日は休んでいたのだった。 https://t.co/93Hh1WE9R6"
melancholic afternoon
melancholic afternoon

iSUS

x64 アセンブリーの概要 | iSUS
Microsoft* Windows* 10 における新しい命令セットの利用 | iSUS
ソフトウェアは実際に新しい命令セットを使用しているのか? | iSUS

命令

melancholic afternoon
MULX — Unsigned Multiply Without Affecting Flags
ADCX — Unsigned Integer Addition of Two Operands with Carry Flag
ADOX — Unsigned Integer Addition of Two Operands with Overflow Flag
算術命令
xorpd | xchg rax,rax
X86-64 Instruction Encoding - OSDev Wiki
AMD64の特徴と機械語コーディング (1/2):CodeZine
assembly - Why did GCC generate mov %eax,%eax and what does it mean? - Stack Overflow
MOV命令
お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
Nerry さんはTwitterを使っています: 「x64ってデフォルトオペランドサイズ32bitだけど、32bitと64bitでそれぞれ意味のある命令、強制的に64bitで実行される命令、明示的に64bitにしないと実質意味のない命令が混在してて禿げる」 / Twitter
Nerry さんはTwitterを使っています: 「push/popやcall/ret(near)は強制64bit iretqとかは明示的に64bitにしないと禿げる奴」 / Twitter
BitTest 命令 - 借り初めのひみつきち

Intel Key Locker

Intel Key Locker Specification - 343965-intel-key-locker-specification.pdf

OFFSET FLAT:

x86 Disassembly/Variables - Wikibooks, open books for an open world
It's science, but it works like magic.: Gas Problems
ia32_chap_04.pdf
ブートストラップローダ領域でHello, World! - Qiita

Unreal Mode

“Unreal mode”と呼ばれているx86の状態について | KEI SAKAKI's PAGE.
Unreal Mode - OSDev Wiki
Unreal mode - Wikipedia
savaさんのツイート: "めも:(i386の)アンリアルモード略史 https://t.co/aYuRbCWKxM インテルは最初、i386でも(286と同様に)プロテクト→リアルモードに戻る手段を提供しない予定だった、というのははじめて知りました…"
A Brief History of Unreal Mode | OS/2 Museum

リアルモード

X86アセンブラ/x86アーキテクチャ - Wikibooks
x86_mode - OS-Wiki
リアルモード - Wikipedia
8086による機械語入門 - Qiita
リアルモードでも32bitのレジスタを使うことができる - 脱力系日記

blog

原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記
はじめてのにき(2010-07-06)
x86 でリンクコール - Think Stitch - PRINCIPIA
gccのx86インラインアセンブリに関して
はじめてのにき(2009-03-31)
Assembly Programming on x86-64 Linux (05)
Assembly Programming on x86-64 Linux (02)
2014.seccon.jp/mailmagazine/backnumber07.txt
2014.seccon.jp/mailmagazine/backnumber08.txt
Intel Ice Lakeのプロセッサは整数除算命令がアツい - chroot("/home/hibari")
Ice Lakeプロセッサは整数除算がアツい 数値計算編 - chroot("/home/hibari")
日記 (2019 年 7 月中旬)
日記 (2019 年 7 月中旬)

スライド

SSE4.2の文字列処理命令の紹介
あなたの知らないnopたち@ラボユース合宿

Qiita

x86-64プロセッサでGNU assemblerを使う - Qiita
ハードウェア乱数 RDRAND命令の使い方 - Qiita
初学者向け x86/MacOSX 64bit アセンブリ - Qiita
FMA (fused multiply-add) の話 - Qiita

Twitter

16 ビット long モード

Nerry さんはTwitterを使っています: 「今まで16bitロングモードがうまく動かない理由がやっとわかった:;(∩´﹏`∩);: https://t.co/DkozHhnKZj」 / Twitter
Nerry さんはTwitterを使っています: 「実際には16bitロングモード自体は以前から動いていたけど、ロングモードに遷移直後のfar jump命令が間違っててそのままGPF→triple faultみたいな」 / Twitter
Nerry さんはTwitterを使っています: 「これによって今までは起動時に RM16→PM16→PM32→LM32(CM32)→LM64 という遷移が必要だったのが、RM16→PM16→LM16(CM16)→LM64 に直接遷移できるようになって中間の32bitセグメントがいらなくなったヽ(•̀ω•́ )ゝ✧」 / Twitter
Nerry さんはTwitterを使っています: 「x86の命令エンコーディングの複雑さを改めて実感した。 x86命令って16bitと32bitの単純な2種類あるわけじゃなくて、デフォルトオペランドサイズと66 67の組み合わせで(命令によっては)4種類の命令が混在している。」 / Twitter
Nerry さんはTwitterを使っています: 「困ったことに4種類の命令全てにちゃんと名前がついてるわけじゃなくて、アセンブラや逆アセンブラ上では表現できない命令も存在している」 / Twitter
Nerry さんはTwitterを使っています: 「スレッドディスパッチャ完成する前にSMPのAP起動コード動いた🤔」 / Twitter

整数乗算

R. ShioyaさんはTwitterを使っています 「一時期はそうだったけど最近のインテルだと整数乗算がレイテンシ3サイクルで,SIMD の FP だと 4 なので整数のが速いかも.整数乗算がボトルネックになるのは構造体の配列アクセスとか,固定値での除算からの変換,ハッシュ表のハッシュ値の計算とか暗黙な場合が多いかも https://t.co/yCoJ6a5rdR」 / Twitter
instruction_tables.pdf
Kazuho OkuさんはTwitterを使っています 「除算はともかく、乗算については(特にSIMDの)浮動小数でやった方が整数でやるよりも速いCPUの方が多いんじゃないかなぁ。結局、実用途でボトルネックになる乗算は大抵浮動小数なので」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこの間、塩谷先生に教えてもらった資料に、こんな記述あったっけ。 ---- 「Alphaは整数除算命令を欠いており…驚くべき結果として、ほとんどの実装で浮動小数点除算が整数除算よりも大幅に高速になりました」 https://t.co/sjOdraolxv」 / Twitter
Waterman_berkeley_0028E_15908.pdf
FadisさんはTwitterを使っています 「乗算が加算より遅いかはプロセッサによる。シフトより乗算のほうが有利なアーキテクチャさえ存在する。コンパイラはプロセッサが命令を処理するのに必要なサイクルに基づいて等価な命令への置き換えを行うので多くの場合高級言語における計算式はその意味通りに書いて正しいmarchを指定したほうが良い」 / Twitter

REX

uchanさんはTwitterを使っています 「MOVZX r64, r/m8は何のために存在するのか分からない - uchan note https://t.co/kxARiS5J4G」 / Twitter
MOVZX r64, r/m8は何のために存在するのか分からない - uchan note
yohさんはTwitterを使っています 「@uchan_nos へーときになって検索だけしてみたのですが https://t.co/mG50BAKT2D が答えになっています?」 / Twitter
assembly - What's the point of instructions with only the REX prefix in 64bit mode? - Stack Overflow
yohさんはTwitterを使っています 「@uchan_nos 良く読み直したら REX-prefix 有無じゃなくて EAX / RAX の違いに関してなんですね。失礼しました(r64直指定とr32指定+上位32bit自動Zero化で何か違うかという点)」 / Twitter
yohさんはTwitterを使っています 「@uchan_nos FYI: 趣旨がよく似た https://t.co/1tmIUpiP0y "Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86" ってのがありました。」 / Twitter
assembly - Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86 - Stack Overflow
Yasuo ItabashiさんはTwitterを使っています 「@uchan_nos 元記事の通り「規則性を満たすために項目だけは用意されている」のだと思います。命令のデコーダを作る観点からするとプレフィックスを付けた時の意味に対する(上位32bitがクリアされる)動作が(結果的に重複したものだとしても)妥当であるのに、わざわざr64のものを弾くのは回路が無駄に複雑になります」 / Twitter
Keigo NitadoriさんはTwitterを使っています 「raxやripレジスタのr、REX prefixとは何か調べていたら "Register EXtension"らしい。ラテン語の王様ではないのか。 » assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow https://t.co/GvTykx3BV6」 / Twitter
assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow
Keigo NitadoriさんはTwitterを使っています 「Accumulator, Base, Counter, Dataでa b c dの8-bitレジスタだったけど、16-bitになったときah, alみたいに上下触れてaxがその両方。 ソースは不明だが32-bitに拡張されたeaxのeもxもextend由来という記事も。 https://t.co/WNmPXLtucj」 / Twitter
レジスタ (コンピュータ) - Wikipedia

histric-1

るくすさんのツイート: "まあrex prefixの有無がdec %eaxに解釈されるかされないかで判定するというのはあまりにも有名なテクだけど、test $0xF9F9F9F9,%eaxでsetcondに解釈されるというのは、なるほどという感じ"
Urabe, Shyouheiさんのツイート: "x86というのは同じことをするのに様々な書き方ができるISAなわけだけれども、同じことをするのであれば短く書いたほうが速い、という話。 ようは最近のx86ではfetchの帯域が律速している。 https://t.co/a9AVqgJWTN"
Micro-op fusion in x86. | Denis Bakhvalov | C++ enthusiast.
はぇ~☆さんのツイート: "いろいろ制約があって、コード次第で状況が毎回違うんですよね。… "
まさみさんは語りたいさんのツイート: "ああ、REXが。。。… "
Fadisさんのツイート: "x86_64のpop %r15の命令の途中にジャンプすると%rdiがpopされる。pop %rdiを必死で探し回ったけど見つけられなかったROPerは覚えておくと時々役に立つ"
OS自作 uchan_nosさんのツイート: "x86-64アーキテクチャのretfとlretqとREX.Wプレフィクスの関係を学んだ."
Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
まさみさんは語りたいさんのツイート: "Modifier + Register/Memory indicator = ModRM"
解答略さんのツイート: "x86の機械語をざっと見渡すには、このpdfが世界で一番整理されてると思う。https://t.co/00G7QFh8sN これはx86エミュレータ作るとき大変世話になった。人力objdumpするなら、とりあえずこの表を小一時間眺めるのが良さそう。nopはxchg eax, eaxとか色々わかる。これのx64版、誰か作ってくれないかな"
Wayback Machine
解答略さんのツイート: "前ツイートのpdfは、このサイト https://t.co/9Zw3y6hZIG のpdfがリンク切れなのでwebarchiveから拾ってきたものです。ModRM周りを理解するために、僕はニーモニックをnasmでアセンブルして表と見比べてた。強者はIntelの仕様書眺めりゃ理解できるのだろう。あとx86エミュレータ本は実装の参考になった"
ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
Nerry@さんのツイート: "x64ってデフォルトサイズが32bitになってて ・暗黙的に64bitで解釈される命令 ・32bitと64bitでそれぞれ意味のある命令 ・実質的に64bit専用なのに64bitの明示が必要な命令 が混在してるんだよね"
Kazuho Okuさんのツイート: "VMとかステートマシン書いてると、分岐先予測があたるようにコールサイト(分岐元)を複数に分けるのは常套手段ですよね?"
Kazuho Okuさんのツイート: "詳しくはこのへん https://t.co/owIgORoNEy"
assembly - X86 prefetching optimizations: "computed goto" threaded code - Stack Overflow
Kazuho Okuさんのツイート: "絶対アドレスやip相対の無条件分岐命令が、それ以外の分岐命令と同様にbtbを消費するのかは気になってる(実務上はそこまでシビアなコードは書かないから気になるどまりなんだけど)。cpu的にはそこ節約することは可能だと思う一方、そこがんばるかわりにbtbのエントリ増やしてそうでもあり"
Kazuho Okuさんのツイート: "僕はデータキャッシュやTLBよりも圧倒的に分岐予測を気にしてコード書いてる。キャッシュはb-wayだから一個あてなくてもペナルティは発生しにくいんだけど、あたりにくい条件分岐は一個ホットパスにおいただけで確実にペナルティ食う… "
成瀬さんのツイート: "CPUの気持ちって分岐予測とキャッシュかなぁって感じだけど、パフォーマンスカウンターを読めるようにならないとだめかなぁってところでとまっている"
島鉄雄さんのツイート: "https://t.co/cpb2LfGJV6 Zen 2が最強の分岐予測を実装してIPCが大幅に向上したようだけど、やっぱり条件分岐自体がコードを遅くする原因だから、なるべくcmovになるようにコーディングすべきなんだよね。 試したら2つ目の書き方がcmovになった。 (gcc -Ofast でコンパイルした)… https://t.co/PJDhXk3Hk8"
Nerry さんはTwitterを使っています: 「滅多に使われないDFのために要所要所にCLD命令を配置しなければならないx86のstring命令の設計ミス」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「far retは低い権限レベルに戻るときと権限レベルが変わらないときで,SS/RSPをポップするかどうかが切り替わるの知らなくて数十分ハマった」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「関数コールが即値アドレス,変数読み書きがRIP相対になるのはなぜという話。callは即値としてRIPを基準にしたオフセットを取るが,movはRIP相対とするためには[rip+...]のような形式のアドレッシングが必要だから,逆アセンブルしてみるとcallは即値コール,movはRIP相対に見えるだけでは?」 / Twitter

Kazuho OkuさんはTwitterを使っています 「えー aes128gcm、パケットサイズが 1KB とかになると i7-4870HQ (4th gen Core i7) と Atom x5-Z8350 (Cherry Trail) でスループットが10倍違うのマジですか。。。通常のワークロードだと4倍くらいなのでビビってる」 / Twitter
mattnさんはTwitterを使っています 「Windows で動く x86/x64 アセンブリの REPL。 / “GitHub - zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows” https://t.co/UnLQMtDh1V」 / Twitter
zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows
Miura HidekiさんはTwitterを使っています 「意味がわからなかったけど、PC8001のマシン語モニターの1行アセンブラみたいなものか」 / Twitter
ロボ太さんはTwitterを使っています 「SIMD化をすると早くなったり遅くなったりするぞい。」 / Twitter
InstLatX64さんはTwitterを使っています 「@mjcharney refreshed #Intel XED. These #AlderLake and #SapphireRapids datafiles detail the #GoldenCove and #Gracemont ISA capabilities https://t.co/nyQ0LEZKRv https://t.co/5vPFG6JTiW https://t.co/fJgfOCa74v」 / Twitter

Intel® Intrinsics Guide

MASM

MASM32によるアセンブラ入門:パート1 - インターネットコム
Win32 MASM プログラミング入門
VC++のデバッグモードとリリースモードの違いについて。 - VC++を使って... - Yahoo!知恵袋
visual studio 2013で「最適化コンパイルのオプションを切る」ってどうすれば... - Yahoo!知恵袋
Visual C++ 2010 express のインラインアセンブラのOFFSET演算子に... - Yahoo!知恵袋
CX's Hello, World! » Hello, MASM World!
MASM のデータ型
MASM のデータ型
MASM の 実行時比較演算子,TYPE演算子, 他
Microsoft Macro Assembler のメモ セグメント
Entis Laboratory
Microsoft Macro Assembler のメモ モデル
MASM 6.1 Documentation
MASMReference.pdf

MASM 以外

Yasm

The Yasm Modular Assembler Project
Libyasm · yasm/yasm Wiki
yasm/yasm: Yasm Assembler mainline development tree
Yasm - Wikipedia
yasm/COPYING at master · yasm/yasm
Amd64 · yasm/yasm Wiki
Libyasm · yasm/yasm Wiki
libyasm: File List
yasm-doc/manual.txt at master · yasm/yasm-doc
Chapter 16. win64: PE32+ (Microsoft Win64) Object Files
Win64object · yasm/yasm Wiki
Programmerreferences · yasm/yasm Wiki
Codeviewdebug · yasm/yasm Wiki
Dwarfdebug · yasm/yasm Wiki
Faq · yasm/yasm Wiki
Visualstudio2005 · yasm/yasm Wiki
yasm-1.3.0
yasm-1.3.0
Yasmのコンパイル&インストール お気に入りの動画を携帯で見よう
猫科研究所 - 今更MinGW 2009.06(5) nasm,yasm
1.7. Supported Debugging Formats
Yasm User Manual
Yasm 1.2.0 - The Yasm Modular Assembler Project
x86 - Debugging assembly code created with yasm - Stack Overflow
c++ - How can I use gdb to debug code assembled using yasm? - Stack Overflow
Ubuntu Manpage: yasm - The Yasm Modular Assembler

NASM

Netwide Assembler - Wikipedia
Netwide Assembler - Wikipedia
NASM
Public Git Hosting - nasm.git/summary
NASM
NASM - The Netwide Assembler
NASMとMASMの違い - その他(プログラミング・開発) 解決済み| 【OKWAVE】
https://web.archive.org/web/20100719062549/http://www.yuasa.kuis.kyoto-u.ac.jp:80/~nobu/study/nasm/chap2.html
NASM - The Netwide Assembler
nasmのバグ? - 借り初めのひみつきち
WindowsでNASMを使ってアセンブラを動かしてみる - Qiita
アセンブラ環境 NASMとALINK - Namareba食べたい
アセンブリでWin32APIを呼んでみよう! | Developers.IO
南関東開発機構 : アセンブリ言語でWindowsプログラミング
アセンブリ言語入門 | nasmの使い方-4 | サラリーマンがハッカーを真剣に目指す
NASM - The Netwide Assembler

GAS

Linux のアセンブラー: GAS と NASM を比較する
KMC Staff Blog:gas のインテル構文
GNU アセンブラ - OS Project Wiki
GASとNASMとNASKについて - Project_Rena_( unofficial plan : shoko ) - Seesaa Wiki(ウィキ)
GAS と NASM ではどちらが使い易いのでしょう? - 「はじめて読む8086... - Yahoo!知恵袋
GAS_基本書式 CapmNetwork
Using as: Pseudo Ops
Using as: i386-Dependent
Using as - Assembler Directives
日記 (2017 年 7 月中旬)
日記 (2017 年 7 月中旬)

Xbyak

XBYAK
herumi/xbyak: a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header
xbyak/readme.txt at master · herumi/xbyak
Xbyakで始めるx86(IA-32)入門 (mitsunari@cybozu labs)
暗号の世界最速実装を目指す ── 光成滋生 - Cybozu Inside Out | サイボウズエンジニアのブログ
S.F. Blog:Xbyakのしくみ
Xbyakで簡単な関数を実行時に生成する - Kludge Factory
C++/Xbyak - discypus
Xbyakの紹介とその周辺
melancholic afternoon

Function Calling Convention (x86-64) - Qiita
assembly - How to generate plain binaries like nasm -f bin with the GNU GAS assembler? - Stack Overflow

Wikibooks

X86アセンブラ/x86アセンブラ - Wikibooks
X86アセンブラ/GASでの文法 - Wikibooks
X86アセンブラ/MASMでの文法 - Wikibooks
X86アセンブラ - Wikibooks

通信用語の基礎知識

オペコード (IA-32) ‐ 通信用語の基礎知識
オペランド ‐ 通信用語の基礎知識
ModR/M ‐ 通信用語の基礎知識
SIBバイト ‐ 通信用語の基礎知識
命令プリフィックス ‐ 通信用語の基礎知識
REXプリフィックス ‐ 通信用語の基礎知識
REX.W ‐ 通信用語の基礎知識
プリフィックス ‐ 通信用語の基礎知識
XOPプリフィックス ‐ 通信用語の基礎知識
VEXプリフィックス ‐ 通信用語の基礎知識
EVEXプリフィックス ‐ 通信用語の基礎知識
Intel AVX ‐ 通信用語の基礎知識
Intel AVX2 ‐ 通信用語の基礎知識
__m256 ‐ 通信用語の基礎知識
Intel AVX-512 ‐ 通信用語の基礎知識
__m512 ‐ 通信用語の基礎知識
FMA3 ‐ 通信用語の基礎知識
FMA4 ‐ 通信用語の基礎知識
HLE ‐ 通信用語の基礎知識
RTM ‐ 通信用語の基礎知識
AMD64 ‐ 通信用語の基礎知識
cpuid (x86) ‐ 通信用語の基礎知識

Wikipedia

x86 calling conventions - Wikipedia
呼出規約 - Wikipedia
Calling convention - Wikipedia
Application Binary Interface - Wikipedia
Application binary interface - Wikipedia
コールスタック - Wikipedia
Call stack - Wikipedia
符号拡張 - Wikipedia
3DNow! - Wikipedia
SIMD - Wikipedia
x86 - Wikipedia
x64 - Wikipedia
プロテクトモード - Wikipedia
積和演算 - Wikipedia
80x86 の命令の自己書き換え (#1559838) | もうやらなくていい昔のコーディングテクニックあれこれ | スラド
自己書き換えコード - Wikipedia
Self-modifying code - Wikipedia

Qiita

アセンブラに手を出してみる - Qiita
アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
C言語の勉強がてら、CASL II処理システムを実装した話 - Qiita
EVEX - Qiita
Pelemay 0.0.10 で生成されるアセンブリコード - Qiita
2で割ることと3で割ること - Qiita

Twitter

その他

ひらナツさん@散文家さんのツイート: "AVXとSSEの命令がミックスされて実行されると、SSE命令の過去互換性を保つために、SSE命令が遅くなる(エミュレートされた状態になる?)AVXのレジスタ上位をクリアする命令をAVX実行後に実行してやると、もとのSSE命令に戻る。 #spkai"
インターネットの闇さんのツイート: "@func_hs load effective addressですね~~~"
InstLatX64さんのツイート: "A Venn-diagram to understand the 12 levels of #AVX512 in #Intel processors https://t.co/5cV9nTDTRb"
Fadisさんのツイート: "128bit整数があると64bitのアドレスにタグやカウンタをくっ付けた物をatomic演算で書き込む(今日の主要な64bitプロセッサは128bit atomic演算をサポートしている)のを高級言語で書けるんだ。これができるとロックフリーデータ構造におけるABA問題をあまり頭を使わずに解決できる"
ロボ太さんのツイート: "アセンブリの話になると必ず「アセンブラ言語は誤りで、アセンブリ言語が正しい」という人が湧いて、それはいいんだけど、とりあえずIBMは「Assembler language」と呼んでることと、ARMが「Unified Assembler Language (UAL)」を規定していることは知ってても良いかもしれない。"
ロボ太さんのツイート: "まぁARMは「アセンブリ言語(assembly language)」派だけれども。なのになぜ「UAL」が「Unified Assembly Language」ではなく「Unified Assembler Language」の略なのかは知らない。"
uint256_tさんはTwitterを使っています: 「関数呼び出し時に保存されないといけない(仮想)レジスタがどれかを判断するには, 呼び出しの周りで個々レジスタの生存期間を参照して判断すればいいかと思っていたけど, そもそも呼び出しがレジスタの値を破棄する物と扱えば, レジスタ退避のための処理と統合できるという(当たり前の)事実に気づいた.」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「32 bit 整数値を 1 bit ずつ回転させた 32 個の整数をすべて加えてから 2 の補数をとると、はじめの整数に含まれていた 1 の数(popcount)になる。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t コードの実行時間や利用可能な並列性をモデル化したアセンブラがあると良いなと思っています。」 / Twitter
uint256_tさんはTwitterを使っています 「@zacky1972 モデル化というのはどういう意味でしょうか」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t たとえば命令スケジューリングをするときの指針になるような機能が欲しいと思っていて,いろいろな命令の並びに対して実行時間をシミュレーションできるようなモデルがあると良いんじゃないかと思いました。」 / Twitter
uint256_tさんはTwitterを使っています 「@zacky1972 可能な命令の並び方に対して一つずつベンチマークできると便利かもしれませんね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MASM/GAS/Apple AS/ARM ASMのフォーマットの違いで痛い目にあっている自分としては、特殊なCPU命令ごときでアセンブラを使うのは得策ではないという知見。できるかぎりintrinsicを使うべき」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GNU AS/Apple AS/ARM RealView (Microsoft) ASとARMであっても三種類のシンタックスがあるんだから、ARMでもnasm的なの必要だよな」 / Twitter

分岐

uint256_tさんはTwitterを使っています 「フレーム内での位置を決定する前に命令を選択しているから, s0-10000みたいな位置に変数が置かれると, sd a5, -10000(s0) というinvalidなアセンブリが生成されてしまう.」 / Twitter
uint256_tさんはTwitterを使っています 「先にとても雑にフレームの位置を計算すればいいのか??」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t これは分岐命令とかも同じじゃないですか? こういう問題は、命令を生成した後に自分が生成した命令をスキャンし直して、大きすぎるオフセットを持ってる命令を複数の命令列で置き換えるという処理を入れるしかないような。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t しかも分岐命令だと収束するまで繰り返し再スキャンしないといけないですよね。1つの命令を複数命令列に置き換えることで、既存の命令のジャンプ先へのオフセットが若干大きくなることがありえるので。」 / Twitter
msyksphinz_devさんはTwitterを使っています 「LLVMだとeliminateFrameIndex()がその修正を担いますかね。 MachineInstrの状態でオフセットを計算し、即値が入り切らなければ、そこでさらに1命令突っ込みます。」 / Twitter

AT&T 記法

Tsukasa #01 [要出典]さんのツイート: "AT&T 記法、オペランドの向きが一般的なアセンブリ言語と逆なことまでは許せる。が、lea 命令をあんな形式にしたのはどう頑張っても擁護できない。"
Tsukasa #01 [要出典]さんのツイート: "lea 命令だけじゃないな。レジスタ 2 個以上がかかわる全てのアドレッシング形式 (特に Intel シンタックスでいう [4*ecx+esi+8] のような表記は AT&T シンタックスだと……)。"
Tsukasa #01 [要出典]さんのツイート: "[4*ecx+esi+8] → 8(%esi, %ecx, 4) …………。"
Tsukasa #01 [要出典]さんのツイート: "これは重要なことだと思うけど、アセンブリ言語は機械語そのものじゃない。"
rnurachueさんのツイート: "disasmすると落ちる情報もあるんやで(asmの表現力によるかもしれないが)"
rnurachueさんのツイート: "アーキによるかもしれんな"
Tsukasa #01 [要出典]さんのツイート: "まぁアーキ次第ではあるけど言いたいことはよく分かる。ジャンプ幅を意図的に決められる nasm のような処理系でも、8B 50 00 と 8B 90 00 00 00 00 は区別する方法が無いし、disasm 結果のアセンブリ部分を使うとバイナリが変わる。"
Tsukasa #01 [要出典]さんのツイート: "あるいは x86 における 87 c0 と 90。このときは ndiasm はバイナリの違いをちゃんと復元するが、nasm が気を利かせて前者を 90 にコンパイルし直す。"
herumiさんのツイート: "よく使われる命令はよいですがfsubrp, fsubpのAT&T記法の扱いはバグだと思いました(昔めちゃくちゃはまりました)。後、例えばvcvtpd2dq xmm0, yword [eax+32]といった新しい命令がどうなるかいちいち調べないといけないのも二度手間です。Intelが本家なのだからそれに従うのがよいと思います。… https://t.co/bFmd2lZY9j"
herumiさんのツイート: "補足するとIntelでのfsubrpはfsubrp st1,stの略(rはreverseでバイトコードはde e1)で意味はstからst1を引いて結果をst1に格納してレジスタポップだけどAT&Tでは何故かrがないfsubp %st, %st(1)になる。逆にfsubpはfsubrpになる。引数の順序だけでなく命令も入れ代わる。 https://t.co/hPLHkN7O1o"

インラインアセンブリ

Hideyuki Tanakaさんのツイート: "オッ(´・_・`) / “[Pre-RFC]: Inline assembly - language design - Rust Internals” https://t.co/GXv8c1KgHx"
Hideyuki Tanakaさんのツイート: "rustのインラインアセンブリのstable化にあたって、gcc互換の実装じゃなくて、もうちょっとわかりやすくするような文法定義する動きがあるのか。現状の案では、文字列ベースで似たような感じではあるみたいだけど、どうせやるならVCとかのようなEDSLタイプがいいんすけどね~"
Hideyuki Tanakaさんのツイート: "ただアレでやるには、ただバックエンドに文字列送るだけじゃなくて、引数とかのどれが書き換えられるとかそういうのの知識が必要になるから、コンパイラレベルでISAの知識が必要になるよな~まあそのほうが使い勝手はいいし、今時それぐらいはやってもいい気はするが。"
Hideyuki Tanakaさんのツイート: "D言語もVCみたいなEDSL形式のインラインアセンブリ持ってるんすねえ。あれ新しいプロセッサに対応するときD言語のバックエンドにそれ用のコードを追加しなきゃいけないんすかね~(´・_・`)"
Hideyuki Tanakaさんのツイート: "@ishitatsuyuki ふむふむやっぱあれはとりあえず必要だから入れてたけど理想の形ではなかったでしたか"
品川 高廣さんのツイート: "インラインアセンブラも -masm=intel を指定すれば Intel記法に出来ますよね。あまり見たことないですが。… "
技術書典4 け-51 x86-64-128さんのツイート: "Clangだと、インラインアセンブラの先頭行に.intel_syntax noprefixと書けば良いらしい。-masm=intelは不要。 https://t.co/8wRykdWsk3… "
品川 高廣さんのツイート: "gcc で Intel 記法を使うときはコマンドラインオプションで -masm=intel を付ける。clang で Intel 記法を使うときはインラインアセンブラの先頭で ".intel_syntax noprefix\n" と書く。両方やっておけば、gcc でも clang でもコンパイルできる。"

mov 命令

解答略さんのツイート: "昨晩からx86-80386のCPUをFPGAで自作してるんだけど、ようやくMOV命令が動いた。あと半日あればかなりの量の命令が実装できる気がする。FPGA慣れてきた。#低レイヤ https://t.co/L7oZSvx4aF"
Fadisさんのツイート: "x86のmov命令は1命令だけでチューリング完全の要件を満たせる事が知られている( https://t.co/01OSrCDOTX )し、mov命令が動くCPUは完全なCPUと言って良いのでは"
Fadisさんのツイート: "そして驚くべき事に、実際にmovしか吐かないC言語コンパイラ(フロントエンドはLCC)を作ってしまった猛者がいるらしい / M/o/Vfuscator https://t.co/DyXoBYQ4T7"
Mov is turing-complete
xoreaxeaxeax/movfuscator: The single instruction C compiler

@7shi

七誌さんのツイート: "VAXのアセンブラを作り始めた。まずはオペランドのパーサから。ランダムなバイト配列を逆アセンブルして、それをアセンブルして元に戻るかで確認。乱数ではなく定理証明するべきだと言われそうだけど…"
七誌さんのツイート: "機械語を調べるために1行アセンブルはよくやっていたのだけど、REPLがあれば効率化できるという発想はなかった。だからrappelを見て驚いた。完全にインスパイアされた… https://t.co/EbLbs6ap2d"
七誌さんのツイート: "総当たりで逆アセンブラを作ろうとしたとき、先に分析を済ませてからコードを書こうとしたのは、あまり良くなかったと気付いた。分析と並行してコードを書いて、うまくいった部分は分析対象から除外していかないと、複雑なものではなかなか収拾が付かない。"
七誌さんはTwitterを使っています: 「RETRO UNIX 8086(UNIX V1の8086移植)でもMulticsと同じようなlist形式を見付けました。私は知らなかったのですが、どうやらこういう形式があるようですね。 https://t.co/i2qycHaDts」 / Twitter
https://www.singlix.com/runix/runix8086/unix.lst
SODA NoriyukiさんはTwitterを使っています: 「@7shi https://t.co/rBSLFpGfPi の Example code とか https://t.co/75vJ7L8XQd みたいなアセンブリ言語と機械語を併置する奴ですか? アセンブリ言語でプログラミングし、機械語を見ながらデバッグする時代には一般的でした。」 / Twitter
Zilog Z80 - Wikipedia
Assembly language - Wikipedia
ぬん。さんはTwitterを使っています: 「@7shi @n_soda linuxでも、 objdump --disassemble &lt;binary&gt; するとでてくる形式ですかね。(コメントはないですが)」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@7shi @amasawa_seiji マニュアル見てみたら GNU as でも -al オプションで出すことができるみたいですね。」 / Twitter

@kazuho

Kazuho Okuさんのツイート: "@nalsh @shyouhei @n_soda オーバーフローは例外的なケースだから、cmovより分岐予測あてるほうが良いのでは?"
Kazuho Okuさんのツイート: "mov eax,eax はx86-64だとnopじゃなくてraxへのゼロ拡張なのか #spkai"
Kazuho Okuさんのツイート: "@kazuho で、ymmいじられたかどうか覚えてるのは、コンテクストスイッチの際に退避すべき量を最小限にするためじゃないのかな #spkai"
Kazuho Okuさんのツイート: "任意順序でのビット列並び替えが20命令前後で書けるのか / “Bit manipulations using BMI2 — bitbashing” https://t.co/aAQRwNaQS0"
Bit manipulations using BMI2 — bitbashing
Kazuho Okuさんのツイート: "direct-threaded codeの効果はNehalem世代で10.1%だったのがHaswellで2.8%に減少 / “Branch Prediction and the Performance of Interprete…” https://t.co/R9loLePdjF"

@kariya_mitsuru

ngtkさんのツイート: "@uchan_nos 64bitモードで32bit命令を実行すると64bitレジスタの上位32bitは0クリアされるとかそういう話ですか?"
OS作れないマン 技術書典3 あ11企さんのツイート: "REXプレフィックス付けなくても上位32ビットクリアされて嬉しいなーということだな。汚い。"
disassembly - xor eax, eax in x64 - Reverse Engineering Stack Exchange
置き引きにあったマヌケな鳥頭さんのツイート: "@uchan_nos s/push cs/push es/ で、push es の前にオペランドサイズプレフィックス(0x66)付けたら16ビットでプッシュ出来たりしません?"
置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos あ~、push es は 8086/88 の時からあります"
置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos pop cs はテロ行為っぽいですからね…"

Introduce assembler macros by DQNEO · Pull Request #22 · DQNEO/minigo
A bug story: data alignment on x86
NOP命令と都市伝説
タネ明かし: Whitespaceコンパイラを作った話の裏側 | κeenのHappy Hacκing Blog
なぜCPUメーカはレジスタの数を増やさず、最先端の64ビットCPUでも16個しかないのですか? - Quora
富岳のディープラーニング処理を支えるJITコンパイラ「Xbyak_aarch64」誕生秘話:インタビュー|gihyo.jp … 技術評論社
「ARM」という単語の意味を啓蒙する記事 - Zopfcode Essay

Linker

その他

ABI Navigator
ARM Information Center
ソフトウェアの互換性と僕らの"User-Agent"文字列問題|Rui Ueyama|note
「悪い方が良い」原則と僕の体験談|Rui Ueyama|note
LLVMの新しいリンカLLDがLLVM 4で導入へ
LLD - The LLVM Linker — lld 6 documentation
The ELF and COFF Linkers — lld 6 documentation
LLVM Link Time Optimization: Design and Implementation — LLVM 6 documentation
Winux Project 7
KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法
2011年11月2日 脱GPLとBSDライセンスツールチェーン - 最後の砦「リンカー」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
Linkers and Loaders
カジュアルに実行時リンク&ロードする - 事例2 - 関数を呼んでる関数を呼びたい
リンカ
Terse Executable Format - PhoenixWiki
CRubyとLink Time Optimizationについて - なるせにっき
melancholic afternoon
リンカの役割 自分メモメモ - Qiita
⚙ D69607 Add a feature to explain why some file gets included to the linker's output
カジュアルに実行時リンク&ロードする - カジュアルに実行時リンク&ロードする

PE

その他

Hexacorn | Blog
PEファイル (PortableExecutableFile)(2) – ヘッダについて « 来栖川電算
PE(Portable Executable)ファイルフォーマットの概要
Exeファイルを解読してみよう(後編)
日記移転先(゜▽゜)::EXEヘッダ/PEヘッダ/NEヘッダ
リンカ作ろうJP$1 - yutopp's blog
EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
Windowsプログラミング その1
d4.princess.ne.jp/diary/201411.html
PEファイルの謎
linker_kernelvm5.pdf
C言語/システム/実行ファイル/COFF | LaboICT.
Tiny PE
最小のEXEファイル? - 借り初めのひみつきち
/DYNAMICBASE一問一答 « 他人の空似
Windows support — lld 10 documentation
windres - Google 検索
i-saintさんはTwitterを使っています: 「VicualC++ は string literal は 16384 byte までという上限があるらしい。でかいデータを埋め込みたい場合 http://t.co/MJLnzo4E ここの Binary to MS COFF で .obj ファイルにしてリンクするといいっぽい。」 / Twitter
Vortex's Utilities, Tools And Toys
Tiny PE
PEを理解したかったのでreadpeってものを作った - Qiita
Effectiveさお

MS

その他

DUMPBIN のオプション
ValveTimeさんのツイート: "Former Microsoft Architect and MS-DOS Pioneer Mark Zbikowski joins Valve as a Software Engineer. https://t.co/Le02aK5LLS #valve https://t.co/9Us2aIWZjF"
savaさんのツイート: "https://t.co/xtJD4LzUGi おいマジかよ… (MS-DOSのメモリ周りを見る(弄る)プログラムを作った人なら誰でもメモリブロック先頭にあるMやZの文字のことをご存知のはずですが、これってこの人のイニシャルなんですよ…)"
Mark Zbikowski - アメリカ合衆国 グレーター・シアトル エリア | プロフィール | LinkedIn
任意の64ビットバイナリにHigh Entropy ASLRを適用する設定を見つけるまでの備忘録 - Togetter
Address Space Load Randomization

PE Format - Windows applications | Microsoft Docs
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format | Microsoft Docs
Windows ISV Software Security Defenses | Microsoft Docs
/BASE (Base Address) | Microsoft Docs
/HIGHENTROPYVA (Support 64-Bit ASLR) | Microsoft Docs
/DYNAMICBASE (Use address space layout randomization) | Microsoft Docs
Migrating 32-bit Managed Code to 64-bit | Microsoft Docs
C の装飾名の形式 | Microsoft Docs
重箱の隅のデバッグ(1) – インポートセクションで設定するブレークポイント – JAPAN Platform SDK(Windows SDK) Support Team Blog
ImageHlp Structures - Windows applications | Microsoft Docs
-SECTION (Specify Section Attributes) | Microsoft Docs
LIB リファレンス | Microsoft Docs
MSVC リンカー オプション | Microsoft Docs
DUMPBIN リファレンス | Microsoft Docs
/BASE (ベース アドレス) | Microsoft Docs
/FIXED (固定ベース アドレス) | Microsoft Docs
MSVC リンカー オプション | Microsoft Docs
/LARGEADDRESSAWARE (大きいアドレスの処理) | Microsoft Docs
/OPT (最適化) | Microsoft Docs
/PROFILE (パフォーマンス ツール プロファイラー) | Microsoft Docs
/ORDER (関数の順序) | Microsoft Docs
Rui UeyamaさんはTwitterを使っています: 「VS2019でリンカが速くなったのは、間違いなくlldがMSリンカより何倍も速いのを見てMicrosoftが真剣になったからなので、間接的にもいろんな人の役に立ってると言えるかもなぁ。あと競争は重要だね。競争がないと重要なコンポーネントでも放置されがち。 https://t.co/3tHRSefWMB」 / Twitter
Improved Linker Fundamentals in Visual Studio 2019 | C++ Team Blog
Rui UeyamaさんはTwitterを使っています: 「まあ大幅な高速化が可能であるということが実証された後で、しかもそのソースコードを読んだりもできるという状況で、うちもエンジニアリングリソースを割いてキャッチアップしよう!とならないのは逆にありえないんだけど。」 / Twitter

CheckSum

PE Checksum Algorithm的较简实现 - 011 - 博客园
An Analysis of the Windows PE Checksum Algorithm - CodeProject
RFC 1071 - Computing the Internet checksum
RFC 1141 - Incremental updating of the Internet checksum
RFC 1624 - Computation of the Internet Checksum via Incremental Update
Standard PE checksum - Source Codes - rohitab.com - Forums
windows research kernel(work) - Google 検索

鷲ノ巣

PE ファイルについて (1) - IMAGE_DOS_HEADER - 鷲ノ巣
PE ファイルについて (2) - IMAGE_FILE_HEADER - 鷲ノ巣
PE ファイルについて (3) - IMAGE_OPTIONAL_HEADER - 鷲ノ巣
PE ファイルについて (4) - IMAGE_SECTION_HEADER - 鷲ノ巣
PE ファイルについて (5) - IMAGE_DATA_DIRECTORY - 鷲ノ巣
PE ファイルについて (6) - 補足 - 鷲ノ巣
PE ファイルについて (6.5) - 相対仮想アドレス - 鷲ノ巣
PE ファイルについて (7) - エクスポート編 - 鷲ノ巣
PE ファイルについて (8) - インポート 基本編 - 鷲ノ巣

Glamenv-Septzen.net

技術/Windows/PE(Portable Executable)フォーマットの実験 - Glamenv-Septzen.net
技術/Windows/PE(Portable Executable)フォーマットの実験/02, 再配置情報で遊ぼう! - Glamenv-Septzen.net

PE_FORMAT

目次
目次
1.基本概念
2. 概要

ファイルヘッダ

3. ファイル ヘッダ
3.1 MS-DOSのスタブ(イメージのみ)
3.2 シグネチャ(イメージのみ)
3.3 COFFファイル ヘッダ(オブジェクトとイメージ)
3.3.1 マシン タイプ
3.3.2 特性
3.4 オプション ヘッダ(通常はイメージのみ)
3.4.1 オプション ヘッダの標準フィールド(イメージのみ)
3.4.2 オプション ヘッダのWindows NT固有フィールド(イメージのみ)
3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ)

4. セクション テーブル(セクション ヘッダ)
4.1 セクション フラグ
4.2 Grouped Sections(オブジェクトのみ)
5.2 COFFの再配置(オブジェクトのみ)
5. 他のファイル内容
5.1 セクション データ
5.2.1 タイプ インジケータ

シンボル情報

5.3 COFF行番号
5.4 COFFシンボル テーブル
5.4.1 シンボル名の表現
5.4.2 セクション番号の値
5.4.3 型の表現
5.4.4 ストレージ クラス
5.6. COFF文字列テーブル
5.5 補助シンボル レコード
5.5.1 補助形式1:関数定義
5.5.2 補助形式2:.bf および .ef シンボル
5.5.3 補助形式3:弱い外部参照
5.5.4 補助形式4:ファイル
5.5.5 補助形式5:セクション定義
5.5.6 COMDATセクション(オブジェクトのみ)

6. 特殊セクション

デバッグ情報

6.1 .debugセクション
6.1.1 デバッグ ディレクトリ(イメージのみ)
6.1.2 デバッグ タイプ
6.1.3 .debug$F(オブジェクトのみ)
6.1.4 .debug$S(オブジェクトのみ)
6.1.5 .debug$T(オブジェクトのみ)
6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート

6.2 .drectveセクション(オブジェクトのみ)

.idataセクション

6.4 .idataセクション
6.4.1 インポート ディレクトリ テーブル
6.4.2 インポート ルックアップ テーブル
6.4.3 ヒント/名前テーブル
6.4.4 インポート アドレス テーブル

再配置情報

6.5 .relocセクション(イメージのみ)
6.5.1 fixupブロック
6.5.2 fixupタイプ

6.8 .textbssセクション(イメージのみ)

アーカイブファイル形式

7. アーカイブ(ライブラリ)ファイル形式
7.1 アーカイブ ファイル シグネチャ
7.2 アーカイブ メンバ ヘッダ
7.3 第1リンカ メンバ
7.4 第2リンカ メンバ
7.5 長い名前メンバ

インポートライブラリの形式

8. インポート ライブラリの形式
8.1 インポート ヘッダ
8.2 インポート タイプ
8.3 インポート名の種類

ダイジェストに含めないフィールド
付録:イメージ メッセージ ダイジェストの計算

アレ用の何か

アレ用の何か
アレ用の何か
アレ用の何か
アレ用の何か

リソース

実行可能ファイルに新しいリソースを埋め込んじゃおう
実行可能ファイルに新しいリソースを埋め込んじゃおう
実行可能ファイルに新しいリソースを埋め込んじゃおう

DLL

MS

LoadLibraryEx 関数
GetProcAddress 関数
FreeLibrary 関数
FreeLibraryAndExitThread 関数
DllMain 関数
SODA Noriyukiさんのツイート: "thread local storage を持つ shared object を dlopen() したら、その TLS をスレッドライブラリに通知して各スレッドの TLS を拡張するみたいな処理がたぶん必要だよね? このあたりは完全にOSおよびそのバージョン依存になるから、OS付属のrtldを拡張する方針にしないと死ぬばっかじゃないかなあ。"
NaOHaq(仮性ソーダ)さんのツイート: "Windows だと、thread が作られたときにDllMain関数 https://t.co/hM1IbMgqiW が呼ばれてそこで処理しろってなってるっぽいですね… "
DLL の植え付けの脆弱性のトリアージ – 日本のセキュリティチーム
Dynamic-Link Library Search Order (Windows)
Load Library Safely – Security Research & Defense
PROCESS_MITIGATION_IMAGE_LOAD_POLICY structure (Preliminary)
Masaru IritaniさんはTwitterを使っています: 「今日のチーム内勉強会では、DllMain でお行儀の悪いことをするとシステムのハングを引き起こせることを学びました。時間ができたら試してみましょうか。 https://t.co/OaYB0NuVXu」 / Twitter
Another reason not to do anything scary in your DllMain: Inadvertent deadlock | The Old New Thing
yohさんはTwitterを使っています 「DLL の植え付けの脆弱性のトリアージ https://t.co/1yfe3WYY23 "DLL planting" とも言うのか... hijackingやpreloadingしか聞いたことなかった」 / Twitter
DLL の植え付けの脆弱性のトリアージ - Microsoft Security Response Center

Export Address Table

ITセキュリティのアライ出し (46) EAF出撃す | マイナビニュース
6.3.2 エクスポート アドレス テーブル

Import Address Table

IAT:インポートアドレステーブルについて - Log.i53
騙せるPE解析ツールのImport API表示機能(2016-11-28)
マニュアルアンパックのIAT再構築を手動でやった話 - Qiita
wivern.com | 「リバースエンジニアリングバイブル」勉強メモ#5
PEの.idataをアセンブラで考える - 七誌の開発日記
GOT、PLTとIAT - 脱力系日記
騙せるPE解析ツールのImport API表示機能(2016-11-28)
IAT | すなのかたまり
DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識
DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識(続き)
コグノスケ
インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説

ASLR

第三話:ASLRの意味をデバッガで見てみる|トリコロールな猫|note
WindowsでASLR(Address Space Layout Randomization)を確認してみる。 - バイナリの歩き方
本の虫: Windows 7におけるプリコンパイルドヘッダーのエラーについて
WindowsのASLRに脆弱性、米セキュリティ機関が対策呼び掛け - ITmedia エンタープライズ
JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
Positive Technologies - learn and secure : Windows 8 ASLR Internals
Proj 9x: Understanding PE Files and ASLR on Windows (15 pts.)
設定によりWindows8以降のASLRが不適切に行われる可能性 | SCTブログ | 三和コムテック
-DYNAMICBASE (使用してアドレス空間レイアウトのランダム化) | Microsoft Docs

遅延ロード

/DELAYLOAD (遅延読み込みのインポート)
C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
DLLの遅延読み込みをフックする | ::Hikaru's blog
VS2008/VS2010 memo
リンカーによる DLL の遅延読み込み
遅延読み込みする DLL の指定
DLL の遅延読み込みの制約

プリロード

golang の DLL プリロード対策

Vim界の声の大きい人さんのツイート: "ちなみに golang は既に DLL プリロード対策がされていて、起動時に LoadLibraryEx と AddDllDirectory が使える環境はそれが設定され、使えない環境はシステム DLL は直パスでロードされてます。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "?? System32配下のDLLは沢山あると思いますが、全てロード or それとも限定する選択基準があるのでしょうか? >システム DLL は直パスでロード… "
mattnさんのツイート: "限定的です。ここに列挙されてる DLL のみ、フォールバック時に直パスで読まれます。 https://t.co/t2YOTqsoyN… "
go/zsyscall_windows.go at master · golang/go
Shirouzu Hiroaki(白水啓章)さんのツイート: "参考になります。 この選択の基準があれば知りたいですね。… "
mattnさんのツイート: "僕はその際の改善には関わらなかったですが、眺めてた所だと、golang の標準パッケージが使っている DLL を列挙した様でした。なのでユーザが追加でロードする物に関しては(AddDllDirectoryが使えない環境は)問題が起きうると思います。これは仕方ないかなと思ってます。… https://t.co/GEWqnZHWHz"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、了解です。exeの横に危険なdllが置かれるのは、主にインストーラなので、そうでなければ、そこまで神経質になる必要はないですね。… "
mattnさんのツイート: "ちなみにその際の issue がこちらです。 https://t.co/7oGxhnRDhy… "
syscall: guard against Windows DLL preloading attacks · Issue #14959 · golang/go

JVNTA#91240916: Windows アプリケーションによる DLL 読み込みやコマンド実行に関する問題
第35回 2017年6月~EOLなWindowsへの修正ファイル提供と,DLLプリロードの問題:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
UNLHA32.DLLにおける任意のDLL読み込みに関する脆弱性
Windows DLLプリロード攻撃の新しいパターンと防御法
Windows Defender Advanced Threat Protection で反射型の DLL 読み込みを検出 – 日本のセキュリティチーム
第43回 2018年2月~いまも発見される,DLL読み込みに関する脆弱性~どう悪用されるのか?&対処は?:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
Windows DLLプリロード攻撃の新しいパターンと防御法
脆弱性ポータルサイトJVN、Windows 7に存在する“DLLの植え付け”脆弱性を注意喚起 - 窓の杜
LoadLibraryAによるDLL読み込み順序とDLLプリロード攻撃 - Qiita
DLLプリロード攻撃のチェッカーをリリース « 他人の空似
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ダウト。2010年頃のDLLハイジャックと2016年以降のそれは別物。「3-4年も経つのに…」が正解。(トレンドマイクロがダメダメな点は賛成) JPCERT戸田さん「DLL読み込みの問題を読み解く」 https://t.co/w47xvkATgf 私「Windows DLLプリロード攻撃の新しいパターンと防御法」 https://t.co/prt4LLm1oH https://t.co/UdQEW4GX8j」 / Twitter
DLL読み込みの問題を読み解く
Windows DLLプリロード攻撃の新しいパターンと防御法

インジェクション

Rapport

なかのん&マジックさんのツイート: "なんか、Rapport入ってるとFirefoxクラッシュするとかいう話が昔あった気がする。"
Makoto Kato ︎︎さんのツイート: "Firefoxのバージョンが上がる度にクラッシュしてた。IBMに直してよって投げてたけど、最近はそんな聞かない… "
Makoto Kato ︎︎さんのツイート: "DLL blocklistを読み込む前にDLLが注入される作りで、ブロックできないんだよね"
Makoto Kato ︎︎さんのツイート: "ああいうセキュリティ対策系のソフトで一番素直なつくりはMSなんで、MSのが一番いいと思うよ"
Makoto Kato ︎︎さんのツイート: "何処かのベンダーのやつは、注入したDLL内でクラッシュするんでFirefoxが強制終了しまくる話があって、いろいろ問い合わせたら聞いたこないっていってたけど、体験版ですぐ再現する話だったのは、ホントイラついた"
Makoto Kato ︎︎さんのツイート: "アドオンごとブロックリスト行きにしたら、直してくれたけどさ"
なかのん&マジックさんのツイート: "あれって、XULアドオンだったわけじゃなくて、外部アプリなのにやらかしてくれてたんですか?… "
Makoto Kato ︎︎さんのツイート: "そうです。アドオンじゃなかったんですよ。プロセス起動時にDLLを注入しちゃうタイプで。。。… "
なかのん&マジックさんのツイート: "もはや、マルウェア……… "

Rockridgeさんのツイート: "Firefoxプロセスのアドレス空間にインジェクトされるDLLは、現在ブラックリスト方式で管理されているが、将来的にこれをホワイトリスト方式に改める。参照:https://t.co/mXNDx0IYAZ / “Platform/…” https://t.co/vDVhfKue2B"
CreateRemoteThread関数によるDLLインジェクションをやってみる - ももいろテクノロジー
DLL injectionでWindows APIによる暗号化処理を覗いてみる - ももいろテクノロジー
DLLインジェクション - Wikipedia
DLL injection - Wikipedia
DLLインジェクションを学ぶためのオンラインパッチの実験 - Qiita
早川顕太:Windows 上における危険な処理の... - Google Scholar
Rockridgeさんのツイート: "Fx53:アドオンやサードパーティー製ソフトウェアがFirefoxのプロセス内にDLLを読み込むことは、原則としてできなくなるようだ。WebExtensionsのNative Messaging API(Fx50でサポート)を使う… https://t.co/PgVacMWk7Z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsの場合、サードパーティDLLが勝手にプロセスに dll injectionして例外を起こすことがある。 (先ほど、香港ユーザから届いた例外ダンプを解析したら、google検索に1件も引っ掛からない、謎DLLで例外が発生していたというオチ) https://t.co/hBqrjpv8iR"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション問題(EXEフォルダ用)でのMSさんの解決策は、PreferSystem32というSYSTEM32を優先するオプション増設っぽい。 https://t.co/I3NvwwBAWa だがデフォルトだと、WinAPIやCOM I/F経由での、パスなし標準DLL読み込み問題は残ったままの様子。(手元で再確認) https://t.co/YZs6GBMXyc"
【トレンドマイクロ】ウイルスバスタークラウド含む12製品の CVE-2019-14688 が全然直ってない件【中国製】 - Windows 2000 Blog

NyaRuRuが地球にいたころ

DLLの闇 (0) - NyaRuRuが地球にいたころ
DLLの闇 (1) - NyaRuRuが地球にいたころ
DLLの闇 (2) - NyaRuRuが地球にいたころ
DLLの闇 (3) - NyaRuRuが地球にいたころ
DLL の闇 (4) - NyaRuRuが地球にいたころ
DLL の闇 (5) - NyaRuRuが地球にいたころ
TLS Callbacks - NyaRuRuが地球にいたころ

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLが自分自身でアンロードするための、FreeLibraryAndExitThread というAPIがある。 FreeLibrary と ExitThread を発行するだけのコードだが、それが標準DLL側コードに存在するため、FreeLibrary後もExitThreadが実行できる。 https://t.co/tqpkwFae6r"
What is the point of FreeLibraryAndExitThread? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション後のクリーンナップのために設計された感じ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は pragma でリンクするDLLを指定するのは邪道だと思っていたが、(Win32以外に移植予定が無いなら)こちらの方がメリットが多いな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "kernel32.dllは遅延ロードできない。 (GetProcAddressといった遅延ロードに必要なAPI自体が存在するため) https://t.co/j4HLtmgrvt kernel32関数の場合、昔ながらの GetProcAddress で解決するしかなさそう。"
Why can't I use the linker to delay-load a function from kernel32? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "現状では Vista 以降をサポート。(非公式にはXPでも動作) 新しいOSでは、主に遅延リンクで追加APIを使う形。 (ただしkernel32内APIだけは、それが出来ないのでGetProcAddress利用)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のマルウェアは、rundll32経由dllロード→svchostを起動してdllインジェクションして、そのsvchostが永続動作、みたいな形が増えてる? (確かにsvchost多すぎて気づき辛い) https://t.co/TjFBzlXHJz」 / Twitter
日本国内の組織を狙ったマルウエアLODEINFO - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ
rundll32.exeとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ダイナミック リンク ライブラリ(DLL)の基礎知識
DLL から「正しい」LIB ファイルを作るには
DLLファイルからLIBファイルを作成する(_stdcall宣言)
Microsoft Windows library files - Wikipedia
新しい低レベル バイナリ
ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
アレ用の何か
C言語系/memos/VC++/06, DLLの事前バインド(BindImageEx()) (v1) - Glamenv-Septzen.net
How important is it nowadays to ensure that all my DLLs have non-conflicting base addresses? – The Old New Thing
ReadApiSetSchema更新 « 他人の空似
VirtualDLLの仕組み « 他人の空似
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~DLLプリロード攻撃~ « 他人の空似
GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
碧落 - Win64 開発
4億円超の広告枠を中国のハッカーが購入して詐欺広告を表示しまくった手口とは? - GIGAZINE

COFF

COFF - Wikipedia
COFF - Wikipedia
coff.h Source File
COFF - OSDev Wiki
DJGPP COFF Spec
Common Object File Format (COFF
avrcoff.pdf

GitHub

erocarrera/pefile: pefile is a Python module to read and work with PE (Portable Executable) files
notes/index.md at master · yukitos/notes
COFF形式ファイルのいろいろ · HobbyOSs/opennask Wiki
study-re-201805/study-memo-dynamicbase at master · SecureSkyTechnology/study-re-201805

Wikipedia

Portable Executable - Wikipedia
Portable Executable - Wikipedia

PE - OSDev Wiki
x86 Disassembly/Windows Executable Files - Wikibooks, open books for an open world
本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
wivern.com | 見る価値のある5つの PE 解析ツール
PE Explorer: EXE File Editor, Resource Editor, DLL View Scan Tool, Disassembler.
WJR Software - PEview (PE/COFF file viewer),...
PE形式バイナリ変換ツール
PEダンパー兼PEエディタ「UMPE」

ELF

Explore cs in depth!

実行プログラム作成基盤をフルスクラッチで書いた - Explore "Full-Stack" in depth!
TUIベースのELF解析ツールを作りました - Explore cs in depth!
ELFバイナリに含まれるnullセクション/ヘッダの真実…? - Explore cs in depth!
オブジェクトファイルのシンボルテーブルを最低限理解する。 - Explore cs in depth!
readelf -S を簡易実装してセクションヘッダを理解する - Explore cs in depth!
readelf -lを簡易実装してELFフォーマットの理解を深める。 - Explore cs in depth!
バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説 - Explore cs in depth!

スライド

EuroLLVM 2016: New LLD linker for ELF - Google スライド
ELFの動的リンク
セキュリティ・キャンプ2019 Z2. ELFマルウェア検知エンジンの試作 成果報告 - Speaker Deck

Twitter

C

Rui Ueyamaさんのツイート: "Cコンパイラ本に初期化式についての説明を足してみた。プログラムはなぜ動くのか、みたいな本になりつつあるけど、その説明なしに解説するのは逆に無理だ。 https://t.co/dGjZVzZJEe"
低レイヤを知りたい人のためのCコンパイラ作成入門
Rui Ueyamaさんのツイート: "Cの仕様書だとこのあたりの動作はすごく抽象的に書いてあって、意味も必然性もわからない。僕が説明してるような特定のモデルを念頭に置いて読むといろいろ腑に落ちるんだけど、それをできるだけ一般的に説明しようとするとああなってしまうんだと思う。いいんだか悪いんだか。"
_ko1さんのツイート: "init section とかは ELF (とかa.out?)だと思いますが、具体名かいちゃわないんでしょうか。Linuxの実行ファイルといえば一意に決まるから、要らんのかな(一意に決まるかどうか、知らないのだけど)… "
Rui Ueyamaさんのツイート: "ELFだと名前は重要ではないということになっているので、SHT_INIT_ARRAYタイプのセクションは一応全部initセクションということになるんですよね。とはいえ`.init_array`であるのを前提にしちゃってるプログラムが多いですけど。… "
_ko1さんのツイート: "おお、なるほど、私のうろ覚えの理解も間違ってました(詳細はさっぱり知らなかった)。「initと呼ばれる特別なセクションに出力する」とあったので、特定の環境を想定しているのかな、と思ったんですが、その特定の環境かいてないなあと思った次第でして。… "
Rui Ueyamaさんのツイート: "initというのは一般名称のつもりでした。確かにそれは伝わらないかも。… "
shinichiro hamajiさんのツイート: "「initセクション/セグメント」と言われると.initセクションとDT_INITのことかな、と思ってしまう(この方式の時は実際関数ポインタが入ってたセクションは.ctorsでした)ので、ちゃんとinit_arrayという名前を明示してほしい気持ちあるかもです… https://t.co/mTpGnUNT5G"
Rui Ueyamaさんのツイート: "まあ足しとくか・・… "

るくすさんのツイート: "分かった... リンカが物理アドレス節約のために、セクションが小さい場合は全部まとめて先頭の空きスペースに持ってこようとするから、先頭からのオフセットが変わってるんだ... 気付くかよそんなの..."
るくすさんのツイート: "リンカスクリプトに陽に指定していないセクションは、なるべく空きスペースに置くようにしているのか いやまあそりゃそうだろって感じだが... まさか先頭に置いたつもりのセクションがこれの影響でずれるとは"
るくすさんのツイート: "あああ まさにこれだ。 linker scriptでセクションの順番を指定しても、物理アドレスは変わるけどELF内のオフセットが制御できなくてブートローダーから飛べない問題。 質問している人がいた https://t.co/LyFtwAU8uy"
るくすさんのツイート: "まあこの人は、ブートローダーとかじゃなく.textの前にシンボル置いたんだけど、実際のELF内オフセットは.textより後になっちゃう って言ってる"
るくすさんのツイート: "まあブートローダーでELFをちゃんとパースしろやwというのが正論だし、物理的な配置をELF側に求めるのは間違ってるんですが..."
るくすさんのツイート: "物理アドレスのオフセット値とelf内のオフセットが合わない仕様、やはり何とかするべきでは... 直感に反しすぎる..."
るくすさんのツイート: "何が起こるかというとELFを0x40100000に置いた後、0x40101000にアクセスすると先頭からオフセット0x1000のセクションにアクセスできそうなのに、実際は対応するセクションは0x2000にあるなどが起こる。"
るくすさんのツイート: "OFFSET 0x2000のセクションが0x40101000に配置されるの、マジで直感に反するからやめろ"
るくすさんのツイート: "いやまあbssセクションの後とかだったら、実際のELFオフセットと物理アドレスがずれるとかはあると思うんですけど、これ一番初めの(NULLの次)セクションで起こってるんだよな... 2,3,4番目のセクションが一番目のセクションより先に配置されるなどする"
Rui Ueyamaさんのツイート: "今調べている時間がないからここに書くけど、.gnu.hashをある方法で作るとUnixでのプロセスのスタートアップがかなり速くなるぽいんだけど、なぜそんなに違いが生じるのか誰もよくわかってません。数%は違いが出るので、わりと世の中的に役に立つはずなんだけど。誰か調べてほしい。"
ファッション自作OSマンさんのツイート: "ELFローダーを作る際のハマりどころ ・PT_LOADは複数になることがある ・PIEバイナリの場合、sh_addrやp_vaddrなどは0オリジンなので、実際のロードアドレスを加算する必要あり  ・もちろんリロケーション時にも。… "
ファッション自作OSマンさんのツイート: "ところで、PT_LOADが複数あるELFバイナリの場合、すべてのPT_LOADは基本的に連続(アライメントのために多少隙間はあるにせよ)と考えてOK?"
C++でOS自作 技術書典5 お05さんのツイート: "ELFのDYNAMICセグメントに基づきリロケートした結果、C++のvtableの内容が正しくアップデートされ、仮想関数が動くようになった。画面表示バグが直って正しく描画されると嬉しい。"
Rockridgeさんのツイート: "Fx64:Linux版の実行ファイルが位置独立実行形式(PIE)になった。参照:https://t.co/quDHNpLxZD / “1079662 - Enable PIE on Linux” https://t.co/BIF3z3Icrl"
品川 高廣さんのツイート: "ELF ファイルの PT_LOAD セグメントで対応するファイルサイズ(p_filesz)が 0 ということはあり得るんだな。"
Rui Ueyamaさんのツイート: "リンカは、ELFを読んだあとに同じ名前のセクションをそのまま連結して、.rela.*で指示されている箇所のアドレスをfix upすれば完成、という感じですよ。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「/proc/[pid]/maps に、同じ.soファイルが、異なるページ属性で別の位置にマップされている理由。 https://t.co/hVzNTKGEWV」 / Twitter
linux - Shared library mappings in /proc/pid/maps - Unix & Linux Stack Exchange
shinichiro hamajiさんはTwitterを使っています: 「最近、ことあるごとにglibcのローダはシンボルテーブルがフラットで、DT_NEEDEDをRTLD_GLOBALで解決するのがダメ、Bionicやdyldの方が良い、あとC++標準はDLL的なものに言及すべき(visibilityとかdllexport的なやつ)と主張してるのだけど、そう言う人を見ない気がする。みんな困っていないのかなあ」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「linuxのx86バイナリ、かなりcrazyなことになっていて、ビルドした後に独自のobjtoolでバイナリを解析してエラーチェックとかシンボル抜き出し、セクション追加などを行っている。non-blockingな自己書き換え手法が確立した後のはっちゃけ具合が凄い。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「両方の技術の元ネタ(kprobe jump optimization+x86 instruction decoder)を提供した身としてはwktkしてる。」 / Twitter
DrumatoさんはTwitterを使っています 「ELFをパースしたときにはbytes:Vec&lt;u8&gt;にしておいて,あとからシンボルテーブルを使う場合のみ構築する方法を取ったけど, ユーザ側が計算量のこと考えないと毎回テーブル作り直す重い処理になってしまう.」 / Twitter
DrumatoさんはTwitterを使っています 「というこでEnum実装に変更して, パース時のコストを許容し,その後スマートに使用できる仕組みを取ろうと思っている.」 / Twitter
DrumatoさんはTwitterを使っています 「抽象的で使いやすいELFライブラリを作るためには,ユーザが考慮すべきことを減らさなければ」 / Twitter

Linux Foundation Referenced Specifications
gabi41.pdf
System V Application Binary Interface - DRAFT
x86_64-abi-0.99.pdf
ELF Golf
binstudy/ELF-section.txt at master · warabanshi/binstudy
GNU Hash ELF Sections | Oracle Ali Bahrami Blog
Some Assembly Required*: Relocations, Relocations
最小限のELF | κeenのHappy Hacκing Blog
共有ライブラリ・静的ライブラリ・動的リンク・静的リンク検証 - 誰にも見えないブログ
静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - (iwi) 備忘録
共有ライブラリーを解剖する
Linux Insides : カーネル起動プロセス part5(終) | POSTD
Brainf*ckトランスレータ (5) 位置独立コード - 七誌の開発日記
PIE(position-independent executable)なオブジェクトの中身を見てみる - 情弱ログ
C - C言語の位置独立コード、GOT(53994)|teratail
アーキテクチャ - GOTとPLTについて確認です。(48163)|teratail
GOT、PLTとIAT - 脱力系日記
ELFから公開されている関数名を抜き出す - ククログ(2009-05-22)
DSAS開発者の部屋:Android で今後ネイティブ実行形式を扱う際に注意すべきこと
技術レポート「Linuxのライブラリ開発」|ソフテックだより|株式会社ソフテック
Reversingとかpwnとかを解くときのメモ(かきかけ) - 忖度
違法素数 - Wikipedia
readelf (GNU Binary Utilities)

GoLink

Go Tools for Windows (assembler, resource compiler, linker, debugger and information)

ALINK

ALINK download | SourceForge.net
alink.sourceforge.net
ALink - OSDev Wiki
ricardoquesada/alink: alink: linker for OBJ files. from here: http://alink.sourceforge.net/. Ported to linux/mac
assembly - linking a .obj file with alink - Stack Overflow
リンカ - seclan のほえほえルーム

BOLT

Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey
まさみさんは語りたいさんのツイート: "Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey https://t.co/BxqLSo1Bk4 おっ、これは。関数単位じゃなく分岐単位にするのかな?"
suzakiさんのツイート: "FaceBookのBOLT:Binary Optimization and Layout Toolは面白いが、やっていることはPGO: Profile Guided Optimizationではないのか? PGOはプロファイルを取り、そのプロファイルをコンパイラに与えて、最適化するもの。違いはソースコードを必要とするかしないか、が大きく違いますが。… https://t.co/qgIw73yWLb"
suzakiさんのツイート: "最近、この周りの調査をしているのですが、正しく『関数の実行時間』に苦労ししています。ThreadingやMulti Coreが当たり前となり、正確な時間が取れない。 使っているのはgporf, Google Perf, Oprofileですが、それぞれ一長一短あり。"
suzakiさんのツイート: "BOLTのHPによるとバイナリはnon-PIEのみとある。現在のディストロだときつそうに思えるが、実はPIEはあまり使われてないと言う調査をACSAC17ポスターで発表しました Analysis of Code Protection Technologies in ELF binaries in Major Linux Distributions and Generations https://t.co/6oUL31K4XL"
まさみさんは語りたいさんのツイート: "単に今実装していないだけの可能性がありますね。中を読むと機械語命令単位で解析と再構築をしてるようなので、そちらの実装を優先したのかも。… "
Miura Hidekiさんのツイート: "https://t.co/xGnFIJn4pU 手前みそだけど、こんな感じで出来るような気がする https://t.co/9e3Rs0McNB"
まさみさんは語りたいさんのツイート: "BOLTの場合、ホットスポットを纏めることでキャッシュヒット率の向上を狙ってるようなので、あまり個々の関数の実行時間は気にしてないのではないでしょうか。要するにバイナリ全体に対してunlikelyマクロを適用する感じでは。… "
suzakiさんのツイート: "perfで性能評価しているので関数単位ぐらいしか取れないと思ったら perf data with LBR (branch information) と記述がありました。 https://t.co/xzdaACuvm5 Branch単位でコードのレイアウトを変えることで、ヒートマップにあるように最適化できるのか?それにしてもヒートマップが効果が良すぎる。… https://t.co/jIfcMNx0Ba"
まさみさんは語りたいさんのツイート: "そもそもプログラムのコードの殆どはエラー処理なので、それを追い出せたら綺麗になるということなのでしょう。なのでunlikelyだなと。… "
LLVM Weeklyさんのツイート: "Applying the BOLT post-link optimiser to Clang for up to 15% performance improvement <https://t.co/KI7RQd0YYo>. A member of Google's compiler optimisation team shares some detailed thoughts on improving scalability with linker assistance https://t.co/a1xKohkyk2"
BOLT/OptimizingClang.md at master · facebookincubator/BOLT
[llvm-dev] Making Clang/LLVM faster using code layout optimizations
Fadisさんのツイート: "BOLT: 実行可能バイナリと、それを動かして得たプロファイルを入力として、分岐の確率に基づく最適化、キャッシュやTLBによりヒットしやすくする為のバイナリレイアウトの変更等を行った実行可能バイナリを生成するリンク「後」最適化コンパイラ https://t.co/jkGgM3eVvk"
facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
Google Propellerが大規模LLVMバイナリからさらなるパフォーマンスを引き出す
FadisさんはTwitterを使っています 「Facebookが同社のリンク「後」最適化BOLTをLLVM本家に入れたがっているらしい。BOLTはx86_64の実行可能バイナリを実行して得たプロファイルをもとに、実行可能バイナリに分岐のヒントを挟んだりキャッシュに当たりやすい配置に入れ替えたりといった最適化を行う https://t.co/5wODv8QlLd」 / Twitter
Facebook Is Looking To Upstream Their BOLT Binary Performance Optimizer Into LLVM - Phoronix
R. ShioyaさんはTwitterを使っています 「@shirouzu 一般的な最適化というよりは,確か命令列の配置方法により特化していたと思います.よく通る実行パスの命令を連続した領域上に再配置することで命令フェッチの効率を上げたり(分岐で飛ぶと読み出しが止まるので連続になっててほしい),キャッシュやTLBのヒット率を上げるのを狙っていたと思います.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、ありがとうございます。 逆に言うと、バイナリのみだと目立った改善点はそのあたりだけになるんでしょうねぇ。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu なにかあれが出てきた背景としては,バイナリ最適化で試行錯誤した延長というよりは,最近?コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていたので,それを何とかしたくて考えてああなったって感じじゃないかなと思っています.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そんな話があったのですね。勉強になります。 &gt; コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていた」 / Twitter
ドッグさんはTwitterを使っています 「Facebook の BOLT 最適化フレームワーク,LLVM に入れたいという話は前からあったけど,正式に RFC 出たのか | '[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization' https://t.co/jq5gWi76Hz」 / Twitter
[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization

CodeZine

x86系CPUのネイティブコードを解析する (1/3):CodeZine
プログラムからEXEファイルを生成してみよう (1/3):CodeZine
EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine(コードジン)
Windows実行ファイルのバイナリ概要 (1/2):CodeZine(コードジン)

Wikipedia

リンケージエディタ - Wikipedia
Linker (computing) - Wikipedia
名前修飾 - Wikipedia
位置独立コード - Wikipedia
EXEフォーマット - Wikipedia
New Executable - Wikipedia
COMファイル - Wikipedia
きしもとさんのツイート: "@knok 一応英語版のほうは、いくつかの例を挙げる形で、どれが決定版だとも言えないよ、ぐらいのスタンスに見えます https://t.co/0UIBmDCnjM"
.bss - Wikipedia
.bss - Wikipedia
システムイメージ - Wikipedia

Twitter

@rui314

mold

histric

histric-1

Rui UeyamaさんはTwitterを使っています 「前回パースした結果をうまくメモリに持っておくことで、ホントにChromiumが2秒でリンクできるようなリンカを作れる可能性がある気がする。初回起動時はやっぱり12秒くらいかかってしまいそうだけど、初回ビルドはどうせ遅いので別にいいし。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@rui314 リンカデーモン?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@anohana 初回起動したときに勝手にデーモンみたいに裏で動き続けるようになるとか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカをメモリに常駐させておけば勝手に速くなってくれるということはなくて、ファイルを読み込むときにやってよい処理と、本当にコマンドが起動されたときに行わないといけない処理の2つにうまくステージを分割して、後半が極力早く終わるように前半をうまくやるということが必要になってくる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じのデータ構造を考えつくかどうかで、こういう分割がうまくいくかどうかが決まるんだよね。実際、コードよりも、データをどう持つかというのがプログラミングで一番重要なところなんだよな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いまのところChromeをリンクするとき、実際のデータのコピーを始められるまでの処理に400ミリ秒くらいかかってる。もう一声縮めたいけど、100万個単位で存在するシンボルとかセクションとかを扱っているわりには悪くない数字。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカたるもの、入力から出力にデータコピーするところはどうやっても省きようがないので、 - 出力ファイルのレイアウトを極力早く決めてデータコピーをとにかくさっさと開始する - データをコピーしている間に、余っているコアで付加的なデータを構築する というのが肝になるかなと。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeの入力オブジェクトファイルを出力ファイルにコピーし終わるまでちょうど1秒くらいだ。実際にはまだやらないといけないことがあるけど、目標の2秒までまだ1秒もバジェットが余ってる。これは本当に2秒切れる可能性ある。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「新しいリンカの名前、modern linker、略してmoldにしようかな。理由はカビっぽくてなんとなく面白い名前だから。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldリンカのソースアップロードしておいた(まだ使い物になるとかそういうレベルじゃないけど)。日本人らしくいらすとやの画像を貼っといた。 https://t.co/V5MIFw4jJB」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「いろいろ実験して、どういう処理がどれくらいの時間を必要とするのか調べてみてるんだけど、Chromeのリンク、2秒どころか1.5秒も可能かもしれない。とりあえずそれを目標にしてみよ。」 / Twitter
Adam Van ProoyenさんはTwitterを使っています 「@rui314 lldだと?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@docileninja 12 seconds」 / Twitter
Rui UeyamaさんはTwitterを使っています 「My linker is now able to create an statically-linked executable that does nothing but runs an infinite loop.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Next I have to support common symbols, and I want to do that really quick. I mean I don't want to spend more than, say, 20 milliseconds for them in total even for a &gt;1GB executable.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「It looks like my new linker can fix the layout of an output file for Chromium in 300 milliseconds. Copying file contents takes 700 ms, and I guess applying relocations would take another 500 ms. So a linker that links Chromium in 1.5 seconds is possible?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「For comparison, lld takes 12 seconds, and GNU gold takes more than 50 seconds to link Chromium.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Constructing a string table was a tough one because it's simply huge (~600 MiB for Chromium), but I think I managed to create it with less than 300 milliseconds overhead.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「学期末までにまだ40日あるからChromeをリンクできる完成度まで高めるの可能かもしれないな。Chromeが2秒でリンクできたらさすがにA+くれるんじゃないか(というかそんなの授業で作るレベルのものかっていう)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか今作ってるリンカ、64コアマシンなのに16スレッドくらいで性能が伸びなくなっちゃうんだよな。小さなデータセットについてじっくり計算するタスクだともっとスケールするんだろうけど、大きなデータセットを素早く処理するみたいなやつだとメモリバスが厳しくてコアを全部使い切れないみたい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Ryzen 3990Xは癖が強すぎで、やっぱ3950Xがコスパ的にも最強マシンだったか。今なら5950Xだな。」 / Twitter
Inada NaokiさんはTwitterを使っています 「@rui314 L3キャッシュを共有するCCXあたりで8コア16スレッドなのが関係してるかもしれませんね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「マルチコア向けのプログラムを書くための高水準ライブラリとしてIntel TBBというのがあるんだけど、これの出来がとてもよい。とりあえず使っとけばいいという感じ。あと、こういうよくできたライブラリがあるからC++で書いててよかったなってなる。やっぱりC++はよい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こんなライブラリ作ってくれてるのにAMDのCPUで動かしていてすまんな・・って思うけど、でもこれとはそれと別で、なんで最近こんなダメダメなのっていう。Intelは数十年に渡って絶対王者的ポジションを占めていたのに。」 / Twitter

histric-2

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このレベルになると、OS固有機能を活用しての高速化したい感じ。 (書き込み後にもOSキャッシュ載せたい場合は(DirectI/O使えないので)、fallocate + mmap後に、msyncで最後に手動一括sync出来ると良いのかな…だがlinuxにはmmapの自動syncをpendingする仕組みが無いっぽい)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うわー、tmpfsだとめちゃくちゃ速いな。RAMディスクだから当たり前なのかもしれないけど。tmpfsに出力するようにしたらChromeのリンク1秒切るのももしかしたら余裕なのかもしれない。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@rui314 でもそれ、最終的に何処かへ copy する必要があるのでは…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@objectxplosive ビルドディレクトリ全体をtmpfsに置くというのはわりと普通に行われているので。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@rui314 source まるごと置くのが一番速そうだけど、何か不幸な事があると消えるスよね😅。out-of-source-tree build で artifacts だけ tmpfs 送りスか?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@objectxplosive リンカなのでソースは置かなくていいです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Wow, copying file contents is extremely fast on tmpfs. We might be able to link chromium in less than a second on tmpfs if these numbers are true.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そろそろHello worldくらいは動くようにしないといけないな。今のところは壊れた実行ファイルを誰よりも素早く作成できるリンカになってしまっている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Hello worldを動かすために、まずシンボルテーブルを出力できるようにしてから、_startからディスアセンブリをたどっていく作業してる。何かをゼロから作るとHello world表示するまでが遠いんだぜ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうの普通はよく知らない仕組みにぶち当たって学びながら作っていくので、ときには途中でデザインを基本から変えないといけなかったりすることがあるけど、僕は一応2回めだから根本的に間違ってるところはない、はず。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか.gotを作るようにしたら_startから__libc_start_mainまでたどりつけるようになった。けどまだmainにたどりつく前にクラッシュしてる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Improved my new linker to emit a symbol table for debugging and then investigating why a "hello world" crashes before main(). If you create something from scratch, "hello world" isn't the first step but is actually an achievement.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I don't know why, but this kind of mysterious low-level errors can almost always be fixed in a few days. The most difficult part is to set my mind to dive into disassembly and hexdump. I guess I've spent far more time for procrastinating than for debugging.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeのリンク、2秒じゃなくて1秒目指そうぜという気分になってきた。cpがちょうど1秒くらいだから、cpと同じ速さというとインパクトがでかい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「出力ファイルをcpするのと同じくらい速いリンカなんて原理的に不可能そうだけど、①そもそもcpがファイルコピーコマンドとしてあまり速くない、②ファイルの内容をコピーしてる間に別のコアで時間のかかる計算をする余地がある、というので、絶対無理というわけでは多分ない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「_startの直後に呼ばれる__libc_start_mainの中でクラッシュする問題は直したけど、まだmain()より前のどっかで落ちてる。正直こういうバグ直すのめんどくさい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「"Hello world"が静的リンクできる程度のリンカを書くの、プログラムが低レベルでどう動くのかを理解しないといけないのでめっちゃ勉強になるな。一回書いたでしょという話はあるけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか芋づる式にいろんな機能を実装する必要があって終わりが見えない。Hello world難しすぎワロタってなってる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おおお、数日間のデバッグの末ついに自作リンカでhello worldがスタティックリンクできた! main()より前に実行されるコードの実行を逆アセンブリでひたすら追ったりして、なかなか大変だったぜ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「やはりこういうプログラムを作るときに一番必要なのは、くじけない心。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Hey, so I managed to fix critical bugs so that my new linker is now able to statically-link a "hello world" program against glibc.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今クオーターの終わりまでにChromeがリンクできるようになるわけ?という質問には、善処しますとしか言えなかったわ。Hello worldやっとできたところからChromeを出力できるまで1ヶ月で足りるか・・?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Bumped up my (already ridiculously ambitious) goal from 2 seconds to 1 second to link chromium. I *believe* that's not entirely impossible. https://t.co/V5MIFw4jJB」 / Twitter

histric-3

Rui UeyamaさんはTwitterを使っています 「自作リンカでビルドしたhello world、./helloだとメッセージがでるのに./hello | catだと出なくなるというバグがあった。単に一つリンカの機能が欠けてただけだったけど、こんなバグどうやって直すんだ(直したけど)。」 / Twitter
gitster@ Git v2.30 12月28日発売 予約受付中(うそよ)さんはTwitterを使っています 「@rui314 こんなバグどうやって発現するんだ?という方が気になりますね。実行時にwrite(2)の行き先がttyかパイプかによって挙動を変えるなんて、狙ってもリンカレベルでどうやるんだろ?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 デフォルトだとstdoutは行バッファリングですけど、isattyがfalseだとフルバッファリングになるので、そのときにはexitするときにバッファをフラッシュするんですよね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 フラッシュする関数のリストは__libc_atexitというセクションに入っているんですが、リンカが定義するべき__start___libc_atexitと__stop___libc_atexitというシンボルを定義しわすれていた。その結果exitのタイミングでstdioの後始末をする関数が全然呼ばれていなかったという。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ここ1ヶ月くらい土日もなく起きてる時間コードばっかり書いてる気がする。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現段階で2500行くらいか。僕の野生の勘ではトータル6000行くらい書けばとりあえずChromeをリンクして動かせるんじゃないかと思うんだけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「コードも凝ったところがなくてかなりわかりやすく書けてると思うし(こういうあまり誰もよく知らない低レイヤだと「何をする必要があるのか」というのを知るほうが大変なんだけど)、速度も出るし、いまのところ結構よい感じ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「僕は自由研究の工作としてのプログラミングが好きなだけなので、あんまり競技プログラミングとかにはやる気がわかないのであった。食わず嫌いもよくないからやろうと思ったことはあったけど、結局やらずじまい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最近は競技プログラミングの人気が上がっているので、ある程度以上できるプログラマだとそういうのやってると思われることもあるけど、別にそんなことはないです。というか一般にはそういう話をあまり見聞きしない。趣味でやってていい成績だしている人はすごいなぁとは思うけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカを作っているとどんなバグがでてくるのかをまとめてみた。これからも更新予定。https://t.co/SuxohXLQTO」 / Twitter
mold/BUGS.md at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「I decided to keep a note about interesting linker bugs before I forget. I'll update this doc as I meet a new one. https://t.co/SuxohXLQTO」 / Twitter
Rui UeyamaさんはTwitterを使っています 「When working on the binary level, a very subtle bug can cause a program crash with a very little trace of what was wrong. I still don't know how to efficiently debug this kind of issues, but it looks like patience is most important...」 / Twitter
Rui UeyamaさんはTwitterを使っています 「んー、やっぱり10ミリ秒単位の最適化を考えたりするのは、コンピュータをうまく使っている感じがして楽しいな。1000ミリ秒でchromeをリンクするという目標があると張り合いがあってよい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「速度を知りたいだけだから、やっつけなプロトタイプ作ったら、変種パターンでの確認も必要となり、速度実験用プロトタイプこそ最初から拡張性考えて作っとけ、みたいな羽目になることある(笑)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「高速化できそうなアイデアがあったので実装してみたけど速くならなかったのでボツ。こういうの、いろいろアイデアがあっても結局最後は実装して試してみるしかないので、プログラムを高速化するためには自分のプログラミングも速いほうがずっと有利っていう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一般的には、最初から拡張性を仕込むのは悪手なこと多い。 思考実験的に、こういう拡張はここを変えればいける、という見通しだけくらいで良い。 YAGNI https://t.co/KqTrhwJLM6」 / Twitter
YAGNI と premature complication #4
Rui UeyamaさんはTwitterを使っています 「Chromeを1秒でリンクするのはどうやっても無理かも。データをコピーするだけで0.75秒くらいかかるから、まともな処理をするには残りの時間が少なすぎる。1.5秒でリンクするのなら現実味あるかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「データをmemcpyでコピーするところは数コアでサチるので、根本的にメモリバスがボトルネックで、速度を上げようがない(多分)。」 / Twitter

histric-4

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても仮想ページの初期化コストって、0初期化よりも、割り込み→物理ページ割り付け、にコストが掛かっている感じある。 …だとすると large page明示指定できるなら高速化可能?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 手元のWindowsだと(i5-8600K)、memcpy自体より仮想メモリのページ初期化コストが大きいですね。 1GB領域のmemset/memcpy速度実験。 VirtualAlloc(≒mmap(anon)) .. ほぼノーコスト 1st memset ... 2.5GB/s(4KBページの先頭のみ初期化だと3.3GB/s) 2nd memset ... 21GB/s 2nd memcpy ... 10.6GB/s」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu mmapしたタイミングでページテーブルも埋めるMAP_POPULATEというフラグがあるんですが、それをつけても速くならなかったんですよねぇ・・。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 同じmmap領域に、memcpyのセットを2回以上行っても、速度は大して速くならない感じでしょうか?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの large page は使い辛そう。 https://t.co/cEh2whGBfX」 / Twitter
やねうら王、Large Page対応で10数%速くなった件 | やねうら王 公式サイト
SODA NoriyukiさんはTwitterを使っています 「@shirouzu メモリが十分余っているなら、連続する仮想アドレスに対するアクセスを検知して後続する有効な仮想アドレスを事前に割り当てるサイズを適応的に拡大していけば、page fault handler の呼び出し回数と page table の書き換え回数の両方をだいぶ減らせそうな気がします。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu やねうら王の場合、ページ自体は既に割りつけられていてアクティブに使われている状況下での高速化でしょうから、TLB miss低減の方の効果でしょうね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda 検知+適応的に、というのはOS側がそんな挙動をすれば…という意味でしょうか?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu その意味でした。 カーネルの改造が必要なのでWindowsの場合、Microsoftでないとできないっすね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「とりあえずChromeは大きすぎだから、gitを自作リンカでリンクして動かすというのを目指すのがよさそう。自作Cコンパイラでgitをコンパイルして動かすのよりずっと簡単な目標でしょ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VirtualAlloc(MEM_LARGE_PAGES) の結果。 やはり物理ページ割り付け・初期化コストが物凄く減った。 (なおVirtualAlloc自体の時間は僅かに掛かる…遅いと125GB/s、速い場合は計測不能) 1st memset ... 21.2GB/s 2nd memset ... 31.7GB/s 2nd memcpy ... 10.6GB/s https://t.co/xPUE5uqvS5」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu 入力ファイルをMAP_POPULATEつきでmmapして効果ないなぁと思っていたんですが、出力ファイルをMAP_POPULATEつきでmmapすると顕著に効果ありました。その代わりmmapが非常に遅くなりますが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 mmap(anon) + write1回の方が速かったりしませんかね。 (direct I/O write 1回(必要あれば追加truncate)が一番速そうですが、リンカだと通常writeでキャッシュに載せた方が後々嬉しいのでしたっけ)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 あと、Win32だと large page で初期ページ割り付けコストがかなり減るみたいですね…mmap(MAP_HUGETLB)で意味があるかはわかりませんが。 https://t.co/BOaM1tVLDu」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ただし 2nd memcpy が 15.8GB/s 出ないのがやや謎…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この結果を見ると、もう少しWin32でもlarge pageの利用ハードル(gpeditでユーザ許可必要、原則要admin)を下げて欲しいところ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ついにいい方法を見つけた気がする。出力先のファイルがすでに存在する場合、新たなファイルを作るかわりに、既存ファイルをそのままmmapして内容を上書きしてしまえばいいんだ。遅いのはページフォールトではなく、ファイルシステムが新たなブロックをファイルに割り当てるところだった(多分)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「これでファイルの書き込みにかかる時間が750msから500msになって、1秒切りのゴールにぐっと近づいた感がある。まあデメリットとしては、中途半端なところでリンカが殺されると食われた状態の出力ファイルが残るというのがあるけど、これは速度のために許してもらおう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux kernel を漁る時に、関数ポインタテーブルになってる部分が追いづらい… fop-&gt;write() みたいなコードになっている時、代入されうるxxx_write がリスト選択して追えるサイトって無いのかしらん?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 昔のSolarisのコードだと write(2) の entry部分で rw_lock(inode, writer_mode) みたいなコードでシリアライズ強制でしたが、今時のwrite(2)でも同一fdでは並列動作しないという感じですかね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu MAP_ANONでmmapした領域にmadviseをするとtransparent huge pagesを有効にできたりするんですが、そういうのを試しても速くなりませんでしたね。最後のwriteが遅すぎて(O_DIRECT使って、かつ複数のスレッドから呼んでも)。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…通常の方式だと、物理デバイスへのmsync/fsyncは待たずに終了なのでしたっけ。 (だとしたら、O_DIRECTは遅くなる方向にしか効かないですね) あと、O_DIRECT + 複数スレッドというのは、write(2)を複数回実行ということでしょうか…?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu そうです。writeに2GBのバッファへのポインタを渡してもカーネル内でシングルスレッドでデータコピーしているぽいので、バッファを複数のブロックにわけて複数のスレッドからpwriteしてみました。」 / Twitter

histric-5

Brian GesiakさんはTwitterを使っています 「@rui314 I'm not an expert by any means, but would it be possible to install a signal handler to delete the file if mold is halfway through updating it? Or is the overhead of adding a signal handler not worth it?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache The usual technique to create an output file is to create it with a temporary name and then rename it an output filename. Since renaming is atomic on filesystem, it is either you'll have the original file with the original name or the new file will replace the original one.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache But if you overwrite an existing file, you can't undo it easily. If you keep the original file contents somewhere, you may be able to write it back, but that incurs the cost of copying file contents at the beginning.」 / Twitter
Brian GesiakさんはTwitterを使っています 「@rui314 Oh yeah, totally. I thought a concern would be having a file remain there, but with broken content. If mold is interrupted, I thought it'd be nice to delete the half-overwritten file, since it almost certainly shouldn't be used.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache Ah, sure, good point. Deleting a broken file is probably better than leaving it as-is.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「一回作ったことがあるリンカをもう一回作るというよく知ってるテーマでここ一ヶ月ほど暇を惜しんでコードを書いてて、自分一人でやっているし、条件としては最もよいはずなんだけど、月産2700行しか書いてない。プログラマの生産性なんてこんなものです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「簡単なプログラムがリンクできるようになったので、リンカのソースをいじっていろいろ整理してる。動くようにする(なにをするべきかを学ぶ)のと、その過程で学んだことを元にコードを整理するというのは、やっぱり小さいステップで交互にやるのがよさそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうのは多分ある程度は経験が必要で、経験が浅いと不必要に汎用的(と自分は思っているけど本当は単にややこしいだけ)なコードを書きがち。多くの場合、とりあえず動くやつを書いて、あとから必要に応じて整理したり書き直したりするほうがいいと思う。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「あとこういうのは、コードを大切にしすぎないのが多分重要で、リファクタリングしたつもりで書き直したけどやっぱり後で元の方法に戻した、とかもいいと思うんだよね。そういう試行錯誤をするためにはコーディングとかタイピングが速いほうが有利なので、量が質に転化するみたいなところはある。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldもいい感じに開発が進んでて、8コアくらいの中堅PCでもChromeみたいな巨大なプログラムを1秒以内でリンクできるようになる可能性ある。しかしこの目標達成できたら、ビルドのリンクのステップが遅いという何十年もプログラマを悩ませてきた問題が、ついに完全かつ最終的に解決されてしまうのでは?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「とりあえず自作リンカでgitをリンクできるようにしようとしてる。なんかすごく似たことをつい数ヶ月前にもやってたような・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんかリンカばかり作ってるけどこれは偶然の成り行きで、最初にlldを作ったときは、コンパイラとリンカを作らないといけないけどどっちがいい? とマネージャに聞かれたので、コンパイラはむずそうだけどリンカは気合いで作れそうだなと思ってリンカにしますと言ったからそうなっただけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「言語処理系好きなひとはコンパイラをやりたがるからリンカを選ぶ人は珍しいなと言われたんだけど、そもそもそれまで僕はJavaとJavaScriptでWebフロントエンド書くみたいなことをやっていたので、まいっかという感じであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今また別のmoldというリンカを作っているのは、学校での研究としていい感じに動くコンパイラを作ろうと思ってたんだけど、学期が始まった後に「作ってみました」だけじゃどうかなぁ・・と教授に言われたので、しょうがなく超速いリンカを作るというプロジェクトに切り替えただけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じに動く面白いものを作りたいとは思うけど、具体的なテーマそのものにはあんまりこだわりないかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「マネージャにはWindows向けのちゃんと動くリンカを作ってよと言われただけだったんだけど、すごく速いやつを作ったらこれをUnixに移植して使いたいという人たちが出てきて、僕もそれに取り組んでた。なので高速Unixリンカを書くというのは完全に脱線状態なだけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今週の教授との定例ミーティング終わり。なんでmoldが速いくてどこらへんに新規性があるのかをプレゼンを用意して説明したら喜んでもらえたぽい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おお? 自作リンカでリンクしたgitが動いた! なんかコマンドが終了するタイミングで必ずクラッシュするけど・・。」 / Twitter
dancerj 🗾さんはTwitterを使っています 「@rui314 .finiセクションかなんだったかデストラクターのセクションだったかが順番間違ってるとかありがち・・・」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@dancerj 普通にありえる」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今日のプレゼン資料の1枚目には、「catコマンドより速いリンカを作ってビルドのリンクが遅いという問題を最終的かつ完全に解決する」とババーンと書いておきました。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git --helpが最後に落ちるのは、stdoutがあらぬところを指しているからだった。コピーリロケーションを実装したら動くようになった。stdoutがデタラメな値なのに途中まで動くっていうのもすごいけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「次はenvironがあらぬところを指しているらしい。オールスターだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「environ変数が見えない問題は直した。なんかコピーリロケーションの微妙な問題だったんだけど、こんな世界でも100人くらいしか実際の仕様を知らなさそうな微妙な動作(文章化されてない)にあらゆるLinux実行ファイルが依存してていいんだろうか? 低レイヤだとありがちな状態だけど・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや、なんか違うかも。仕事ももちろんフルタイムで取り組んでいたし、OKRとかで期末までに成果を上げてほしいという仕組みがあったし、いい仕事をするインセンティブもあったと思うけど、今ほどのやる気はなかったような・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「A+が欲しいから選んでみたテーマだけど、最速リンカを作るというのはいいテーマだったかも。というかフルタイムで取り組める時間と、学期末までに成果を出したいという気持ちの両方があれば、いろんなテーマでそこそこ面白いものが作れるんだろうけど、学校というのはそういう意味で悪くないのかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんとなくあと数日デバグを頑張ったらgitが動くようになりそうという気がする。moldでgitがリンクできるようになったら、chibiccとmoldでgitをビルドしてみて自作ツールチェインの完成度の高まりを感じてみたい。」 / Twitter

Rui UeyamaさんはTwitterを使っています 「よっしゃ。chibiccでコンパイルしてmoldでリンクしたgitのバイナリで自作ツールチェインのリポジトリをgithubにpushするのに成功した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現在3677行。そんなに欠けてる機能があるとは思えないから、多分4000行でChromeをリンクできるリンカを書ける。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git range-diffの表示するdiffが少しだけ違うという問題をデバグしてる。リンカのエラーでこんな微妙な問題、どうやったら生じるんだろ?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「これはlibcにregexecという同名の関数が複数含まれていて、想定してるのと違う古いバージョンのを偶然使ってしまっているからぽい。つまりシンボルバージョニングに対応しないといけないぽい。バージョニングには対応しなくても動くと思っていたけど、想定甘すぎた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldでリンクしたgit、テスト完走した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git linked with mold (my new linker) can now pass all its tests.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「学期末まであと1週間半で、目標のchromeはまだ動かすには至ってないけど、gitが動くところまで来てるんだし、現時点でもA+もらえるんじゃないかなぁ。lldの10倍速いリンカを作ってみるなんて、学生の一学期分の研究成果としては正直やりすぎなくらいだろうし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldでmold自身をリンクして全部普通にテストが通った。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今週のウィークリーミーティング終わり。USENIX ATCに出すかーみたいな話をしたけど、それなら論文提出締め切り1月15日なんだよね。忙しくなりそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おお?? 新作の自作リンカことmoldでリンクしたChromiumが、あっさりと普通に起動してしまった。ここまで2ヶ月しかかかってないぞ。 https://t.co/Vj9iHq7Kdh」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ いまのところ5秒弱かな。これでもlldより倍以上速いけど、ファイル読み込みんだ後のイメージをデーモンにしてメモリに常駐させることで1秒切るところまで縮めるつもり。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ 実際ファイル読み込みのところとかを除くと0.8秒くらいしかかかっていないので、1秒切りは普通に可能な目標という感じ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Looks like Chromium linked with mold (my new linker) started working just fine. I've spent only two months so far for this project, though. https://t.co/WOEAJPtReg」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカを書くのは実はそんなには難しくなくて、moldも4000行しかない。ただ、ドキュメント化されていない隠れた仕様が多い上に、それを正しく実装してないとわけのわからないエラーで落ちる実行ファイルができてしまうパターンが多いというのがつらい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「教授との最終のミーティングが終わった。なんかポリシーとして(?)A+はないけどAだし、PhDいくならいい推薦状書くよと言っていたけど、A+ないんか〜 最初から言ってくれ〜。」 / Twitter

Rui Ueyamaさんのツイート: "今日説明していて思ったけど、lldは僕の考え方を反映した、普通にはよくないとされているけど僕は良いと思っている手法が導入されているんだなと思った。 - メモリはプログラムの終了時まで解放しない - コード重複はしてもいいのでプラットフォーム共通になるように抽象化しない"
Rui Ueyamaさんのツイート: "lldにおいては成功した取り組みだったと思うけど、いずれにせよソフトウェアエンジニアリングというのは実践的なもので、「正解」があるものではないので、非伝統的や非正統的であっても、単に自分がよいと思うものがあったら追求していってほしい。例えばオブジェクト指向とか別にどうでもいいし。"
Rui Ueyamaさんのツイート: "「メモリを途中で解放してもたかが知れてるから最後まで解放しないほうが単純」とか「抽象化せず多少重複したコードを書くほうが簡単」とか主張するのは勇気がいります。XX原則に従ってないとか必ず言われるからね。でも多分そんなに難しく考える必要ないと思う。簡単に書くのが一番重要。"
Rui Ueyamaさんのツイート: "リンカをより速くするプロポーザル書いた。 https://t.co/tsCOkSOXvO"
[llvm-dev] [RFC] lld: mostly-concurrent symbol resolution
Rui UeyamaさんはTwitterを使っています: 「goldはタスクを小さいジョブに分けて、依存関係を管理しつつ、実行できるジョブを並列にどんどん実行していくみたいな凝った作りになってるのに、単純な並列forループしか使ってないlldのほうがスケールするのは面白い。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldはGNUリンカとの完全互換を目指していたので、あんまり重要ではない、ただ伝統的にそうなっているという動作を同じように実装する必要があって、最適化には限界があった。もっとシンプルな作りで、スピードを第一目標にしたリンカを作ってみたいとは思ってた。ニーズも大いにあるし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldを使っても大規模プロジェクトだとリンクは遅くて、プログラマの生産性を明らかに下げてる。しかし既存リンカとのコマンドライン互換を諦めたらあと10倍くらい速いやつが作れそうな気も?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「小規模プロジェクトだとそもそもリンカに対してニーズが特にないのでコマンドライン互換でそのまま使えればいいという感じだけど、大規模プロジェクトだとビルドファイルに変更を加えてもいいからとにかく速くリンクしたいというニーズがあって、後者にフォーカスすればlldを置き換えれるかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「オブジェクトファイルをcatして1つのファイルにまとめるのと同じくらい速いリンカというのを作りたいんだよな。あながち無理でもなさそうというか、catって複数のファイルをまとめるコマンドとしてはあんまり速くないし。」 / Twitter
Junio C HamanoさんはTwitterを使っています 「@rui314 出来上がりのバイナリが実行開始するまでのレイテンシーを犠牲にしてよいのなら、ホントにcat程度にしておいて、起動後、実行時に、通常ならリンカがするはずの大方の処理を行なう、みたいなズルはできそうだけど、そういうのを狙ってるわけじゃないよね😜?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 今までのリンカが並列にやってこなかったことを並列にやるみたいな感じのことを考えてます。コマンドを起動したらまっさきにファイルをコピーし始めるくらいの勢いで動くものを。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「1.9 GBのchromeの実行ファイルをリンクするのにlldで12秒かかる。これを2秒とかでできるリンカが作れないかなと考えてる。理想を言えば1秒にしたいけど(1.9 GBのファイルをcpすると1秒かかるので)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「goldリンカだと54秒かかるので、lld作った時点ですでに相当速くしちゃってるんだよな(自分でハードルを上げていくスタイル)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンクの遅さに対する対策として、プログラムを複数の.soに分割したりインクリメンタルなリンクを実装するというアイデアがよくでてくるけど、なんかいろいろ複雑になっちゃうから、そういうのは根本的にはあんまり筋がよくない解決策だと思う。単にリンカをすごく速くするほうがいいはず。」 / Twitter
ASCII.jp:2021年のWindows 10の大型アップデート「21H1」はこうなる(予定) (2/2)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++のリンカだと、ファイルIOが主要ネックに見えるけど、すでに読み取り1回、書き込み1回的な状態になっているのかしらん?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu ファイルIOがない考えてるだけの時間が長過ぎるんですよね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…オンメモリ処理が1/5~10になるとしたら凄いですね。」 / Twitter
Lizan ZhouさんはTwitterを使っています 「ほしい…ASANでコードサイズが爆発的に増えても速くリンクできるようになるとうれしいな…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@lizan ASANでそんなにリンク遅くなるっけ?」 / Twitter
Lizan ZhouさんはTwitterを使っています 「@rui314 コードサイズが倍近くになるはず」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@lizan ああそうか確かに」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そういやAndroidもlldに移行すると言っていたけど、もうそろそろ完了してそう。ほかにもPlayStation、Switch、Chromeとかはlldを使っているはずだから、僕らが作ったリンカの出力が我が家でもいたるところにあるな。」 / Twitter

@fadis_

Fadisさんのツイート: "本日最後のセッション、 @rui314 さんの「 lld: 速くてシンプルなリンカ」が始まります #kernelvm"
Fadisさんのツイート: "lld: ELF、COFF、March-Oを喋る事ができるリンカ #kernelvm"
Fadisさんのツイート: "GPL3のbinutilsを使いたく無いBSDな人たちがシステム丸ごとlldでリンクできるようにしようと頑張っているらしい #kernelvm"
Fadisさんのツイート: "lldでWebAssemblyのリンクも行う事ができる!! #kernelvm"
Fadisさんのツイート: "lldの目標: GNUリンカよりシンプル シンプルなら簡単に理解でき、hackableにできる #kernelvm"
Fadisさんのツイート: "lldはGNU ldの為のリンカスクリプトをできるだけそのまま使えるようにしているが、当のGNU ldも従来のldとgoldでリンカスクリプトの解釈が違っていて厳密な互換はそもそも取れそうにない、と #kernelvm"
Fadisさんのツイート: "プログラムのサイズにもよるがlldはgoldより2倍から5倍速い #kernelvm"
Fadisさんのツイート: "「2ソケット20コア40スレッドのXeonでリンカのパフォーマンスを比較」 「パワフル過ぎでは」 #kernelvm"
Fadisさんのツイート: "新規に作ったリンカである為正確に何が速度の差の決め手になっているかは作者も分かっていないが、問題に対して素直なデータ構造で実装すれば速さはついてくる、というポリシーに基づいて開発している、と #kernelvm"
Fadisさんのツイート: "C++では名前のマングリングが行われる為シンボル名がとても長くなる傾向がある → これが並んだシンボルテーブルの参照は遅い → C++で速いリンカを作るためにはシンボルテーブルの参照を可能な限り減らす必要がある #kernelvm"
Fadisさんのツイート: "リンカをマルチスレッド化する際には出力が決定論的になる(スレッドがどう実行されたかによって順番が違っていても良い情報が入れ替わったりしない)ように注意して実装する必要がある、と #kernelvm"
Fadisさんのツイート: "リンカの実行時間のほとんどは入力ファイルを出力ファイルに置き直す時間と、大量の文字列のマージでと、シンボル名解決で、このうちマルチスレッド化が難しいシンボル名解決以外をマルチスレッド化する #kernelvm"
Fadisさんのツイート: "文字列のマージは従来1つのハッシュテーブルを使っていたが、複数のスレッドが挿入すると順序が決定論的にならない → スレッドごとにハッシュテーブルを作って、全てのハッシュテーブルに対して挿入したい値の存在のチェックをする #kernelvm"
Fadisさんのツイート: "lldとgoldのコードの複雑さをコードの長さで比較しようにも、goldがアーキテクチャ毎にコピペプログラミングをしていてコード量が爆発していてあまり良い指標にならない、と #kernelvm"
Fadisさんのツイート: "clangがきっかけとなってC++のエラーメッセージは随分読みやすくなった → リンカのエラーメッセージも読みやすくしよう、ということでlldはDWARFの情報を呼んで人間に優しいエラーメッセージを出している #kernelvm"
Fadisさんのツイート: "いかに短いC++のコードから膨大なエラーを出すかを競うコンテスト https://t.co/6EbOnBTHaY #kernelvm"
Fadisさんのツイート: "lldにおけるLTOでは、lld自体に複雑な最適化は実装せず、リンクが完了したネイティブバイナリの代わりにLLVM IRを吐き出し、LLVMの最適化機能に最適化を丸投げする #kernelvm"
Fadisさんのツイート: "lldの実装綺麗だなぁ"
Fadisさんのツイート: "lldはホスト依存の暗黙のパラメータを持たない(リンカを呼ぶコンパイラはどうせ必要な情報を全て渡してくるのでリンカ自体はどこで動かしても同じ動きをするように実装する) #kernelvm"
Fadisさんのツイート: "質問者「BSDがGPL3を避けてlldを試みているということはMacもそうなのか」 → 「MacはMach-Oを吐くために独自のリンカを使っているためlldを必要とはしていない」 #kernelvm"
Fadisさんのツイート: "make -jしたビルドが最後のリンクで詰まってマルチコアで性能が伸び悩むの、極めて手軽にアムダール則を体感するヤツだ"
Fadisさんのツイート: "C++、シンボル名が超長いから「シンボルを解決するための文字列比較にやたら時間がかかる」事を想定していないリンカでリンクすると、リンク時間もエグくなりがち"
FadisさんはTwitterを使っています 「linuxカーネルは攻撃者が狙った関数に飛びにくいように関数にASLRが出来るが、カーネルの.textは1つしかないためセクション単位で位置が変わってもアドレスがバレやすい。そこで関数毎にセクションを分けてカーネルのASLRの効果を高めようという提案がなされているらしい https://t.co/RYaxOpE4T8」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "#ifdef 等によって、機能差を持つバリエーションを作るのではなく、ビルド後のバイナリ内にパッチを当てることで、バリエーションを作るテスト。 (一部ユーザ向けに、slack転送を無効化したIPMsgを用意する)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "有効化するかの条件分岐にnopを入れるという話ではなくて、volatile int64 flag=シグネチャ値; if (flag) というコードを書いた後、バイナリからシグネチャ値を見つけて0にする、という感じ。 (万一偶数のバッティング時はシグネチャ値を変更)"
鯉江さんのツイート: "config.cのようなものにflagをあつめてリンク時につけかえるのではだめ? volatileとなっているところをみるとオプティマイザが頑張ってif(flag)を消してしまう可能性がある?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "volatileを入れているのは、最適化オプションで「プログラム全体の最適化」「リンク時にコード生成」という機能があって、それらを有効にしているとプログラムを1ソースで書いたのに近い最適化が施されるはずなので、その対策です。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、flagはグローバル変数として定義して、複数ソースから参照しています。 (その前提を書いていないと前説明が意味不明だったかも)… "
The SQLite Amalgamation
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、sqliteは、ビルド用にソース群を一つの.cに変換して、強力な最適化を促すという「Amalgamation」というテクニックを使っていて驚いた記憶。 https://t.co/kg6HB6pz3n… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ごく一部で欲しい組織があるかもしれないので、Slack等への外部転送無効化バージョンを追加しておいた。 https://t.co/wDjue1IdtK"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、ベース版バイナリにパッチを当てる形で作成。 そのため、pdbやcodファイルは、ベース版のみ保持すればよい形に。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「昔は動的リンクで.soを交換すればlibのバグは修正可能。しかし現在はsymbolがversioningされ特定のlibのバイナリに依存」 昔は、DLLがupdateされて既存アプリが動かなくなる=DLL地獄、と言われていた。上記対応(WinだとSxS)で、DLL地獄が解消されたが、同時にDLL更新メリットも消滅した形。… https://t.co/SCKOMkizWI"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、SxS導入以降は IPMsg/FastCopyは共に静的リンクでリリースしていたりする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsg/FastCopyは、GUI関係のライブラリ(MFCやQtなど)って、使ってないんですよね。(GDI APIを直接呼んでいます) 静的リンクしているのはC/C++の標準ラインタイムだけですね。… "
SODA Noriyukiさんのツイート: "なるほど、それなら納得です。 Plan 9の場合は gdi32.dll とか user32.dll 相当のものまで静的リンクしてしまい、異なるバイナリで共有して利用されるのはカーネル部分だけってことになるので、さらに大胆な話だと言えると思います。(まあ太古のUNIXはみんなそうだったんですが)… https://t.co/62NThqcbgv"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 ちなみにIPMsg/FastCopyが静的リンク化したのは、VistaのSxSが導入 + VS2005以降crt系バージョン確認が厳格になり、ビルド時と完全同一crtがユーザ環境にも必須になったため、というのが大きかったです。 (この制限はVS2010以降は緩和されましたが)… https://t.co/pG4I7EOB9g"
きしもとさんのツイート: "「バージョンを選択する方法」次第のように思うのですが。バージョン番号 x.y.z の、z については大は小を兼ねる、といったようにして、「特定のlibのバイナリに依存」はしないようにするのが普通とか… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにそうですね。 あと、WinSxSだと、Vista時代にWinUpdate程度のcrtのわずかなバージョン違いでもDLLロード拒否を食らった覚えがあるので、OSによる許容ポリシーの違いがあるかもしれません。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "正確に思い出すと、開発環境VistaをWinUpdateすると、利用者側VistaもWinUpdateしないと、DLL版が動作しなくなる、という話だったと思う。 (もしくは Update版の頒布用crtを別途インストールしてもらうか)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VC++ で .lib を指定した時に使っていない .o が取り込まれる不思議。 しかもリンク時最適化を有効にしているのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「通常の静的リンクだと、使っている関数を含む .o だけ取り込まれるはず。 さらにリンク時最適化有効だと、.oの中で利用関数と変数以外は削除、と理解しているのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「むむ、関数単位の依存関係は無かったが、.o単位だと隠れた依存関係があった。 プログラム全体最適化を有効にしている場合は、関数単位の依存関係で見て欲しかった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用メモ。 こういう参照関係のときにも、(呼ばれない)mod1_f2() とそれが参照している、mod2/mod3 がリンクされてしまう、という話。 mod1_f1 と mod1_f2 を別ファイルとし、mod1_static をどちらかに寄せて、もう片方は extern参照すれば解決(ただしmod間参照なのでstaticは外す必要) https://t.co/yIYhi6eIZR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「大昔、同じoだがaだかを二度指定するしか無かった時に、負けた感があった、、、」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@shirouzu あるある。ライブラリ間で循環参照的なのがあったりすると必要になるんですよねえ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「暗記するのは確かに無駄なんだけど、リンカーがどうやってライブラリに含まれるオブジェクトファイルを拾っていくかを想像すると、暗記するまでもなく(昔のヘボい計算機リソースで簡単にできる実装としては)当たり前の動作って感じになります。」 / Twitter
𝒯𝒶𝓉𝓈𝓊ℴ 𝒮ℯ𝓀𝒾𝓃ℯさんはTwitterを使っています: 「確かにちょっとはまった記憶があって、とりあえず 「CFLAGS と LDFLAGS はちゃんと分けて書かないと駄目」ぐらいに覚えてた。 また一つムダ知識が(でも多分、すぐ忘れるw)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「おお、gccのオプションって順番に意味があったのか・・・。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「gcc "CFLAGS" source "LDFLAGS" output みたいになっているようだ。-lcapをCFLAGSに入れたら無視された。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これはgccというよりはベル研時代からの cc ドライバや ld の仕様ですね。cc に渡した順番で (.c が .o に変換されて) 引数が ld に渡り、ld は引数を先頭から解釈していき、ライブラリの中からリンクするオブジェクトを選択するのは、そのライブラリ引数出現時点で、未解決のシンボルのみなので…」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat というわけでライブラリを先頭に書くと、その時点では未解決シンボルが存在しないので、そのライブラリ中のオブジェクトファイルは決して選択されないというハメに」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@n_soda これは酷い仕様ですね・・・。必要のない後方互換性は残すことないのに・・・。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これは UNIX のリンカーに特有ってわけじゃなくて、伝統的なリンカーはだいたいこういう動作だったと思います。CP/M の L80 とか、MS-DOS の link.exe もこうだったような。」 / Twitter
fjのYog教祖様さんはTwitterを使っています: 「@mhiramat @n_soda いや、そうしないと「未解決なシンボル」が無くなるのが「全部のライブラリをリンクした時」(不要なライブラリが無くなってしまう、と言う意味)になる。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@fjs_kyousosama @mhiramat 現代なら計算機が強力なので、未解決シンボルが残ってたら引数を再度頭から舐めるっていう動作にすることは可能は可能だと思います。 とはいえ超大規模プログラムだと、現代でもリンクにかかる時間が馬鹿にならないらしい(だからこそ @rui314 さんのリンカーが生まれた)ので、やっぱダメかも?」 / Twitter

@k_takata

K.Takataさんのツイート: "VCはずいぶん昔から、使っていない関数をリンク時に除外してファイルサイズを小さくする機能があるが、gccには無いのだろうかと思っていたら、あったようだ。 https://t.co/fYP9rIR2bn コンパイル時に -fdata-sections -ffunction-sections を指定し、リンク時に -Wl,--gc-sections を指定する。"
How to remove unused C/C++ symbols with GCC and ld? - Stack Overflow
K.Takataさんのツイート: "ただ、MinGWでは使えないという話もあって調べてみると、--gc-sectionsがPE形式で使えるようになったのはbinutils 2.25かららしい。 https://t.co/8Imo5XHSvm さらにコンパイル時に -fno-asynchronous-unwind-tables も指定する必要があるらしい。"
11539 – ld --gc-sections should work for PE-COFF on MinGW
K.Takataさんのツイート: "で、wxGoをビルドするのに -ffunction-sections を指定してサイズを小さくできないか試してみたところ、too many sections (70137) というエラーになってしまった。従来のCOFF形式オブジェクトファイルだとセクション数は16bitで管理しており、それを超えてしまったらしい。"
K.Takataさんのツイート: "コンパイル時に -Wa,-mbig-obj を指定すると、big-obj形式 https://t.co/5GwXmQGy2x が使われて、セクション数の制限が事実上無くなるらしいのだが、cgoがbig-obj形式をサポートしておらず、エラーになってしまった。 cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE object"

@kazuho

Kazuho Okuさんのツイート: "実際にコンパイルさせてみて成功したらオッケーっていうダックタイピング万歳なautoconfなんやから、リンカの引数も全部試してみたらええねん :-p"
Kazuho Okuさんのツイート: "コンパイラ間の競争が激しくなって __builtin_feature みたいなフィーチャーディテクション機能も導入されたし、リンカもはやくそうなってほしい感ある"
Kazuho Okuさんのツイート: "「シンボル名のハッシュ値計算するのめんどくさいからシンボル名全部sha1とかしときたい」www #spkai"
Kazuho Okuさんのツイート: "未使用の関数やグローバル変数はリンク時になかったことにできると思ってたけど、 ``` void (*foo)(void) = myfunc; ``` みたいなコードがある場合はmyfuncを落とすのが特に難しくなったりするのかなぁ(fooをmyfuncに初期化するためのコードが生成され、それがmyfuncを参照しちゃう的な)"

@liva_jy

Livaさんのツイート: "セクションの開始位置はアラインメントしよう、という知見を得た。 #liva_notebook"
Livaさんのツイート: "きちんとアラインされてない場合、リンク時に上手い具合にずらしてしまう事があって、下手なリンカスクリプトを書いていると、リンカが解決した関数のアドレスと、実際にロードされたアドレスがずれてしまう #liva_notebook"

hikaliumさんのツイート: "なるほど!LLVMで挙動を見てみたところ、翻訳時に既知でないラベル(後方のラベル参照等)は未解決のまま残されるのね。(つまり常にrel32として場所はとられる。) で、リンカがあとでそれを埋めてくれると。なんとまあ。 (まだまだ勉強が足りないというお気持ちになった。こういう発見が楽しい。)… https://t.co/u1OU8WNMCS"
Rockridgeさんのツイート: "Fx63:clang-clを用いたWindows版のビルドにおいてThinLTOとPGOが有効化。64bit版のSpeedometerスコアがMSVC比で6%アップした。参照:https://t.co/ipbr5LRbF0 … https://t.co/euttRNA8Ez"
10/27,28はOSC Tokyoさんのツイート: "僕のLDが壊れている.undefinedなシンボル(operator new)に対してエラーにならない.自分で宣言した関数の場合はエラーになるのに."
Nerry@さんのツイート: "gnu-efi使ってた時ldが未解決シンボルでエラーにならない挙動すごく困った… "
10/27,28はOSC Tokyoさんのツイート: "同じく悩んでる人がいるとは!… "
しんやさん@檸檬堂友の会さんはTwitterを使っています: 「C言語にてテスト時に便利な技術 これができればテストマスターだ! インターポジショニング →既存関数を自由に置き換える Weakシンボル →テスト時のみに関数をリンクさせたい時 objcopy →シンボルを置き換える、最強」 / Twitter
インターポジショニング - Google 検索
weakシンボル - Google 検索
DrumatoさんはTwitterを使っています 「もし読み込んだセクションのオフセット+サイズがセクションのオフセットになっていないとき, 間にパディングがあると考えてセクションヘッダを挿入する,みたいな実装で対応しようと思う」 / Twitter
DrumatoさんはTwitterを使っています 「gccの吐くバイナリ,どこのセクションにも所属していないパディングが沢山存在するのだけれど, これ普通にそういう意図のセクションを作って欲しい. これ凄い困るなあ,どうしよう.」 / Twitter

c - different type variables with same identifier linked together - Stack Overflow

API Call & Debugger

MS

Calling Internal APIs (Windows)
TEB structure (Windows)
TlsGetValue function (Windows)
CoGetContextToken function (COM)
IObjContext interface (COM)
IContext interface (COM)
PEB structure (Windows)
PEB_LDR_DATA structure (Windows)
RTL_USER_PROCESS_PARAMETERS structure (Windows)
NtQueryInformationProcess function (Windows)
ZwQueryInformationProcess function (Windows)
CheckRemoteDebuggerPresent function (Windows)
GetModuleHandleExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
LoadLibraryExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
GetProcAddress function (libloaderapi.h) - Win32 apps | Microsoft Docs
FreeLibrary function (libloaderapi.h) - Win32 apps | Microsoft Docs

Thread Environment Block

Win32 Thread Information Block - Wikipedia
svchost.exe - Wikipedia
TEB (winternl.h) - Win32 apps | Microsoft Docs
Thread Environment Block (Debugging Notes) - Win32 apps | Microsoft Docs
PEB / TEB の覚書 - Windows 2000 Blog
Win32デバッグ(12)・・・SEH(Structured Exception Handling): vanillaの日記
ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
WinDbg - マイクロソフト系技術情報 Wiki
デバッグメニュー デバッガ
Security Intelligence – Japan

Process Environment Block

PEB (winternl.h) - Win32 apps | Microsoft Docs
PEB_LDR_DATA (winternl.h) - Win32 apps | Microsoft Docs
RTL_USER_PROCESS_PARAMETERS (winternl.h) - Win32 apps | Microsoft Docs
Process Environment Block - Wikipedia
スライド 1
アンチアンチデバッギング #LT駆動
Microsoft PowerPoint - lecture20160524v03.pptx
9.Anti-Debug for Windows
デバッガ検出技術:PEB.BeingDebuggedFlag:IsDebuggerPresent() - Log.i53
Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
他プロセスのメモリを読む(C++編) - # riosu's memo

リバースエンジニアリング入門

シェルコードから始めるマルウェア解析 (1/2):リバースエンジニアリング入門(1) - @IT
コツ? 開発者の立場になって考えることさ! (1/2):リバースエンジニアリング入門(2) - @IT
シェルコード解析に必携の「5つ道具」 (1/3):リバースエンジニアリング入門(3) - @IT
Undocumentedなデータ構造体を知る (1/3):リバースエンジニアリング入門(4) - @IT
PEフォーマットを解釈せよ! (1/3):リバースエンジニアリング入門(5) - @IT

LIST_ENTRY の仕組みと利用方法 - Web/DB プログラミング徹底解説
Windows の内部動作 - Web/DB プログラミング徹底解説
Reflective DLL Injection | すなのかたまり
msmania/procjack at 1.0
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Windowsで電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
黒翼猫のコンピュータ日記 2nd Edition:2017年07月21日 - Windows 2000 Blog
CTF writeup 2|岸辺の旅
SHIROUZU Personal Log(2016-11-01)
GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
インサイドWindows 第7版 上 - PavelYosifovich, AlexIonescu, MarkE.Russinovich, DavidA.Solomon, 山内和朗 - Google ブックス

Debug

その他

インライン値ビュー - 公式ヘルプ | CLion
IBM Knowledge Center - マルチスレッド・プログラム・デバッガーの開発
LLVM Project、次世代デバッガ「LLDB」を開発へ | OSDN Magazine
c - reference to external function in disassembly code - Stack Overflow
デバッグ - Security Akademeia
USDT probe - Google 検索
プログラマーの大敵“デバッグ”、AIで自動化へ向けてIntelが研究中 〜Intel、開発部門での研究成果発表イベント「Intel Labs Day 2020」 - PC Watch

MS

その他

GFlags - Windows 10 hardware dev
ページヒープ (PageHeap) によるヒープオーバーランの検出 - Web/DB プログラミング徹底解説
PageHeap ユーザー ガイド
ダンプファイルに保存されたイベントログを取り出す – Japan WDK Support Blog
プロセスデバッガを作ってみる (1/2):CodeZine(コードジン)
スタックの取得(ネィテブデバッガを作る2) – code-lab.net
Win32デバッグ(11)・・・番外編: vanillaの日記
Windows Vista で local kernel debug を行う - NyaRuRuが地球にいたころ
Detecting debuggers by abusing a bad assumption within Windows
CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説
CRT ライブラリを使用したメモリのリークを検出 - Visual Studio | Microsoft Docs
Visual Studio 2017 15.9プレビューではC++デバッグ機能が拡張された
IDA Support: Freeware Version
OllyDbg Q&A (Digital Travesia)
Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
プログラムの実行内容を記録して再現する「タイムトラベルデバッグ」(Time Travel Debugging)機能、マイクロソフトがVisual Studioにプレビューで提供開始 - Publickey
Debug live ASP.NET Azure apps - Visual Studio | Microsoft Docs

backtrace

C++ Windowsでスタックバックトレース | puarts.com
windows - Win32 - Backtrace from C code - Stack Overflow

CodeView

yasm/modules/dbgfmts/codeview at master · yasm/yasm
get function by filename and line number - primitive: blog
5.4 COFFシンボル テーブル
6.1.2 デバッグ タイプ
6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
デバッガ
デバッガ:デバッグ情報

PDB

The PDB File Format

The PDB File Format — LLVM 6 documentation
Microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
The MSF File Format — LLVM 6 documentation
The PDB Info Stream (aka the PDB Stream) — LLVM 6 documentation
UuidCreate function (Windows)
IMAGE_DEBUG_DIRECTORY structure (Windows)
The PDB TPI Stream — LLVM 6 documentation
The PDB DBI (Debug Info) Stream — LLVM 6 documentation
CV_CPU_TYPE_e

== Microsoft PE/COFF Specification ==

Standard ECMA-335
The Module Information Stream — LLVM 6 documentation
The PDB Public Symbol Stream — LLVM 6 documentation
The PDB Global Symbol Stream — LLVM 6 documentation
The TPI & IPI Hash Streams — LLVM 6 documentation
CodeView Symbol Records — LLVM 6 documentation
CodeView Type Records — LLVM 6 documentation
CodeView.pdf

YAML

第1回 YAMLライブラリのしくみ:言語別 YAML用ライブラリ徹底解説|gihyo.jp … 技術評論社
YAMLとは何か? - いつもRailsの設定ファイルで出てくるやつの正体 - Qiita
YAML - Wikipedia
C++ から YAMLファイルを読み込む « Stop Making Sense
Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
Kazuho OkuさんはTwitterを使っています: "YAML でファイルincludeするなら、 <<: !include foo.yaml みたいな形が一番自然なのかな"
Kazuho OkuさんはTwitterを使っています: "“Includable YAML - r7kamura per second” https://t.co/LNy0XJ9flP"
RAML (software) - Wikipedia
h2o/yoml: YAML Object Model Layer - a DOM-like interface for YAML
YAML で静的データ管理
YAMLの概要 | backport
Java開発者のためのYAML入門:XMLやJSONとの違い (1/3):CodeZine(コードジン)
YAMLのエイリアスでAnsibleファイルの重複を減らす | Developers.IO
YAMLに対応したAWS CloudFormation デザイナーを試してみた | Developers.IO
PyYAMLが非常に遅かった - ゲームエンジニアな日々
じゅげむさんはTwitterを使っています: 「YAML1.2からはYAMLはJSONの完全なスーパーセットになったと んで1.1と1.2でfloatの正規表現が異なる‥ https://t.co/EOKlHJTI12」 / Twitter
quoting strings composed of digits · Issue #98 · yaml/pyyaml

DIA SDK

Debug Interface Access SDK
はじめに (Debug Interface Access SDK)
関数 (Debug Interface Access SDK)
Debug Interface Access SDKを使って内部関数の名前解決を行う - るくすの日記 ~ Out_Of_Range ~
[Win32] [COM] How to read PDB Symbol file using DIA SDK | すなのかたまり

llvm-pdbutil - PDB File forensics and diagnostics — LLVM 6 documentation
本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
LLVM Project Blog: LLVM on Windows now supports PDB Debug Info
LLVMがPDBフォーマットのドキュメント化とYAMLへの変換を実現
シンボル ファイルの作成と取得 | デバッグ テクニック
ペンギンさんのツイート: "PDBファイルを不要と言い張って作らないことを勧める人がいるとはたまげたなぁ・・・。 Visual StudioユーザーがReleaseビルドをするときに必ずやってほしい2つの設定 by @lainzero on @Qiita https://t.co/Nrm7wWVsOU"
ペンギンさんのツイート: "PDBファイルがない場合、万が一問題が起きた際に逆アセンブルしながらデバッグする羽目になるので、リリースビルドでも作成して手元には残しておくべき。作らない方向ではなく、PDBファイルに含まれる内容、そのリスクを踏まえてどう取り扱うべきなのかまとめてあると良さそう。"
ペンギンさんのツイート: "PDBファイルはビルド時に生成されるGUIDがEXEのDebug DirectoriesテーブルとPDBファイルに埋め込まれて一致しない場合VSやWinDbgで読めないので、後でビルドしなおせばよいというものでもないのが面倒。"
ペンギンさんのツイート: "リリースビルドでPDBは要らないという人は、作って捨てるアプリケーションしか開発したことがないと言ってるようなもの、というのは言い過ぎか・・・。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPプロセスにロードされた自作Win32DLL。 VC++でUWPプロセスへのアタッチはできるが、DLL用pdbが違うと言われてシンボルが取り込めない謎…何だろう?"
Understanding symbol files and Visual Studio’s symbol settings | Azure DevOps Blog

WinDbg

ライブデバッグ

ライブデバッグ - Security Akademeia
WinDBGを使ってnotepad.exeをデバッグする – PAYFORWARD
Windbg – Japan WDK Support Blog
wt : WinDbg のライブデバッグ時のトレースに使えるコマンド

Time Travel Debugging FAQ – Debugging Tools for Windows
User-mode memusage - NyaRuRuが地球にいたころ
Time Travel Debugging recording question – Debugging Tools for Windows
Text highlighting in WinDbg Preview – Debugging Tools for Windows
Time Travel Debugging queries – Debugging Tools for Windows
WinDBG. From A to Z!
WinDbg でスタックトレースを得るには | MDN
WinDbg Preview 1.1804.18003.0 Release Notes – Debugging Tools for Windows
ITプロ(非開発者)向けWindowsカーネルデバッグ事始め (1/2):山市良のうぃんどうず日記(125) - @IT
WinDbg Preview 1.1805.17002.0 Release Notes – Debugging Tools for Windows
TTD (Time Travel Debugging) を用いてアプリケーションクラッシュの原因を調査
WinDbg Preview 1.0.1807.11002 Release Notes – Debugging Tools for Windows
Time Travel Debugging (Preview) の Lab – Japan WDK Support Blog
WinDbg Preview 1.0.1810.2001 Release Notes – Debugging Tools for Windows
WinDbg Preview 1.0.1812.12001 and new extensibility interfaces – Debugging Tools for Windows
New C++ library for extending the debugger data model – Debugging Tools for Windows
Makoto Kato ︎︎さんのツイート: "ふとEdgeのgithubを覗いたら、WinDBGでv8をデバッグするためのWinDBG Extensionが存在してて笑った https://t.co/LUlVxfkHOt"
MicrosoftEdge/JsDbg: Debugging extensions for Microsoft Edge and other Chromium-based browsers
Makoto Kato ︎︎さんのツイート: "IE6やってるときにdumpファイルからHTMLツリーを生成するWinDBG拡張作ったりいろいろやったなぁ。辞める時に全部削除したけど (オレオレツールだったので)"
Best places to learn more about WinDbg – Debugging Tools for Windows

x64dbg

x64dbg
x64dbg/x64dbg: An open-source x64/x32 debugger for windows.
x64dbg
x64dbg.pdf
Reverse Engineering Tips: An Introduction To x64dbg
klks/checksec: x64dbg plugin to check security settings
X64dbg Code search :: Add-ons for Firefox
セキュリティエンジニア向けツール(Windows編) - Qiita
x64dbg:デバッガの例
オープンソースのデバッガー x64_dbg を用いて、ソースコードを編集することなく、アプリにパッチを適用

MASM

C++ デバッグ構成のプロジェクト設定
/Z7、/Zi、/ZI (デバッグ情報の形式)
/DEBUG (デバッグ情報の生成)

SYMBOL_INFO structure (Windows)
IMAGEHLP_SYMBOL64 structure (Windows)
ICallFrame interface (COM)
Kleckner-CodeViewInLLVM.pdf
MSVC compatibility — Clang 6 documentation
Windows support — lld 5 documentation
Windows support — lld 6 documentation
KMC Staff Blog:LLVM/Clang 3.7.1をMSYS2でビルド
New Extensions and Samples GitHub Repo – Debugging Tools for Windows

バイナリエディタ

binary.ninja : a reverse engineering platform
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
wxMEdit - クロスプラットフォームのテキスト/Hex エディタ
hltj/wxMEdit: wxMEdit, a cross-platform Text/Hex Editor, an improved version of MadEdit
Stirlingの詳細情報 : Vector ソフトを探す!
Veles - Binary Analysis Tool - CodiSec CodiSec
codilime/veles: Binary data analysis and visualization tool

DWARF

DWARF

DWARF 3.0 Standard
DWARF 4 Standard
DWARF 5 Standard
Download DWARF Standards
DWARF Git Repositories - dwarf-doc.git/summary
DWARF Extensions
DwarfExtensions - elfutils
yasm/modules/dbgfmts/dwarf2 at master · yasm/yasm
デバッグ用フォーマット、DWARF と STAB
DWARF - OSDev Wiki
LLVM: include/llvm/BinaryFormat/Dwarf.h Source File
DWARF debugging formatを利用する - Qiita
PE勉強会#3参加メモ - やる気のないはてだ(A boring diary)
PE勉強会ネタ帳 - 七誌の開発Wiki
objdump (GNU Binary Utilities)
objcopy (GNU Binary Utilities)

WebAssembly

WebAssembly向けのデバッガを開発しました - kateinoigakukunのブログ
DWARF for WebAssembly

GAS 疑似命令

CFI

Using as: CFI directives
CFI with Abbrevs - Dwarf Wiki
ImperialViolet - CFI directives in assembly files
CFI support for GNU assembler (GAS)
Andreas Krebbel - [PATCH] Add .cfi_val_offset GAS command.
assembly - GAS: Объяснение .cfi_def_cfa_offset - Qaru
[PATCH] Unwinding CFI for x86_64 signal frame (__restore_rt)
F/OSS study : [DWARF] Call Frame Information
⚙ D3049 [ARM] Use DWARF register numbers for CFI directives in ELF assembly
Anitha Boyapati - Testing Call frame information in .debug_frame section
Anitha Boyapati - Re: Testing Call frame information in .debug_frame section
CFI - Call Frame Information
[Resolved] CCS: Object file contains invalid call frame information at .debug_frame - Code Composer Forum - Code Composer Studio - TI E2E Community
CFI - Call Frame Information | AcronymFinder
How can I disable CFI directives on gas assembler output - Programming - Linux Tips
[llvm] r211272 - Emit DWARF3 call frame information when DWARF3+ debug info is requested
[llvm-dev] [cfe-dev] Call frame information query
Vineet Gupta - .debug_frame not generated by ARC gas
linux-2.6.33/CFI_ADJUST_CFA_OFFSET() - コグノスケ
Using as: Gnu Assembler(GAS) Directives CFI - godjesse - 博客园
Debugging with GDB: 21.3.13 CRIS
0xfee1dead

gccのアセンブル出力を解析する時は-gオプションが便利
定数を返すだけの関数のアセンブリコード – ゴミ箱
Using as
Loc_mark_labels - Using as
Loc - Using as
Section - Using as
CFI directives - Using as
.debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Byte - Using as
File - Using as
Global - Using as
Ident - Using as
Long - Using as
Size - Using as
Sleb128 - Using as
String - Using as
Text - Using as
Type - Using as
Uleb128 - Using as

Stack frame layout

GNU Compiler Collection (GCC) Internals: Frame Layout
Frame Layout - GNU Compiler Collection (GCC) Internals
Stack frame layout on x86-64 - Eli Bendersky's website
Stack layout

unwind

gcc _Unwind_Backtrace()の謎
LLVMと俺俺ランタイムで例外を実装する(その1) - yutopp's blog
Exception Frames
x86: undwarf unwinder [LWN.net]
Mark J. Wielaard » Blog Archive » Stack unwinding
libunwind LLVM Unwinder — libunwind 7.0 documentation
⚙ D38819 [libunwind] Add support for dwarf unwinding on windows on x86_64
⚙ D38900 libunwind: document tested FreeBSD configs and sort OS list

backtrace

[Linux][C/C++] backtrace取得方法まとめ - Qiita
c++ - gcc C ++アプリケーションがクラッシュしたときにスタックトレースを生成する方法crash | CODE Q&A [日本語]
C++で実行時エラーを追跡と特定します - Qiita
C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - アットウィキ
Google Japan Blog: C++ のプログラムのデバッグを楽にする方法
実行中でのコールスタックの取得と表示 - 千里霧中
普通のやつらの下を行け: C でバックトレース表示 - bkブログ

ELF

llvm-readobj - LLVM Object Reader — LLVM 6 documentation
melancholic afternoon
リンカーオプションの指定 - Oracle® Solaris 11.3 リンカーとライブラリガイド
特殊セクション - リンカーとライブラリ
Manpage of ELF
gcc
昔の最近の出来事(2016.02)
ヒープオーバーフローによるGOT overwriteをやってみる - ももいろテクノロジー

__user

Linux システム・コールを使用したカーネル・コマンド
copy_from_user - Linuxの備忘録とか・・・(目次へ)
sparse - 組み込み Linux 開発の手引き - アットウィキ
c - What are the implications of the linux __user macro? - Stack Overflow
__userってなんぞ? - syuu1228's blog
[ARM][Linux]copy_{from|to}_user() - Linux関係メモ@宇治屋電子
KMC Staff Blog:GCC の名前付きアドレス空間サポート
まさみさんは語りたいさんのツイート: "実は意外とData SegmentとCode SegmentとそれぞれのKernel/User Segmentがあるっていうことを知らない人が多いのでは。"
まさみさんは語りたいさんのツイート: "あと__user ってruntimeでは無意味なんだけど、これも知られていない気がする。実行時に渡されるアドレス情報には__userかどうかが無いので、実行時の値ではなく、コンテキストでしか判断できない。これはデバッグ情報の属性値にも付いていないはず。"
まさみさんは語りたいさんのツイート: "DWARF6とかで追加しないかなー。DW_AT_USER_DATAとか・・・。"
まさみさんは語りたいさんのツイート: "64bitの世の中ではsegmentなんて失われた技術だよねー、みたいに言ってはいけない。あるんだ、まだ。"
まさみさんは語りたいさんのツイート: "KERNEL_DS/USER_DSの話、x86-64でもarm/arm64でも問題にならなさそうなんだけど、そうするといつまでもバギーなコードが治らないっていうことか。"

普通のやつらの下を行け

普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す - bkブログ
普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む - bkブログ
普通のやつらの下を行け: BFDでデバッグ情報の取得 - bkブログ
普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ
普通のやつらの下を行け: assert_caller() - bkブログ

KMC Staff Blog

KMC Staff Blog:DWARF
KMC Staff Blog:DWARF 一年生
KMC Staff Blog:DWARF と有限状態機械
KMC Staff Blog:DWARF と有限状態機械 (2)
KMC Staff Blog:DWARF と有限状態機械 (3)
KMC Staff Blog:DWARF 3 の対応言語
KMC Staff Blog:GCC でコンパイルした時のオプションをバイナリファイルから取得する

DSAS開発者の部屋

DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ ftrace で引数を表示する
DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ デバッグ情報を得る

LLVM

LLVM Project Blog: LLDB is Coming to Windows
Source Level Debugging with LLVM — LLVM 6 documentation
Clang Compiler User’s Manual — Clang 6 documentation
llvm-dwarfdump - dump and verify DWARF debug information — LLVM 6 documentation
Clang command line argument reference — Clang 6 documentation

PDF

_pdf
cbc-gcc.pdf
Debugging using DWARF

Stack Overflow

c++ - What do the CFI directives mean? (and some more questions) - Stack Overflow
debugging - Is there a simple DWARF CFI represenation for functions that set up a conventional frame pointer? - Stack Overflow
assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
assembly - GAS: Explanation of .cfi_def_cfa_offset - Stack Overflow
stack - In assembly code, how .cfi directive works? - Stack Overflow
What is .cfi and .LFE in assembly code produced by GCC from c++ program? - Stack Overflow
assembly - Why GCC compiled C program needs .eh_frame section? - Stack Overflow
dwarf - Getting value of stack pointer while stack unwinding with dwarf2 - Stack Overflow
x86 64 - Breaking a stack/call frame information chain on ELF/Linux? - Stack Overflow

OSDN

DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
DWARFって何? - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造:CIE編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_arangesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_pubnames/.debug_pubtypesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN

Wikipedia

DWARF - Wikipedia
DWARF - Wikipedia

Qiita

デバッグ情報の歩き方 - Qiita
[gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
DWARF情報とpyelftoolsを使ってバックトレースする - Qiita
backtrace with gdb-python-pyelftools

Twitter

Urabe, Shyouheiさんのツイート: "コードの任意の領域に属性を横からつけるの、たぶん理論上はdwarfでできるといえばできると思うが、ちょっとdwarfに手を出す気にはなれないんだよな…"
shinichiro hamajiさんはTwitterを使っています: 「DWARFから型情報拾ってきてC/C++(ひょっとしたら他の言語も)の変数をダンプするというやつ、ちょっと話題になってひさびさに動かしてみたらいくつかバグがあったので修正しておいた: https://t.co/sKFz1f02mH」 / Twitter
shinh/dumper: A variable dumper for C/C++
shinichiro hamajiさんはTwitterを使っています: 「メインはどっちも関数ポインタ関係で、DWARF4で導入された新しいフォーマットをハンドルしてなくてエラーメッセージ出てたので、あとPIE対応されてなかったのと。今なら libdwarf とか使わないだろうなあ……というのが感想だった」 / Twitter
Chrome DevToolsさんはTwitterを使っています: 「Initial DWARF support has landed in Chrome DevTools! It means that you can resolve stack traces, set breakpoints and step-in/-over source code in C/C++/Rust natively, without generating source maps. https://t.co/s3IwkJV6Tr」 / Twitter
Chrome DevToolsさんはTwitterを使っています: 「Bear in mind that this should "just work" with native compilers, but on the tooling side DWARF support is still in progress. For example, Emscripten (Binaryen) and wasm-bindgen don't support updating DWARF after transformations, so they won't benefit from this integration yet.」 / Twitter
k0kubunさんはTwitterを使っています 「objdump --dwarf=decodedline の出力をパースするだけの簡単なスクリプトを書くつもりが、これは相対パスを出してくる (DW_AT_comp_dir を使った絶対パスへの変換をやってくれない) ので単体では役に立たないことに気付いてしまった」 / Twitter
成瀬さんはTwitterを使っています 「@k0kubun https://t.co/774KyiAKyg とかですかね」 / Twitter
k0kubunさんはTwitterを使っています 「@nalsh このスクリプトは多分、ビルドディレクトリで実行される (少なくとも IO.foreach('https://t.co/GJB4czCRee') が動かないといけないし、decodedlineから出る相対パスと #line がマッチしないといけない) ことを仮定することで僕が言及した問題を解決してる感じじゃないですかねえ」 / Twitter

elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
デバッグ情報を探る 〜.cfi_xx命令の動作〜 - ばびろん's すたっく
Split DWARFを用いてデバッグ時間やメモリを節約 - ホワイトペーパーから - ローグウェーブソフトウェアのブログ
第5章 デバッグ - Red Hat Customer Portal
GNUウイーク - gccのC++化 / gdb7.5 - .mjtの日記復帰計画
k0kubun/dwarftree: A wrapper of objdump --dwarf=info to visualize an object's structure and show code size

GDB

rr

Kazuho OkuさんはTwitterを使っています 「むしろ時代はgdbでrrとかじゃないのかしら https://t.co/pLLc8yPIP9 https://t.co/i6LiheKfln」 / Twitter
rr: lightweight recording & deterministic debugging
SODA NoriyukiさんはTwitterを使っています 「@kazuho 再現率が低い奴、本番環境で条件に合致した場合にsyslogとかに詳しいログを出すっていう意味でのprintfデバッグなので、gdb仕掛けておくのはちょっと怖くてできません…^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda あーすみません単にgdbでしか使えないナウい機能があるよという意味でした」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho いえいえ、record機能、はるか昔に新機能の紹介で見たもののずっと使わずじまいだったのでこれを機会に勉強します!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「トランスポートプロトコルスタック、バグ発現がタイミング依存だからデバッガで停止できないし、ステートリプレイでデバッグできるの神!!!! と思ってるけどまだ使ったことないんですよね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白そう…昔のjockeyの最新版みたいな感じなのかしらん? https://t.co/80TZrdYakK https://t.co/Q23w78K5JJ」 / Twitter
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
SODA NoriyukiさんはTwitterを使っています 「僕はgdbも使ってるけどprintfデバッグでさえも使う老害なので世の趨勢の参考にはならないだろうなあ (再現率が低い奴はデバッガよりもprintfデバッグの方が楽なの…) https://t.co/bJz8gmQIPV」 / Twitter
Shinji KonoさんはTwitterを使っています 「LLVMのdebug用Buildが35GBあったり、Linux kernelが-gだと動かなかったりするのって、ソフトウェア工学的な敗北だと思うのだが もう誰もgdbでdebugなんかしてない 疑惑。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ん?CONFIG_DEBUGINFO=yにしたらデバッグ情報は普通につくと思うのですが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@mhiramat 最適化切るとkernelは動作しなくて、最適化ありだと、-g付けても、ほとんどの変数は見えないんです。なのでレジスタ見てキャストで表示する感じ。一部だけ最適化を切るのもだめ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ああ、確かに最適化切ると動かないっていう報告は見た気がしますね…。コンパイラの問題のような気も。」 / Twitter

PEDA

longld/peda: PEDA - Python Exploit Development Assistance for GDB
Linux_Interactive_Exploit_Development_with_GDB_and_PEDA_Slides.pdf
CTFのための gdb/gdb-peda 頻出コマンドのメモ - teriyaki note
gdb-peda インストール for Ubuntu - miyagawNote
gdb-peda 使い方 コマンド一覧 - miyagawNote
ステップ1: Pwn とは|Tech Book Zone Manatee
PwnやReversingに使えそうなデバッガ紹介 - Pwn De Ring

GDB/MI

Debugging with GDB: GDB/MI
CDT デバッガーとのインターフェース: 第 2 回 Eclipse の CDT と MI を使って gdb にアクセスする
5.3.6. GDB の代替ユーザーインターフェース - Red Hat Customer Portal
Debugging with GDB - GDBの要約
Debugging with GDB - gdb/miインターフェイス
Debugging with GDB: 25.4 TUI固有のコマンド
GDB/Machine Interface library / Wiki / Home
GDB’s MI is not a Debug Protocol – Kichwa Coders
autozimu/gdb_mi: A gdb Machine Interface (MI) output parser and session manager.

blog

実践しながら学ぶ Android USBガジェットの仕組み(2):KGDBを使って、Android組み込みボードをリモートデバッグしよう!【前編】~KGDBの仕組みを理解する~ (1/3) - MONOist(モノイスト)
gdbを使ってRuby(2.3.3)のライブプロセスの情報を取得する - CubicLouve
gdbで初期設定をAT&T記法からIntel記法に変更する方法 | サラリーマンがハッカーを真剣に目指す
GDBのコマンド出力をファイルに保存する方法 - 技術日誌
objdumpによる逆アセンブルとgdbの命令形式表示の比較 - 技術日誌
実践的低レベルプログラミング
GDBでデバッグするなら-g3オプション - ククログ(2013-05-08)
gdbでデバッグするためのgccのデバッグ情報のオプション - C言語入門
debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ
JOS から学ぶ GDB デバッグ手法
gdbの使い方のメモ - ももいろテクノロジー
gcc+gdbによるプログラムのデバッグ 第2回 変数の監視、バックトレース、その他のコマンド
本の虫: GDBがeBPFのデバッグをサポートした
Linuxカーネルのテスト実行とデバッグ (2) :GDB編 - Fixstars Tech Blog /proc/cpuinfo

OSDN

GDB/GDBserverによるクロスターゲットのリモートデバッグ | OSDN Magazine
リモートデバッガ/プロファイラを利用したデバッグ&性能解析 | OSDN Magazine
D言語にも対応、GNU Debugger 7.2リリース | OSDN Magazine
オープンソースのデバッガーGDB 7.4リリース、Pythonスクリプティング機能などで多くの改良が行われる | OSDN Magazine
Go言語サポートが新たに追加された「GDB 7.5」リリース | OSDN Magazine
64ビットARM版Linuxをサポートした「GDB 7.6」リリース | OSDN Magazine
新コマンド導入、Python強化などが特徴の「GDB 7.7」がリリース | OSDN Magazine
「GDB 7.8」がリリース、Guileスクリプティングをサポート | OSDN Magazine
「GDB 7.9」がリリース、PythonスクリプティングAPIの強化などが行われる | OSDN Magazine
「GDB 7.10」リリース | OSDN Magazine
「GDB 8.0」リリース | OSDN Magazine
米Microsoft、Visual Studioのデバッガ拡張「MIEngine」を公開 | OSDN Magazine
RISC-Vサポートを強化した「GDB 8.3」リリース | OSDN Magazine

Qiita

はじめてのgdb - Qiita
gdbで効率的にデバッグするためのTips - Qiita
gdbのDynamic Printfを使う - Qiita

Twitter

Fadisさんのツイート: "ヒープ上で範囲外参照してSegmentation Faultするなんて可愛いモンだ。スタック上で範囲外参照して範囲外から有効っぽい値を拾ってよくわからないところに飛んでいったコードをデバッグするのと比べれば"
Fadisさんのツイート: "x86_64でこういうのをデバッグするとき、稀によくgdbの逆アセンブル機能に「このアドレスが始点だったと思って逆アセしてくれ」が欲しくなる(もうあったりするのかな)"
れっくすさんのツイート: "x/i https://t.co/VuUC5BacEP"
rayfillさんのツイート: "https://t.co/j9URafEPDk disassemble start,end でできるように読めるんだけど・・・ https://t.co/gZae5eIpAf"
Debugging with GDB: Machine Code
れっくすさんのツイート: "examineなんでn命令見れて普通に便利ですね。あとCTFでよく使われるpeda/pwndbgあたりを入れると特定のアドレスでdisasする命令が増えた気がします… "
Fadisさんのツイート: "テンプレート引数が極めて長い関数をgdbでdisasしたら、ジャンプする度にアドレスの横に出てくる関数名で画面が埋まって厳しい事になってる"
herumiさんのツイート: "disassemble/rm $rip,+128 ならバイト列込みで逆アセンブルしてくれます。@_ko1 というかVisual Studio便利なんだけどなあ。 「Linux プロジェクトのデプロイ、実行、デバッグ」 https://t.co/XSdT5BSoQb"
Visual Studio で C++ Linux プロジェクトを配置、実行、デバッグする | Microsoft Docs
_ko1さんのツイート: "うお、すごい、gdbserver につなげられるんだ!… "
Fadisさんのツイート: "gdbでデバッグ中の箇所でC言語のコードをコンパイルして実行するために使われているライブラリ化されたgcc libcc1がC++に対応した模様。デバッガから挿入するコードをC++で書けるように https://t.co/iHKqz7HOUO"
FadisさんはTwitterを使っています: 「gdb 8.4からデバッグシンボルのロードをマルチスレッドで行えるようになるらしい。デバッグシンボルを読まないとしばしば人類に厳しいデバッグを強いられるけど、巨大なアプリケーションのギガいデバッグシンボルは読むだけで時間がかかる問題がこれで緩和される https://t.co/9rowszXJld」 / Twitter
GDB Adds Multi-Threaded Symbol Loading For Faster Debugging Performance - Phoronix
FadisさんはTwitterを使っています: 「デバッグシンボルがギガくなる大抵の原因はC++のマングルするととてつもなく長くなる型名なんだけど…」 / Twitter
FadisさんはTwitterを使っています: 「マングルが直接的な原因ではないな。C++erはETでカジュアルに100キロバイトオーダーの型名を生み出してしまうのである」 / Twitter
FadisさんはTwitterを使っています: 「Rustのマングリングルールに一種の可逆圧縮みたいなルールが備わってて、こいつC++(Itanium ABI)で辛かった所にしっかり対策入れてるなってなった」 / Twitter
FadisさんはTwitterを使っています 「gdbがdebuginfodに対応したらしい。debuginfodはhttpでソースコードとデバッグ情報を配るデーモン。デバッガはローカルにソースとデバッグ情報が無くてもバイナリに埋め込まれた情報を元にリモートのdebuginfodからそれらを得る事で人類に優しいデバッグ環境を提供できる https://t.co/meD6YqbLlj」 / Twitter
GDB Debugger Adds Support For Debuginfod Web Server - Phoronix
uchanさんはTwitterを使っています 「GDBの条件付きブレークポイントの機能で,スタックポインタが16の倍数じゃないときにブレークする場合は condition &lt;bnum&gt; ((unsigned long)$rsp &amp; 0xf) != 0 とするといいみたい。」 / Twitter
uchanさんはTwitterを使っています 「ブレークポイントを作りつつ条件を設定するには break ... if &lt;cond&gt;」 / Twitter
Shiro Kawaiさんのツイート: "おお、最近のLinuxはデフォルトでデバッガがアタッチできるプロセスに制約があるのか。久々に刺さったプロセスに外からgdbをアタッチしようとして知った。 https://t.co/iiKXWwtfLP"
k0kubunさんはTwitterを使っています 「backtrace(3) がSEGVするような状況でもgdbは途中までbtを出せるのは何故なのか」 / Twitter
成瀬さんはTwitterを使っています 「@k0kubun どのアドレスを参照してよくて、どのアドレスを参照したら死ぬか知っているからですね。Linuxでも https://t.co/nUQFjeeakf を使えばそのへん制御できるかもしれませんが」 / Twitter
ruby/vm_dump.c at 229ba1215fa7c8181b9296dff22807fb17442c74 · ruby/ruby
k0kubunさんはTwitterを使っています 「@nalsh なるほど。見てるSEGVの再現率が絶望的に低いのでなかなか試せませんが、次簡単にヒットさせられる状態になったら試してみます」 / Twitter

GDB Internals - Table of Contents
Debugging Output (Debugging with GDB)
debugging with GDB
GabrielMajeri/separate-symbols: How to separate debugging symbols from an ELF executable
https://www.kernel.org/doc/Documentation/security/Yama.txt
cyrus-and/gdb-dashboard: Modular visual interface for GDB in Python
I0608173.pdf
melancholic afternoon
GDB to LLDB command map — The LLDB Debugger
PermissionsDarwin - GDB Wiki
Releases/FeatureBuildId - Fedora Project Wiki
gdb remote protocol - Google 検索

rr

rr: lightweight recording & deterministic debugging
Robert O'CallahanさんはTwitterを使っています 「rr 5.4.0 released. The main new feature of this release is AMD Zen support. There is also experimental ARM Aarch64 support --- for platforms that don't use STREX. Plus tons of bug fixes and performance improvements as usual. https://t.co/yFEe9LsqZU」 / Twitter
Release 5.4.0 · mozilla/rr
ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting
ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter

WebReplay

dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「構想はかなり前からあった、ブラウザ利用時の挙動を記録してリプレイしながらデバッグ出来る機能が遂にFirefoxにやってくる! https://t.co/AUmKzF1j1F」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「devtools.recordreplay.enabled=trueにしてレッツリプレイ! https://t.co/vbnMLjKPmq」 / Twitter
WebReplay - Mozilla | MDN
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「こちらのロードマップページにも書かれてるように元々はタイムマシーン機能として相当前から考えられてたけど全然実装に進んでなかったものをWebReplayという一連の機能として実装していくのが、取り敢えずmacのnightlyビルドで試験可能になってきたよって段階。 https://t.co/XYwpA41PQE」 / Twitter
WebReplayRoadmap - Mozilla | MDN
Firefox Replay
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「何か変な動きが…って時にテスターさんやユーザさんに記録して送ってもらい、開発者がその時の様子を手元で再現しながら前後自由に進めつつデバッグするという夢のデバッガと期待されてる奴ね。」 / Twitter
Firefoxにブラウザ上の動作を記録・再生可能な「リプレイ機能」が搭載される予定 - GIGAZINE

Processor Trace

LibIPT – Intel Processor Trace Decoder Library | Firmware Security
01org/processor-trace: libipt - an Intel(R) Processor Trace decoder library
Intel® Platform Analysis Library-Overview | Intel® Developer Zone
Processor Tracing | Intel® Software
BlueHat, Airplanes and Intel Pt – AaLl86 Security Corner
linux/intel-pt.txt at master · torvalds/linux
Intel Pinを使ってみる - ももいろテクノロジー
Intel Pinでcmptraceを作ってみる - ももいろテクノロジー
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina …
Shirouzu Hiroaki(白水啓章)さんのツイート: "x86とx64、引数がスタックに見える分だけ、前者の方が多少解析しやすい印象がある。 (後者はx86で言うfastcallのようなレジスタ渡しが標準。ちなみにMSとLinuxで引数に使うレジスタが違う)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "例外発生命令の、直前の命令位置を保存したレジスタか何か欲しいなぁ。 (例えば、0番地にジャンプした後に例外ダンプをとっても、もう遅い)"
きしもとさんのツイート: "エミュレータだと何命令か過去のヒストリがある奴あるよねというか、今なら実ハードでもそれぐらい(どれくらい?)の面積は確保してくれても良さそうという気もするが"
市川 真一さんのツイート: "例が GDB なのでアレですが、最近の Intel CPU 限定だと以下のような機能もあるようです: Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo https://t.co/4hAfksgtmO… https://t.co/dur1hZ40Cq"
Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo
Shirouzu Hiroaki(白水啓章)さんのツイート: "ご紹介ありがとうございます。 今解析しているのはユーザ環境のダンプなのですが、これは、そういう環境でも使える可能性があるかな…あとで詳しく見ておきます。… "
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita

MAP, COD

MAP (file format) - Wikipedia
セクションとか.textとか
C言語のプロセスにおけるMAPファイルとは何ですか? - 思い浮か... - Yahoo!知恵袋
マップ デバッグ ファイル(*.map) - RAD Studio
/MAP (マップ ファイルの生成)
/MAPINFO (マップ ファイルに含める情報)
マップファイルを使用したデバッグ | code-lab
C言語のソースコードからどのようにメモリ領域を使用しているのかを図で説明してくれるソフト 回答数3 【OKWAVE】
static関数がmapファイルに載らない理由 - C言語・C++・C# 解決済 | 教えて!goo
JUNO通信: 不正落ちしたアドレスからエラー箇所を特定する

addr2line

addr2lineを使った調査方法 - Qiita
addr2lineを使ってスタックトレースから取得したアドレスをソースファイル名と行番号に変換する - Qiita
Man page of addr2line

libSegFault

普通のやつらの下を行け: C でバックトレース表示 - bkブログ
スタックトレースの吐出しファイル名 - Linux Square - @IT

Sanitizer

AddressSanitizer(ASan)

KASAN

KASan - Kernel Address Sanitizer(kernel 4.0)は、コンパイル時に組込んで、シャドウメモリによるメモリ内容の検査を行う - つれづれ日記
KernelAddressSanitizer (KASan) による Linux のメモリ破壊問題の検出 - Qiita
Linux:面白そうなpatch(Address sanitizer for kernel)を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
The Kernel Address Sanitizer (KASAN) — The Linux Kernel documentation
Home · google/kasan Wiki
kasan.txt - kandamotohiro
社会人でもOSを作りたいさんはTwitterを使っています: 「KASan(カーネルアドレスサニタイザー)は,シャドウメモリと呼ばれる部分に,各メモリアドレスの状態(初期化済みであるかどうかなど)を記憶しており,メモリ読み書き命令が正当なものであるかをシャドウメモリの情報と照らし合わせて判定する。」 / Twitter

google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
AddressSanitizer · google/sanitizers Wiki
Home · google/sanitizers Wiki
google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
AddressSanitizer — Clang 7 documentation
AddressSanitizer - Wikipedia
Google Developers Japan: サニタイザーによる Android のバグ退治
Address Sanitizerで独自Frameworkのメモリエラーを検出する - Qiita
clang の AddressSanitizer を使って、バッファオーバーフロー/ヒープオーバーフローを検出する - Qiita
Address Sanitizerでメモリ不正アクセスを検知する - Qiita
clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
AddressSanitizerが思った以上に優秀 | Project Flora
AddressSanitizerを試す - cuspy diary
cormoran's note - clang のSanitizerについて
バグ #4270: StateMachine.hでheap-use-after-free - OpenRTM-aist (C++) - Redmine for OpenRTM-aist
Debian -- jessie の libasan0 パッケージに関する詳細
Debian -- jessie の libasan1-dbg パッケージに関する詳細
参照カウンタオーバーフローを利用したLinuxカーネルエクスプロイト(CVE-2016-0728) - るくすの日記 ~ Out_Of_Range ~
入力の検証とプロセス間通信
[iOS 11] Xcode 9で“だいぶまとも”に!新機能をまとめてみた | Developers.IO
るくすさんのツイート: "ASan有効のWebKitビルドしたら、ビルド中に動くツールにメモリリークがあり、それをASanが検知してしまうため一生ビルドが完了しない。 キレそう"
るくすさんのツイート: "でもラップトップだとビルド通るんだよな 何もわからん"
c++ : Poisoning Memory with (or without) Address Sanitizer
AddressSanitizerManualPoisoning · google/sanitizers Wiki
Rockridgeさんのツイート: "Windows向け64bit版のビルド時にAddress Sanitizerと呼ばれるメモリエラーの検出ツールが働くようになった。参照:https://t.co/TSOKN3H8a7 https://t.co/I7KJVWTpa2 https://t.co/dDfe0RPHtE"
Introducing the ASan Nightly Project | Mozilla Security Blog

LeakSanitizer

clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
LeakSanitizer — Clang 8 documentation
AddressSanitizerLeakSanitizer · google/sanitizers Wiki
LeakSanitizer - The Chromium Projects
c++ - LeakSanitizer: get run time leak reports? - Stack Overflow

MemorySanitizer

melancholic afternoon
MemorySanitizer — Clang 7 documentation
MemorySanitizer · google/sanitizers Wiki
Memory sanitizer
Memory Sanitizer - Mozilla | MDN
c++ - Memory Sanitizer - Stack Overflow

ThreadSanitizer(TSan)

ThreadSanitizer — Clang 8 documentation
ThreadSanitizerCppManual · google/sanitizers Wiki
Home · google/sanitizers Wiki
SwiftのAddress/Thread Sanitizer - Qiita
ThreadSanitizer: data race detection in practice
c++11 - Why does ThreadSanitizer report a race with this lock-free example? - Stack Overflow
ThreadSanitizer (TSan) v. 2 - The Chromium Projects
shinichiro hamajiさんのツイート: "#tcfm TSanまわりはいくつか論文読んだ記憶がある。ナイーブなeraserはくさんfalse-positiveが出て、例えばデカい配列作ってスレッドたくさん作ってjoin、みたいなやつだとワーカーとメインスレッドがraceとされちゃう。で、happens-beforeてのとのハイブリッドにしましたってのがTSanだという理解"

DataFlowSanitizer

DataFlowSanitizer — Clang 8 documentation
pannzh/dataflow-pass: A LLVM Pass with runtime dataflow sanitization
u1240976/dfsan_test: test llvm dataflow sanitizer
Address Sanitizer clashes with Dataflow Sanitizer - Google グループ
Clang Developers - Dataflow sanitizer memory mapping question
Oscar Forner's personal website
Engineering Secure Software and Systems: 9th International Symposium, ESSoS ... - Google ブックス
clang-sanitizers
Sanitizers.def source code [clang/include/clang/Basic/Sanitizers.def] - Woboq Code Browser

UndefinedBehaviorSanitizer(UBSan)

UndefinedBehaviorSanitizer — Clang 7 documentation
Google Developers Japan: サニタイザーによる Android のバグ退治
Linuxカーネル4.5リリース、細かな改善点が中心の小規模リリース | OSDN Magazine
The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel documentation
The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel 4.11.0-rc4-00191-g7de6e5d documentation
UndefinedBehaviorSanitizer (UBSan) - The Chromium Projects
Undefined Behavior Sanitizer | Apple Developer Documentation
GCC Undefined Behavior Sanitizer - ubsan - RHD Blog
c++ - UBSan And Asan usage with GCC 4.9.2 - Stack Overflow
GCC Undefined Behavior Sanitizer – ubsan (RH Developer Blog) [LWN.net]

LLVM Sanitizerを試す - FPGA開発日記

Intel Pin

Intel Pinを使ってみる - ももいろテクノロジー
Intel Pinでlivestringsを作ってみる - ももいろテクノロジー
Intel Pinを触る
アプリケーション インストルメンテーション - Pin によるアプリケーション分析
Intel PinにおけるNXの扱い | 一生あとで読んでろ
PinからPEMUへ | 一生あとで読んでろ

angr

angr例文集 書いて覚えるバイナリ自動解析技術 - Qiita
angrメモ - HackMD
angr+bingraphvisで実行パス差分ビューワを作ってみる - Qiita

最適化コードのデバッグ

IBM Knowledge Center - 最適化コードのデバッグ
方法 : 最適化されたコードをデバッグする
ARM Information Center

Source Map

Source Map Revision 3 Proposal - Google ドキュメント
mozilla/source-map: Parse and consume source maps.
Rockridgeさんのツイート: "Fx50:開発ツールのWebコンソールにソースマップ機能が実装された。デフォルトでは無効。 / “670002 – Use source maps in the web console” https://t.co/ehqBfbNvNj"
ソースマップを使用する - 開発ツール | MDN
Safx: JavaScriptのSource Mapの内部表現について
各ブラウザでソースマップを確認する方法 - Qiita
[JavaScript] sourceMapの作り方 - Qiita
To Be "Soulful": gulp + Sourcemap + Uglify + Debug で気を付けるポイント
jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 - てっく煮ブログ
Source Mapを扱う関連ライブラリのまとめ | Web Scratch
Source Mapsについて調べた - console.lealog();
Browserify を使ってみる 2 – Source Map – アカベコマイリ
なかのん&マジックさんのツイート: "普通のWebサイトも難読化してるところにペナルティを与えて欲しいと思えるぐらいに、最近のWebアプリがブラウザの何が非互換で動かないのか調べるのは難しい。 / Google、信頼できるChrome拡張にするための対策を発表 | スラド IT https://t.co/ykzZJhRTsu"
Google、信頼できるChrome拡張にするための対策を発表 | スラド
なかのん&マジックさんのツイート: "最小化は必要なんだろうけど、それを復元する、もしくはオリジナルにアクセスする手段が標準化・用意されていないのはなかなかにキッツい。"
なかのん&マジックさんのツイート: "各ブラウザの開発ツールが追加で読み込める、デバッグシンボルみたいなのあってて欲しい。"
市川 真一さんのツイート: "Source Map とソースコードを zip で固めたファイルなら、比較的簡単に実現しそうな気もしますが、外部の人間にソースコードを渡す企業は限られるという問題があると思います… "
なかのん&マジックさんのツイート: "もう、くれないところは逆にWebの仕様変更時にブラウザベンダのサポート受けられないよ、的なコンセンサス欲しいですわ。… "
市川 真一さんのツイート: "それ、いいですね。多くの日本企業が市場から退場しそう… "

HAR ファイル

.har - Wikipedia
HTTP Archive (HAR) format
HAR 1.2 Spec | Software is hard
HAR ファイルの作成と Web リクエストの分析 - アトラシアン製品ドキュメント
Firefox の Firebug や Chrome のデベロッパーツールの Network の結果を HAR にエクスポートしたり PDF に印刷する方法 | ウェブル
harファイルをローカルで表示できる「HAR Viewer」|プログラミング
HARファイルの内容から指定URLの内容のみを抽出する方法 - Qiita
HARからファイルを抽出する - Qiita
JSONパーサーを作る - Qiita

blog

RogueWave

CodeDynamics

CodeDynamics 2015.09 初リリース - エンタープライズ向け 動的コード解析ツール - ローグウェーブソフトウェアのブログ
CodeDynamics 2015.11 リリース C++11対応と新しい検索ツール - ローグウェーブソフトウェアのブログ
CodeDynamics 2016.01 リリース - 高機能デバッガ wrap searchとブレークポイントハイライト - ローグウェーブソフトウェアのブログ
CodeDynamics 2016.04 リリース - 動的解析 CUDAデバッグ、Evaluation Point、バリアポイント、ReplayEngine強化 - ローグウェーブソフトウェアのブログ
エンタープライズ領域におけるソフトウェア開発の進化 - ローグウェーブソフトウェアのブログ

分散環境におけるメモリエラー解析 - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
動的解析のエンジンを再構築した理由 - CodeBuzzから - ローグウェーブソフトウェアのブログ
並列デバッガ TotalViewの多様なインターフェースと使い方 - ローグウェーブソフトウェアのブログ
複雑なデバッグをシンプルに - TotalViewのTransformations機能 - CodeBuzzから - ローグウェーブソフトウェアのブログ
TotalViewのType Transformations機能 - ローグウェーブソフトウェアのブログ
TotalView 並列アプリケーションのデバッグ機能 - ローグウェーブソフトウェアのブログ
TotalViewのCUDA関連機能 - ローグウェーブソフトウェアのブログ
TotalView 新UIでのFortranデバッグとリバースデバッグの紹介動画 - ローグウェーブソフトウェアのブログ
TotalView Python C++混合デバッグ - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
TotalView 2017.0 リリース - ReplayEngine高速化、新UIにウォッチポイント、NVIDIA Tesla P100 - ローグウェーブソフトウェアのブログ
TotalView 2017.1リリース - Python混合デバッグ、リバースデバッグのブックマーク、Split DWARF - ローグウェーブソフトウェアのブログ
TotalView 2017.2ベータ版 - Python混合デバッグのサポート強化、バッチデバッグとリバースデバッグ - ローグウェーブソフトウェアのブログ
TotalView 2017.2リリース - バッチデバッグでReplayEngine利用可能に、PythonとC/C++混合デバッグ強化 - ローグウェーブソフトウェアのブログ

φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

Linuxカーネルをgdbでデバッグ(またはディストリビューションのカーネルを使うときは当たってるパッチにも注意しよう) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux kernelをgdbでリモートデバッグするときはKASLRをoffにするのを忘れずに(´・ω・`) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxでプロセス単位にaslrのon/offを切り替える仕組みめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
dynamic_debugはどのようにソースコードの行数、関数名などを読み取っているのか - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
libbfdのめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
本の虫: ラバーダックデバッグとは
プログラマーの理想と現実 - メモリ破壊バグをつきとめる | 株式会社創夢 — SOUM/misc
EternalRed0’s Unicorn Engine tutorial | Firmware Security
バイナリエディタを作りました! - プログラムモグモグ
IDAの便利プラグイン3選!!! - 脱力系日記
IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた - 脱力系日記
PinなどのDBIツールでトレースした結果をIDAにマッピングするプラグイン「Lighthouse」を使ってみた - 脱力系日記

NyaRuRuが地球にいたころ

日記を書いている途中にブラウザがハング・暴走したときするべきこと - NyaRuRuが地球にいたころ
Google Chrome をデバッグする (1) - NyaRuRuが地球にいたころ
Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ

Project Zero: The story of Adobe Reader symbols
Project Zero: Part II: Returning to Adobe Reader symbols on macOS
ccov: printfデバッグを支援するツール | retrage.github.io
Binary Translation型エミュレータを作る(ステップ実行のサポート) - FPGA開発日記
エクスプロイト可能なバグかの判断:REVEN を使用して NULL ポインタの参照先の値を取得
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
OVMFをソースデバッグするお話 | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab
第16回「 kernel-debug ノススメ」 | NTTデータ先端技術株式会社
Bokken 1.8使ってみた - Twitterに書ききれないこと
(第15回)Ctrl-Cブレーク対応
mozregressionを使って、いつFirefoxの機能が壊れたのかを調べる - ククログ(2018-07-18)
デバッガ自作から学ぶ低レイヤー - Nao Technology
デバッガ自作から学ぶ低レイヤ2 - Nao Technology
OpenBSD in Stereo with Linux VFIO | joshua stein
アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
goroutine内のpanic handling | Money Forward Engineers' Blog

PDF

purify.pdf
tsushima12.pdf
tsushima13.pdf
ishii14.pdf
wakikawa18.pdf
doctoral.dvi - doctoral.pdf
general4-1.pdf
コンパイラの型推論を使用した型デバッガの提案
重み付き型エラースライスの提案
バイナリコードから脅威度を推定する 脆弱性検出ツールの実装と評価

スライド

Reverse Debugging with radare2 - Speaker Deck
More efficient remote debugging with Thin Hypervisor - Speaker Deck
ゆるバグ
The Game is Over. Nintendo switch has been totally compromised - Speaker Deck
Python + GDB = Javaデバッガ

GitHub

WICG/devtools-protocol
gdabah/distorm: Powerful Disassembler Library For x86/AMD64
zydis | The ultimate X86 & X86-64 disassembler library
zyantific/zydis: Fast and lightweight x86/x86-64 disassembler library

infoQ

既にコンパイルされたアセンブリをデバッグできる.NET Reflector
ElasTestで実現するテスト時の可観測性
WebDriverIOバージョン6リリースは、ネイティブのChrome DevToolsオートメーションプロトコルを新たにサポート
New LiveRecorder for Java Enables Software Failure Replay
Chrome 83 DevToolsでは視覚障害とロケールをエミュレート

Qiita

gdbのリモートデバッグのextended-remoteモードを試す(1) - Qiita
gdbのリモートデバッグのextended-remoteモードを試す(2) - Qiita
gdbのリモートデバッグのextended-remoteモードを試す(3) - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "chromeにデバッガがアタッチできなかった話は、保護プロセスが理由だった。https://t.co/GmoAFDpGGq そして「Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法」。勉強になった。 https://t.co/1VAkqHCmfA"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここ数週間、chromeのプチフリーズ(5-10秒)が頻発。 VS2015のデバッガでchromeプロセスにアタッチしようとするとリジェクトされてしまうのはなぜだろう。"
Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに、Windows Defender の場合はデバッガをアタッチしても、書き込み権を落としたハンドルしか渡せないという防御もあり、そのためのフィルタコールバックを如何に無効化するかという話も。ハッカーすぎる(笑)"
curl は何をしているか #システムコール編 - Qiita
「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
Linuxカーネルの起動時トレースの話 - Qiita

Wikipedia

逆アセンブラ - Wikipedia
Disassembler - Wikipedia
逆コンパイラ - Wikipedia
Decompiler - Wikipedia

Twitter

その他

SoC_デバッグ

Yuji IshikawaさんはTwitterを使っています: 「守秘義務は外すとして、ここのところ頭を悩ませていた案件に光明が見えてきた。aarch64のLinuxカーネルにプラットフォームデバイスを認識させる作業。 さくっとデバイスツリーを書いて、SoC固有のところをいじるだけなのだが、ムズい。意外と資料がない。指南書ほしい。指南書書きたい。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「だいぶやられた後に言いたいことは、有名なSoCと同じIPを使っているからと言って、やすやすとドライバが移植できると思うなよ!だった。合ってるのは公開レジスタセットの所だけで、ベンダ固有の謎のHWや、よくわからん感じにマルチプレクスされた割り込みが理不尽な振る舞いをする。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「ベンダ依存の少ないレジスタセットを使ったコアロジックは使い回せるので、ベンダ依存部分さえ直せば驚くほどすんなりドライバが動く。 まさに巨人の肩によじ登ったワンダー。 しかし重ねていうが、工数を安請け合いしてはならない。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「結局、pr_infoを仕掛けて回る、サブのプロセッサコアをLinuxの支配下に置かずにデバッグ用につかまえておいて、横からレジスタを覗いたり書き換えたりして反応を観る、という形でデバッグしてた。もっと良い方法を知りたい。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「@Tatsuro_Ueda こういうのが強い人って、本当に強いんですよ。私がハマっていた所なんて、タネが割れてしまえば本当に簡単なこと、数十行のハックで最低限の動作ができてしまう。 でも、最初に仕組みを見通すメンタルモデルを獲得するには、莫大な研鑽が必要。偉い人にわかってほしい。」 / Twitter

histric-1

Makoto Kato ︎︎さんのツイート: "10年前の時点で自分の環境用のデバッグツールで、IEのプロセスダンプから現在開いているURLを収集および表示してるHTMLをダンプするcdbエクステンションを持ってたけど、自分のやってたところまでサポートは追いついてないのか"
Hirochika Asaiさんのツイート: "実機だとOSの挙動がおかしくなる問題のデバッグにはCPU 0以外のコンテキストをダンプをする機能が必要。お行儀の良くない初期化しただけでこんなに影響出るものなのか…?"
Kazuho Okuさんのツイート: "えぇぇぇぇ gdb で C-x 1 って入れたらソースコード表示しながらデバッグできるの!!! 知らなかった / “CppCon 2015: Greg Law " Give me 15 minutes & I'll change…” https://t.co/XDazrCP2mN"
側転幼女おるみんちゃんさんのツイート: "gdb --tui でもできる機能ですね。 https://t.co/4Y1ntlpj3o"
ぺお(ozaki-r)さんのツイート: "DTraceをNetBSD/armに移植するときも未定義命令を使ったような記憶が… "
なかのん&マジックさんのツイート: "特定のメソッドから、任意の数遡った、可能なスタックを全て表示してくれるツールとかないんかな(´ρ`)"
yukiさんのツイート: "コードを書いていくとインタラクティブにアセンブリに直してくれるサービス.すごいのが,コードのどこがどのアセンブリに対応しているのか色付きで教えてくれるところ.勉強になる.もちろんRustもある! / Compiler Explorer https://t.co/9fppGUrHHG"
Compiler Explorer
Shirouzu Hiroaki(白水啓章)さんのツイート: "某大学の講義の感想で「(二分探索的な)printデバッグ時のコストが log2 N になる話が良く判らない」という感想が出たので、次回用にフォロー資料を書いてみたり。 再現性が良く、テストしやすいプログラムの場合、printデバッグは現代でも効率が良い問題究明方法。… https://t.co/M4FDQDATwG"
なかのん&マジックさんのツイート: "Linuxで他のモジュール内部も含んだスタックトレースってどうやってとったらええんかな。"
秀の介@柏さんのツイート: "Debianならデバッグシンボルパッケージをインストールすれば良いようです。 https://t.co/59tgzJ1q1T… "
Debian 9: デバッグシンボルのdbgsymでパッケージをデバッグする - Narrow Escape
なかのん&マジックさんのツイート: "おー、ありがとうございます。やってみます。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ワーカースレッドが多いとデバッガで見たいスレッドを発見するのが手間になっていく。 デバッガでコールスタック解析して、同じコールスタックで眠っているスレッドは除外するフィルタ等があるといいのだが。 (VSSDKで作れるのかな?)"
DrumatoさんはTwitterを使っています: 「自作バイナリに独自デバッグセクションを埋め込んで,それを解析するツールも実行プログラム基盤に埋め込めた!!! ・ユーザ空間に実装したローダ ・ --run オプション ・独自readelf ・ --relocs/-r オプション(これは一部) ・独自デバッグセクション ・独自readelfで解析可能 https://t.co/Qi4MMXf6Cs」 / Twitter
DrumatoさんはTwitterを使っています: 「ユーザが特定のフォーマットでコメントアウトした時.それをバイナリから参照できるようにしたいな. 新しくセクションを打って,ヘッダからそれを参照する. https://t.co/4yGJ3PofaI」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「マルチスレッドでタイミング依存、高負荷でのみ発生、最適化に依存(大半はコード側問題の顕在化&稀に最適化バグ)といった経験を経て大人になる…そしてprintf(リングバッファ的なロギング系含む)の侵入副作用の小ささと環境非依存に「再び鮒釣りに帰ってくる老人」みたいな心境に(笑) https://t.co/ASEQrrDhhk」 / Twitter
Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「永遠の初心者なのでprintf普通にします (gdbかました時だけ再現しない問題とか、普通に経験ある人多いんじゃないかなあ、。) https://t.co/rJoiNKKxEU」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「全力動作でないと問題発生しない系に対して、ロギング用リングバッファを作ってメモリ上でトレース&問題検出と同時にダンプ。後は大量に出たログを眺めて動作を脳内シミュレート(と一連の作業のイテレーション)した人も多いのでは。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RS232C出力のコンソール画面だとフロー制御するので、stdout/stderr出力が固まるってありますね。 昔々、UNISYS WSで「システム動作が停止したぞ?」と大騒ぎになった時、誰かが画面電源をOFFにしていたオチ。(で画面ONにすると何事も無かったように動作再開…) https://t.co/sUzYc1gH5I」 / Twitter
Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「あるあるある、。RT そしてfflush(stdout)もセットになったりします(笑) stderrがシリアルコンソールに物理的にひもづいててリングバッファからのflushが異常遅延してとかそういう思い出があったようななかったような https://t.co/ZLiLfjy5qJ」 / Twitter
ryoさんはTwitterを使っています 「というかSMPでhardware watchpoint/breakpointを共有しないと使いものにならないというTODOを思い出した」 / Twitter
herumiさんはTwitterを使っています 「https://t.co/bqgvd5sz7J ありましたね。 私が経験した中でレアなやつは コード整形しただけのはずなのに再起動するようになった(OSのバグ) gdbで起動するとgdbが落ちる実行バイナリ(gdbのバグ) 未定義命令で落ちる(VMのcpuidエミュレーションバグ) とか。そういうの集めてしゃべると楽しいかも。」 / Twitter
とみながたけひろさんはTwitterを使っています 「ログ出すとprintfがスタックをじわじわ使うのでそこで少しずつスタック拡張が起き、その次に呼ぶ関数でもスタックが使える ログなしだと該当関数がスタックを大量に確保していきなり前のほうを使うのだが、それをOSはスタック拡張と認識できず死ぬ というのがあったな…(光成さんも経験されてたような https://t.co/tjqpC7YVN8」 / Twitter
uchanさんはTwitterを使っています 「まてまてまてまて!なんだこの現象は。ログ出力を1行加えたら現象が治まったぞ!?(OS開発あるある)」 / Twitter
とみながたけひろさんはTwitterを使っています 「この現象に初めてはまった時は、リアルタイムOS厨だったので「スタックサイズ拡張なんて邪道だろ」とか思った記憶がある(中二病ぽい)」 / Twitter
ryoさんはTwitterを使っています 「PACのコード読み。なんとなく疑問点が氷解した。なぜPACがポインタ全体を暗号化せずにunused bitだけに認証コード埋め込むのかは、ポインタの値を拾いたい場合もあり得るからか。今のところlrだけなのでbacktraceくらいだけど。」 / Twitter
ryoさんはTwitterを使っています 「OpenBSDのRETGUARDはARM64 PACのソフト実装みたいな感じだが、こちらはspとreturn addressをxorしているので全bitが意味を為さなくなってポインタとしては扱えない。(が、db_traceでやってるみたいに自前でxorしなおせばいい)」 / Twitter

Kazuho OkuさんはTwitterを使っています 「printfデバッグ、二分検索を念頭において print 文を足していった結果、少ないステップ数で原因絞り込めると快感」 / Twitter
Rui UeyamaさんはTwitterを使っています 「すべてのCファイルをいったんgccでコンパイルして、そのあと1ファイルだけ自作コンパイラでコンパイルしてリンクするみたいな方法でミスコンパイルしている場所は比較的簡単に絞り込めるので、デバグはあんまり難しくない。」 / Twitter
ある🍄まじろう / 加来量一さんはTwitterを使っています 「printf() を挿入するとバグが止まることは本当によくあって、メモリ未初期化が収まるパターンとメモリ破壊がずれるパターンと、スレッドスケジュールが変わるパターンがある 特に最後のは気づきにくくて厄介」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「debuginfod (https://t.co/3WrAAVzHyn) を見ながら、やっとWiindows debuggerの世界の20年前に追いついたと。cdb/windbgだと20年前に出来たことだよな」 / Twitter
Introducing debuginfod, the elfutils debuginfo server - Red Hat Developer
Shinji KonoさんはTwitterを使っています 「結局、lldb 、Rust compilerに対して役に立ってない。デタラメに止めてstepくらいはできる。もう、debuggerの時代は終わりかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「アドレスが間違ってるので、nmの出力を解析できればアドレス直打ちで止められるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔と違ってgithub上でかなりいろいろできるし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「gdb/lldbはコンパイラとの連携がそもそもダメ。Dwarf formatは言語非依存を目指したものだが、それ自体が時代遅れ。コンパイラ実装でも負担になるだけだし、表示は、その言語自体が行ないと無理。」 / Twitter
Shinji KonoさんはTwitterを使っています 「サボってるのはgdb/lldb、あるいはソフトウェア工学そのものだな。なんか作るか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「OSのdebugger APIも古色蒼然。」 / Twitter
Shinji KonoさんはTwitterを使っています 「lldb/gdbがうまくdebugできなくなってるのは、Rustだけじゃなくて、他の言語でもそう。C/C++でもだめ。」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「rustcに対してデバッガをかけたいというのは確かに大変そうだ…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「optimized binary + debug infoに対してどれぐらいデバッガが効くのかは分からないな」 / Twitter
κeenさんはTwitterを使っています 「そういうのなかったっけ?lspよろしくdebudder server protocolみたいなの。実装されてるかは知らないけど。」 / Twitter
κeenさんはTwitterを使っています 「MSのDebugger Adapter Protocolか。これ微妙だな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Rustc、一応、LLVMコード生成部分は捕まえられた。lldbは使い物にならなくて、gdbでもデータ表示はできない状態。40万行。」 / Twitter

コールスタック

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「根の深い例外ダンプが送られてきた…起動時に作っているはずのメインObjのアドレスが0近傍になっている。 近傍=保持しているオブジェクト0でそのオフセット値という可能性高いも、何か合点がいかない感。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「類似状況を試したら、NTDLLを呼んでいる場合だけに現れる、一時的なコールスタック表示崩れの問題のようだ。 とはいえ、IP=0 でSEGV例外になった点は事実。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえばデバッガは、コールスタック途中のレジスタ復元どうやっているのだろう?(エピローグpushからスタック退避位置を推定?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「エピローグではなくプロローグ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「security cookie を有効のため、スタック破壊で0に飛ぶことは無い。 ということは、vtblの中身が破壊された?(obj ptrがnullの場合、vtblを引く操作でエラー=eipが0になる前に例外になるはず)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ソースコードに bo_test() というコードを仕込んでいて、時折、有効化したビルドを行って、buffer overflow 時の挙動&ダンプの中身を確認している。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、今時のVC++は bo時の例外ハンドラ起動を許さないので、そのx86/x64コードにnopを動的に入れることで、自前ハンドラに飛ばすhackを行っている。 (良い子はマネしない方が良い)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まあ年に数回であれば、ダンプを眺めるのは良い訓練。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たぶん判った。 これは特殊な条件で、OS/デバドラ側が非同期でスタックを壊しに来てる…うーむ、どうしたものやら。」 / Twitter

Custom section(WASM)

chikoskiさんのツイート: "custom sectionね。… "
chikoskiさんのツイート: "Custom section の仕様:https://t.co/JUTEAiTUjA"
Custom Sections — WebAssembly 1.0

int 3

histric-1

まさみさんは語りたいさんのツイート: "https://t.co/RL88Qp8eam デバッグレジスタを使ったメモリアクセストレース(所謂hwbreakpoint)の例外発生パターンが、一部の命令だけ違っていることを見落としていた話。ほぼ全ての命令ではメモリアクセス命令の直前で例外が発生するが、スタックセグメント(SS)レジスタのPOPとMOVだけ命令の直後。"
POP SS debug exception- CVE-2018-8897 [Moderate] & CVE-2018-1087 [Important] - Red Hat Customer Portal
まさみさんは語りたいさんのツイート: "基本的には全てメモリアクセス命令の直前で止まっていると思って処理をするため、例外発生アドレスが指す命令を記録してエミュレートする(あるいはDRを一時的にクリアしてシングルステップ実行?)ことになるけど、同じ処理をするとMOV SSとPOP SSだけ2度実行されることになる?"
まさみさんは語りたいさんのツイート: "うーん、なんかもっと深刻な酷さだぞ。何だこの酷い仕様。 the processor delivers pending interrupts and/or debug exceptions after the first instruction following when the stack switch is executed."
まさみさんは語りたいさんのツイート: "普通スタックの切り替えはセグメント切り替え+スタックポインタ復帰の2命令で行われる MOV SS, [RAX] MOV RSP, RBP なのでデバッグ例外は2つめの命令が実行されるのを待ってから行われると。 ところが単に命令数をカウントしているだけなので、MOV RSPではなくSYSENTERとかだと・・・"
まさみさんは語りたいさんのツイート: "MOV SS, [RAX] SYSENTER で、RAXの指すアドレスのリードアクセスをデバッグレジスタに指定すると、デバッグ例外がSYSENTERのハンドラ(ring0に変更済み)の先頭で発生する・・・? そうか、そうするとkaslrで移動させたアドレスがバレバレになるのか。"
まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i んー??CVE-2018-8897は違う問題か?icebp(ICE breakpoint)っていう隠し命令があるという話。"
kernel/git/torvalds/linux.git - Linux kernel source tree
まさみさんは語りたいさんのツイート: "icebp、胸熱命令だな。int3はBP例外を発生させるけど、icebpはDB例外を発生させることのできる命令らしい。ICEが繋がっているとそちらからハンドリングできるソフトウェア命令と。"
まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i 修正パッチが全く違うのは異なるCVE番号が付いているから。2つのCVEがあるという話らしい。"
kernel/git/torvalds/linux.git - Linux kernel source tree
まさみさんは語りたいさんのツイート: "icebpはint1か。linuxカーネルだとdo_debugでヒューリスティックにicebpではないかと推測して処理されるけど、kvmではvmxに明示的にフラグが立つので確実に処理できると。"
まさみさんは語りたいさんのツイート: "Loading the SS register with a MOV instruction inhibits all interrupts until after the execution of the next instruction. This operation allows a stack pointer to be loaded into the ESP register with the next instruction (MOV ESP, stack-pointer value) before an interrupt occurs."
まさみさんは語りたいさんのツイート: "If a code instruction breakpoint (for debug) is placed on an instruction located immediately after a MOV SS instruction, the breakpoint may not be triggered."
まさみさんは語りたいさんのツイート: "However, in a sequence of instructions that load the SS register, only the first instruction in the sequence is guaranteed to delay an interrupt."
まさみさんは語りたいさんのツイート: "In the following sequence, interrupts may be recognized before MOV ESP, EBP executes: MOV SS, EDX MOV SS, EAX MOV ESP, EBP えっ、なにそれ??"
まさみさんは語りたいさんのツイート: "本当に一命令だけ遅延させるんかwww"
まさみさんは語りたいさんのツイート: "あっ、これはIntelの聖典のMOV命令のところに書いてる。"
まさみさんは語りたいさんのツイート: "2018 MayのIntel SDMではICEBPという名前が見えるけど、一箇所だけ、脚注にあるだけっぽい。"

まさみさんは語りたいさんのツイート: "MOV SS/POP SSはシングルステップ実行のトラップも遅延させるぐらい強力なものなのか。kprobesの場合、MOV SS/POP SSは両方共booster対象なのでシングルステップ実行はしないけど、uprobesはヤバイんじゃないかな。"
まさみさんは語りたいさんのツイート: "https://t.co/JlzgRoXsYf Andyの書いたテストプログラムに酷い仕様が書かれている。MOV SSのあとにint3を挟むと、なんとint3の例外は発生せずdebug例外だけ起きるらしい。"
まさみさんは語りたいさんのツイート: "これからint3を入れるときには、事前に一つ前の命令を確認してmov ssではないことを確かめないといけないってことになるのでは。あるいはdo_debugで発生命令がint3だったときにはdo_int3を呼び出すとか。"
まさみさんは語りたいさんのツイート: "んー?int3とbreakpointが別れて書かれてるということは、このbreakpointはhw breakpointのことなのか。じゃあ大丈夫かな?"
まさみさんは語りたいさんのツイート: "最新のIntel SDMをダウンロードして、"MOV SS"で検索すると、凄いポピュラーな単語になっててワロタw"
るくすさんのツイート: "CVE-2018-8897ようやくちゃんと読んだんですが、これは結局Linuxだと MOV SS, [RAX] INT 3 とすると、INT 3を実行して#BP用のISTが切り替わった最中に1行目のwatchpointにより#DBが届いてしまい、同じISTを使おうとしてカーネルクラッシュ→DoS という認識で良いのかな"
るくすさんのツイート: "ただ一つ分からないのが、Linux以外で#DBにISTを使わずそのままカーネルスタックを使うような設計のOSだと"権限昇格"ができる可能性があると記述されているのだけど、これはどういう意味なんですかね..."
まさみさんは語りたいさんのツイート: "MOV SS; INT3の場合、BP例外ハンドラの先頭でDB例外が発生→処理されてからBP例外が継続、なのでこのケースは気にしなくてもいいっていうことだな。むしろMOV SSにINT3入れるとSingleStepが出来なくて死ぬ。"
るくすさんのツイート: "Linuxカーネル開発サイクルに関する一般的な質問なのですが、いくつかのパッチは、とりあえずマージせずにstable-queue(?)とかいうのに置いてあって、今回過去のパッチが脆弱性修正に繋がると判断したのでmainlineにマージしました、という認識であってますか?… https://t.co/WNYer77UF4"
まさみさんは語りたいさんのツイート: "というわけでkprobesとuprobesのパッチ作っているなう。"
まさみさんは語りたいさんのツイート: "mov hoge,%ssなんて見つかるわけ無いだろー?とか思ってたら案外_switch_toでさっくり見つかって驚いている。"
まさみさんは語りたいさんのツイート: "LSS使えってSDMに書いているのに、結構ポピュラーなんだ・・・。"
まさみさんは語りたいさんのツイート: "まあ、実行される箇所はポピュラーだけど、実際にこれ以外にはsecondary_startup_64ぐらいでしか見つからないので、ポピュラーとはいえないか。"
まさみさんは語りたいさんのツイート: "arm64のpatch_textの実装確認したらstop_machine使ってた・・・まじか。"
まさみさんは語りたいさんのツイート: "stop_machineはかなり重い処理だから、余り使いたくない。特にコア数が増えるとものすごいジッタが発生するはず。IPI送って、それぞれのコアの待ち合わせを行った上で、処理をしてる間も止まってるわけだから。"
まさみさんは語りたいさんのツイート: "x86の場合はint3使って迂回路を生成して書き換えるっていうkprobes由来の方法が一般化されて利用されてる。さらにエイリアスページを使う念の入りよう。"
Kazuho Okuさんのツイート: "Linuxの USDT サポートが /proc/<pid>/mem を開いてフラグを書き換えたり、おそらく同時に NOP -> INT3 してることはわかったけど、INT3 受け取ったカーネル内での、デバッガ呼び出しと eBPF 呼び出しの切り分けはどうやってるんだろう"

@mhiramat

まさみさんは語りたいさんのツイート: "おっ、綺麗にスタックが出た!っとおもったら何故か PC is at _raw_spin_lock_irqsave+0x2c/0x6c これはひどい。(多分メモリ領域壊している)"
まさみさんは語りたいさんのツイート: "にわかには信じられないけど、この2つの関数の組み合わせだけで起きる。一つずつだと起きない。関連性が全く分からん。"
まさみさんは語りたいさんのツイート: "ウオオオわかった https://t.co/SVYRV1RS1v kprobe on arm、お前・・・未定義命令だったのか・・・"
まさみさんは語りたいさんのツイート: "いやそれはおいておいて、アセンブラを書く羽目になっている"
まさみさんは語りたいさんのツイート: "よし、本件についてはクローズしたとみなす。"
まさみさんは語りたいさんのツイート: "あちゃー、まずいな。ftraceとperfの両方がそれぞれ違うring_buffer構造体を作ってるんだけど(同じ名前で)、debug情報がこれをごっちゃにしているのが分かった。ftraceのring_bufferをダンプするとperfのring_bufferの型をつかってダンプしよる・・・。"
まさみさんは語りたいさんのツイート: "えっ、これgdbのバグ?binutilsのバグ?gccのバグ??"
まさみさんは語りたいさんのツイート: "IDA/radare2 というのを使って逆アセンブルする。radare2というのがベーシックブロック解析付きの逆アセンブラみたいな感じ? #kernelvm"

@fadis_

Fadisさんのツイート: "CPUを初期化ペリフェラルの初期化、DRAMの初期化をした後u-bootは自身をRAMにコピーしてそこにジャンプする。→ アドレスが変わるためgdbで追うのが辛い → relocateaddrを調べてgdbでadd-symbol-fileする #kernelvm"
Fadisさんのツイート: "書いたコードがSEGVで停止するのは幸運なケースだ。本当に面倒なバグは配列の範囲外だけど書き込み可能なページ内をしれっと書き換えていく"

Kazuho OkuさんはTwitterを使っています 「CI で asan だけコケてるの見て、これはなんか遅い場合だけ出るタイミング依存のバグかなーってんで考えて、テストコードいじって再現成功して、USDT probe 使って原因つきとめて、修正パッチ書けたから今日はいい日」 / Twitter
まさみさんは語りたいさんのツイート: "Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 #ldnews https://t.co/yRsSKYWcbX 面白い。メモリ断片化でフリーズって、昔はサーバの問題だったのに。"
Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 - ライブドアニュース
C++でOS自作 技術書典5 お05さんのツイート: "研究ではC#に対して実装してた。事前に対象プログラムにデバッグコードを埋め込むことで、ステートメント単位の実行、変数の値の取得などを行っていた。C++でやるとしたらLLVMでASTを取得して書き換えれば同じことができそう。"

小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社

クラッシュダンプ

MS

その他

usskim / ワトソン博士
Windbg を用いたリモートデバッグ - Web/DB プログラミング徹底解説
Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法 - Web/DB プログラミング徹底解説
「ReadProcessMemory 要求またはWriteProcessMemory 要求の一部だけを完了しました」と出てアップデートが出来ません - HASP
めもりーくりーなー 「ReadProcessMemory 要求または~」と出る?
Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
Windows:Windows Error Reportを使ってプロセスがクラッシュした際のダンプファイルを取得できるようにする設定方法
NKY-TECH. ソフトウェア開発部: プロセス ダンプ(ユーザー ダンプ)の作成
デバッガを接続していないアプリが不正終了した時にミニダンプを作成する方法
「その場で」と「あとから」と成功体験 - NyaRuRuが地球にいたころ
他プロセスのメインモジュールのエントリーポイントアドレスを取得したい。 • C言語交流フォーラム ~ mixC++ ~
i4shamrock - きままに情報発信
メモリダンプから様々な情報を抽出するためのオープンソースのツール : volatility
IBM MustGather: Windows でのアプリケーションやシステムハングの診断情報収集について - Japan
DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)
Windows 10 Active Memory Dumpとカーネルメモリダンプ
Windows 10 Active Memory Dumpとカーネルメモリダンプ
Windows XP/7/8/10のセッションとプロセス
Impact of Session 0 Isolation on Services and Drivers in Windows - Windows 10 hardware dev | Microsoft Docs

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "MiniDumpWriteDumpで特定の仮想アドレス範囲を除外したダンプを作るには、MiniDumpCallbackを用意して、ごにょごにょすれば可能なはずなのだが、どうも上手くいかないな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsgで例外ダンプが送られてきて解析したのだが、ダンプから推測した範囲ではNICにIPアドレスを100個以上付与している環境らしかった。(例外発生はそれに起因) ともあれ、ミニダンプは解析にとても役立つ。 https://t.co/Q9gepzbHfG"
Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ログ(スタックのhexデータ)から手動で関数フレームを辿る計算をしていた時代に比べると、統合環境から解析できるようになったのは、徒歩から新幹線くらいの差がある…(稀に脱線して使えないときは、想像力+手計算が有効な場合も)"
Windowsで不要なデータを除いたダンプを作成する
Windowsで不要なデータを除いたダンプを作成する
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、delete [] p; のようなコードで例外発生していた。 ダンプ解析経験者なら皆ご存じの通り、メモリ開放中の例外は解析が困難なことが多い。(原因箇所よりも後で例外発生のため、原因箇所が確定しづらい) ただ幸い今回は原因箇所と例外発生が近かったため、比較的スムーズに解析できた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ヒープではなくスタック侵犯だと、カナリア検出で例外発生となるはずだが、関数フレームも壊れている可能性が高いため、解析はかなり困難になる。 (とはいえ、(カナリアなしで)存在しないメモリ番地に飛んで落ちるよりはマシで、命令アドレスは一応見える、はず)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみにVCライブラリのカナリア処理は、例外ハンドラ登録(SetUnhandledExceptionFilterで登録した関数)に遷移せずに強制終了するコードになっている。 (IPMsg/FastCopyではここにメモリ上でパッチを当ててダンプを出してから強制終了するようにしている)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "といったことを書くと、未だにメモリ管理で消耗してるの?とか煽られる時代になった気も…いや、それはそれで正しいんですが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Wine上で作成されたミニダンプがVisualStudioでそれなりに見える。"

Minidump Files (Windows)
MINIDUMP_TYPE enumeration (Windows)
ReadProcessMemory 関数
クラッシュ ダンプの分析
メモリ ダンプ ファイルを生成する方法について | Ask CORE
OCA ミニダンプ ファイルをデバッグする - Windows 10 hardware dev
Using WER (Windows)
クラッシュが発生した場合に、Windows によって作成された最小メモリ ダンプ ファイルを読み取る方法
Windows でシステム障害と回復のオプションを構成する方法
クラッシュ後 Windows でメモリ ダンプ ファイルが保存されない
Windows Server 2003 でカーネル ダンプ ファイルや完全メモリ ダンプ ファイルを生成する方法
シンボルを使用したデバッグ
Windows シンボル パッケージのダウンロード - Windows ハードウェア デベロッパー センター
Symbol Files (Windows)
DBG ファイル
Windows ベース システムでは、NMI を使用して、完全なクラッシュ ダンプ ファイルまたはカーネル クラッシュ ダンプ ファイルを生成する方法

ブルースクリーン

本の虫: Old New Thing: ブルースクリーンを書いた人間は、まあ、僕さ
クラッシュ・ダンプ - マイクロソフト系技術情報 Wiki
@IT:Windows TIPS -- Tips:障害調査用のメモリ・ダンプを無効にする
一方、ふうえんさんちでは… メモリ異常によるブルースクリーンの対処法
WinDbg
デバッグにあると便利なシンボルとは? - Web/DB プログラミング徹底解説
DBGファイルを活用する方法
なかのん&マジックさんのツイート: "とりあえず、BSODはドライバが原因の場合は、どれがクラッシュしたのかの情報を明示して欲しい。「最近、追加したハードウェア、または更新したソフト」みたいな文言は、自動アップデートが当たり前な昨今、ナンセンス。"
なかのん&マジックさんのツイート: "BSODの画面上デザインを変更するときに、なんで、根本的に分かり易いエラー内容表示にしようとしなかったのか、割と不思議に思ってる。"

マルチスレッド

Windows C++ マルチスレッドアプリケーション デバッグ法 | Wander Alone Like A Rhinoceros Horn
めんどうくさいSQL Serverのデバッグ (1/2):EnterpriseZine(エンタープライズジン)
gdbでのマルチスレッド処理のデバッグや制御について - 千里霧中
(第22回)GDBのスレッド対応(その5:スレッド切替えとまとめ)
Debugging with GDB: 5.4 マルチスレッドプログラムの実行停止と実行再開
Debugging with GDB - 停止と継続

マルチプロセス

Debugging with GDB - GDB配下でのプログラムの実行
Debugging with GDB: 4.11 forkするプログラムのデバッグ
既に起動しているプロセスをgdbで制御する:Geekなぺーじ
マルチプロセスデバッグと資源割り当てで思いを馳せる | Everyday Deadlock

kdump

kdumpでダンプを取得する方法
26.2.3. コマンドライン上で kdump の設定 - Red Hat Customer Portal
第26章 kdump クラッシュリカバリーサービス - Red Hat Customer Portal
第1回「 kdump ノススメ」 | NTTデータ先端技術株式会社
カーネルダンプ出力設定メモ - Qiita
kdump
CentOS 6 で kdump の設定をしてみた | 黒ぶちメガネのblog
◇Kdump(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
kdump (Linux) - Wikipedia
Kdump - ArchWiki

POSIX

Solarisでいきましょか? -クラッシュダンプ(PANIC)-
ダンプ解析講座 ~第3回 ダンプの構造~ | VA Linux Systems Japan株式会社
Executable and Linkable Format - Wikipedia
Tips ELFフォーマットその1 ELFフォーマットについて
gdb - ELF core file format - Stack Overflow
Anatomy of an ELF core file - /dev/posts/
A brief look into core dumps
Man page of CORE
core(5) - NetBSD Manual Pages
How to read/write memory in an external process
Microsoft/ProcDump-for-Linux: A Linux version of the ProcDump Sysinternals tool

Android

Crash Fast: Androidのクラッシュに対するSquareのアプローチ
Google – www.developer-plus.com
xuningjack/JCrash: Android自定义异常处理模块(Based on KSCrash)

Java

システムのクラッシュ
JVMのクラッシュ
ポストモーテム診断ツール

ストレートマップ

魔術師見習いのノート

Wikipedia

Memory corruption - Wikipedia
コアダンプ - Wikipedia
Core dump - Wikipedia
クラッシュ (コンピュータ) - Wikipedia
ブルースクリーン - Wikipedia
Blue Screen of Death - Wikipedia

GitHub

pd: process dump
glmcdona/Process-Dump: Windows tool for dumping malware PE files from memory back to disk for analysis.

Twitter

その他

Fadisさんのツイート: "Linuxカーネルにクラッシュしたとき代わりのカーネルを上げてデバッグする仕組み(kdmup)があるようにsystemd死んだら死んだとき用systemdが上がってくる必要がありそうなヤツだ…"
ぶんちょうさんのツイート: "次鳥小屋作るとしたら、どう考えてもwebサーバーがsandboxのwsサーバーのアドレスと認証キー返すようにして、ブラウザはそこに繋ぎに行くだけの設計にするんだよな"
メモリダンプと模様が見える男|kamezawa.hiroyuki|note
Makoto Kato ︎︎さんはTwitterを使っています 「MSのPermier Supportだと一日数本ダンプ解析の依頼来てたけど (今はしらない)、ジュニアなエンジニアに解析させると、わからないのに頑張って調査しようとするから、あれをジュニアな人たちにやらせるのはそんなに良くないんだよな。個人的にはダンプ解析なんてジグソーパズルみたいなものですよ。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「NとかFとかHとかが中途半端に解析してきたログを見ると、半分以上見当違いな調査してて、まぁなんというか、センス問われる」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「というかWindowsでもそうだったけど、論理的な原因理由がないとクラッシュダンプの痕跡だけだと、直さないの普通じゃない?日本のパートナー企業はそういうところで変なこと言い出して揉める印象」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「もちろん政治的に揉めた案件とか、信頼できる人からの修正リクエストだと、必ずリジェクトされることではないが。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ただダサすぎな例外もあって、組織として (WinDiv) 、クラッシュレート下げろっていう指令がトップダウンで落ちてした時なんて、よくわからないワークアラウンドコードが入ったりしてた」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "WinFsp(Windowsファイルシステムプロキシ)、Windows版Fuseの一種らしいが、実用レベルで使えている印象。 https://t.co/eNNuJ4AUF7 (ドイツから、FastCopyに例外が出るという連絡で知った)"
Main | WinFsp
billziss-gh/winfsp: Windows File System Proxy - FUSE for Windows
Shirouzu Hiroaki(白水啓章)さんのツイート: "ダンプ解析したところ、WNetGetUniversalName が成功を返しているのにlpUniversalNameがNULLなのが原因。 WinFspの互換性が微妙に足りていないのか、WNet系に渡せないという意味で意図的にNULL?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ともあれ、こういう類の解析は嫌いじゃないなぁ。 次のバージョンから、ミニダンプも入れる予定。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「例外ダンプは無駄にスカスカなので、zlib圧縮化。 8MB -&gt; 0.9MBと約1/9くらいに。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「このバージョンから例外ダンプをzlib圧縮したので、1MB未満になることが多くなるはず。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「内部エラーが検出された時は、「内部エラーが発生しました」などを表示するより、安全にクラッシュさせてdumpを送ってもらった方が良いな。 (滅多にある話ではないけれど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラマーの特性として、クラッシュはつい禁忌しがちだけど、自前ダンプ機構を実装しているときは意識を変えたほうが良さそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「確実にクラッシュさせる方法についての議論。 Redisは *(char*)-1 = 'x'; らしい、、、正確には未定義かもだが、現実的なコードと。 https://t.co/1oQ24rkm74」 / Twitter
What is the easiest way to make a C++ program crash? - Stack Overflow
蒲地 輝尚さんはTwitterを使っています 「@shirouzu これほんとそうですね。例外をつかまえてエラーメッセージを表示するほうがユーザーにとっては親切かと思うんですが、クラッシュダンプがないと例外の本当の原因がわからないままになってしまう。そして開発者に通知されることもなくいつまでも残ってしまう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc そう思います。 Windowsだとダンプ出力の送付は、ユーザにおまかせ(メール等)という感じなのですが、Android/iOSは送信する仕組みがあるのでしたっけ。」 / Twitter
蒲地 輝尚さんはTwitterを使っています 「@shirouzu ユーザーが診断情報の提供に同意していれば、クラッシュ時の状況が自動送信されます。Androidはこれがないととてもデバッグしきれませんでした。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc それいいですね。Windowsにも搭載して欲しい…」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu @tkmc 法人なら WER が使える可能性がありそうですが、書籍「Advanced Windows 第5版 下 第26章 エラー報告とアプリケーションの回復」に書かれています。利用経験がないので、今でも使えるのかは不明ですが: Windows Error Reporting - Win32 apps | Microsoft Docs https://t.co/KaOtfJd86g」 / Twitter
Windows Error Reporting - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tenpoku1000 @tkmc ありがとうございます。 あのレポートシステムは、MSしか使えないかと勘違いしてました。」 / Twitter
蒲地 輝尚さんはTwitterを使っています 「@shirouzu @tenpoku1000 これでデバッグが捗る! ^^」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ だと __debugbreak() を使うのが良いかも。 (例外コードが int3 ... 0x80000003 になり、SEGVの 0xC0000005 と間違わずに済む) https://t.co/tQf6IPaSEl」 / Twitter

@vyv03354

vyv03354さんのツイート: "@piro_or Cu.crashIfNotInAutomation(); で、Mozillaの自動テスト環境以外なら「安全に」(メモリ破壊を起こさず)クラッシュさせられます。"
vyv03354さんのツイート: "Firefox 62からabout:crashparentとabout:crashcontentが追加されて、さらにお手軽にクラッシュさせられるようになりました。 https://t.co/VqsGtkKKYQ… "

@rockridge07

Rockridgeさんのツイート: "Firefoxのクラッシュ率を分析・比較するMission Controlは、現在も開発中。2018年後半に正式版へ。参照:https://t.co/qXKKoCRgB0 / “Mission Control update” https://t.co/LLhyatSRac"
Rockridgeさんのツイート: "Mozillaが測定しているFirefoxのクラッシュ率は、検知したクラッシュ数をアクティブな利用時間で割って算出しているらしい。Android版は利用時間が少ないため、デスクトップ版と率を比べるのが困難だという。 / “Fir…” https://t.co/j9zbp45uKr"
Rockridgeさんのツイート: "Mozillaはユーザーからのデータ収集を必要最小限にとどめ、データを収集する場面ではユーザーに通知し、収集したデータはきちんと保護するという。 / “Lean Data Practices — Mozilla” https://t.co/R2QpFKzoGn"

@satoru_takeuchi

satさんのツイート: "「ハードが悪い」って、言葉にすると簡単なんですが、サポートからしたら重い言葉です。直接ハードが犯人である証拠は掴みづらいので、だいたいは「ソフトではありえない」という方法で証明する必要があります。これがかなりつらい"
satさんのツイート: "さらにハード屋さんに通じる言葉(たとえば論理CPU番号でなくLAPIC ID、とか)でボールを渡さなきゃいけない、とか。その後ハード交換しても再発したら交換したハードの原価と工賃をドブに捨てることになりますし、「おい、話が違うやんけ」となって泥沼"
satさんのツイート: "体感ではカーネルパニックの殆どはソフト(カーネル)バグで説明付きましたね。メモリを含む「ソフトではありえない。これはハードだな」ってケースはかなり珍しい"

@jeffi7

Taisuke 'Jeff' Inoueさんのツイート: "これが組み込みになると「ごめん、ハードやったわ、リメーク、リメーク。あ、ワークアラウンドこれね。」ってのがそこそこの頻度であるので(ry… "
Taisuke 'Jeff' Inoueさんのツイート: "スマホとか競争が激しくて先を争って新しいハードを積むやつは、チップセットもボードも、従ってBSPやドライバも、ほんでOSもみーんな新規だったりするので、枯れてるのはカーネルくらい。低レベルがおかしいってなったら、ハード屋とソフト屋ががーっと集まって一緒にデバッグしてましたね。… https://t.co/PsrMiMaTgX"

@d_toybox

sanonosa(インフラエンジニア)さんのツイート: "経験的に、OSのブルースクリーンやカーネルパニックはメモリ故障起因が多い。CPU使用率いきなり100%継続はストレージまわり起因。NIC link upがいきなり1Gbpsから10Mbpsとかに落ちるのはLANケーブル不良起因。この手の話しをうまく本に収めたいけどうまく書けなくてつらい。"
なかのん&マジックさんのツイート: "私の経験では、BSODはドライバのバグも多い。"
なかのん&マジックさんのツイート: "クラッシュしてる理由は納得だけど、nsIFrameのアドレスが全ビット1になってるの、どういう状況なんだっけ。 / [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report https://t.co/O2BygMnkGZ"
[@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report - Report ID: 1890d652-b339-4bf5-bfa9-b44560190605
Makoto Kato ︎︎さんのツイート: "ハードウェアエラーによるビット化けかUse After Freeかと… "
なかのん&マジックさんのツイート: "確かnsIFrameのインスタンスはPresShellが用意してる広大なエリア上に確保されるんで、delete時にわざわざビット立ててるかもしれないんですけど、そのコードをまだ発見していないんですよね(セキュリティのために元データを消してしまう話があったような)。… https://t.co/eClb9YWEoL"

@mhiramat

まさみさんは語りたいさんのツイート: "うッ・・・新人の時に最初に担当したカーネルロックアップ(しかもしばらくしたら復帰する)が、どうやって調べても当時最新技術だったHTが絡んでいたのではないかというトラウマが。(タイミングよく全スレッドでSpinlock取り合うと、関係ないロック同士でも動作がめちゃくちゃ遅くなる)"
まさみさんは語りたいさんのツイート: "まあ、あんなにハードウェア由来の問題だったのはあとIA64サーバで起きたロックアップ問題ぐらいだし、初物のハードウェアは老舗であっても問題が多いっていうことですね。"

障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | 開発手法・プロジェクト管理 | POSTD
Go言語のトラブルシューティング機能 // Speaker Deck
エラーレポートツール - LibreOffice Help
暗号屋から見たEメールの死について(EFAIL解説) - そんなことはさておいて
Webシステムへのアクセス集中時に処理要求を待ち行列で管理するWebアクセス制御システム「WebLobby」を発売|日立ソリューションズ((旧)日立システムアンドサービス)
iOS13にバグが多い理由、元Appleのソフトウェア技術者が語る - iPhone Mania
Linux 版の Sysinternals ProcDump を試す (1) - hibomaの日記
Linux 版の Sysinternals ProcDump を試す (2) - hibomaの日記
Windows の予期しない再起動が発生した原因について | Microsoft Docs
イベント ID 41 に関する高度なトラブルシューティング-"システムは、最初に正常に起動していない状態で再起動しました" | Microsoft Docs
メモリダンプの模様とはどのようなものなのか(入門編) - 覚書

SEH

MS

例外処理 (x64)

例外処理 (x64)

例外処理とデバッガー サポートのためのアンワインド データ

例外処理とデバッガー サポートのためのアンワインド データ
構造体 RUNTIME_FUNCTION
構造体 UNWIND_INFO
構造体 UNWIND_CODE
チェーン アンワインド情報の構造

アンワインド プロシージャ
言語固有のハンドラー

MASM のアンワインド ヘルパー

MASM のアンワインド ヘルパー
生の擬似演算
MASM マクロ
スタック割り当て
動的なパラメーター スタック領域の構成
関数の型
malloc アライメント
alloca

C でのアンワインド データの定義

Visual C++ での例外処理
C++ 例外処理
構造化例外処理 (C/C++)
Structured Exception Handling Functions (Windows)
Structured Exception Handling Structures (Windows)
RtlUnwindEx function (Windows)
Masaru IritaniさんはTwitterを使っています: 「今日は同僚の方に Stowed Exception について教えてもらいました。記録されたときにはもう居ない、幽霊のような例外ですね。運が良ければ手掛かりが掴めるかも、と…… https://t.co/mQ5hmLZ8KL」 / Twitter
Stowed Exception C000027B | Inside Show | Channel 9

x64

Vectored Exception Handling

Vectored Exception Handling (Windows)
Using a Vectored Exception Handler (Windows)
Windows ベクトル化例外処理 (ベクタ例外処理, VEH) - Web/DB プログラミング徹底解説
GCとか継続とか例外処理とか | 日々の反省1
W64.Shruggle.1318 | シマンテック 日本

Exploring the x64
www.ffri.jp/assets/files/research/research_papers/psj10-murakami_JP.pdf
16.2. win64 Structured Exception Handling
X64 の TrapFrame は信用できない? - Beyond the Basics - Windows Debugging & Troubleshooting Blog - Site Home - TechNet Blogs
japanese.sugawara-systems.com/systemverilog/movement_to64.htm
X64 Deep Dive - moon-walker's tech blog
Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
Makoto Kato ︎︎さんのツイート: "dwarfいらず"

x86

SEHOP・EMET

Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP – Security Research & Defense
SEHOP per-process opt-in support in Windows 7 – Security Research & Defense
SEH_Overwrite.pdf
EMETReport.pdf
Application Compatibility Database - Google 検索
www.ffri.jp/assets/files/monthly_research/MR201307_Investigation_into_EMET4.0_JPN.pdf
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~番外編SEHOP~ « 他人の空似
EMET 4.0/4.1のSEHOPおかしくね? - Togetter
Nothing but Programming: SEH and SEHOP 現在の疑問
SEH and SEHOP 現在の疑問 とりあえず解決? | JugglerShu.Net
WindowsでEMETを回避するシェルコードを書いてみる - ももいろテクノロジー
Microsoft、脆弱性緩和ツール「EMET」の開発を終了 - 窓の杜
EMET の新しいバージョン V.2.1 をリリースしました! – 日本のセキュリティチーム
EMET は Windows 10 Defender Exploitation Guard へ統合されます – 日本のセキュリティチーム
EMET II のさらに先へ – Windows Defender Exploit Guard – 日本のセキュリティチーム
Enhanced Mitigation Experience Toolkit - Wikipedia
How to enable Structured Exception Handling Overwrite Protection (SEHOP) in Windows operating systems
Bypassing SEHOP
Bypassing SEHOP

/SAFESEH (安全な例外ハンドラーがあるイメージ)
C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション - Glamenv-Septzen.net
15.2. win32: Safe Structured Exception Handling
Nothing But Programming - SEH
A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997

C++

C 関数を通過する例外

herumiさんのツイート: "yupo5656さんの記事は大昔読んだことあります。 でも何年か前に試したときは動くようになってました。 https://t.co/dlq1b8gKsS 今試したらyupo5656さんのコードも落ちないようです(gcc-7, clang-6.0)。 https://t.co/XH6ke51Hnr"
misc/cpp/throw_in_c at master · herumi/misc
yohさんのツイート: "#nakamecpp で @herumi さんが言及してたC関数を例外通過する件 https://t.co/htNaOeUAVO https://t.co/pNgUzZwXUe GCCでも明示的に-funwind-tables指定が要るような気はするけどどうだろう"
herumiさんのツイート: "Visual Studio 2017だと/EHaオプションでCの関数内で呼んだC++関数のthrowをcatchできました。"
herumiさんのツイート: "どの程度のcallbackを想定されていらっしゃるのかわかりませんが、 https://t.co/dlq1b8gKsS のu.cpp, v.c, w.cpp程度のcallbackは動きました。 https://t.co/mKqYU5BETm"
misc/cpp/throw_in_c at master · herumi/misc
にゃははー仙人さんのツイート: "動きましたというのはabortせずにということですよね?考えてたのはまさにextern "C"でリンクするのではなく、関数ポインタを渡すようなものです… "

Twitter

Fadisさんのツイート: "C言語のerrnoはその場で見なければ失敗が無視されるから拾っていなければ直ちに不具合だけど、C++の例外をその場で拾うべきかどうかは、その場で起こった問題からの回復が可能かどうかに依る。bad_allocする状況は多くの場合回復不能な状況だからそのままabortするしかないケースは少なくない"
Fadisさんのツイート: "あと、bad_allocを拾って標準出力にデバッグ情報を書こうとするマンは、メモリが全く確保できない状況でそれを行うと何が起こるかについて少し考えてみてほしい。bad_allocが飛んできた時にできることは本当に少ない"
Ryou Ezoeさんのツイート: "メモリ確保失敗したときにできるのは実質terminate()だけなんだからterminateしようぜ、メモリ解放とかはアロケーターに仕込んどくべきだろとウォルターブライトが言っていたな。… "
オスツ🍣さんのツイート: "うおおおお、2 週間ぐらい超悩んだ、なぜか C++ の例外が AArch64 で GCC 5/6 では動かなくて、7 では動くという問題。最終的に __builtin_eh_return が異常挙動という所まで追い詰めで、GCC のソース差分見て、7 では omit-frame-pointer 時でも強制的に fp を埋め込むというハックが入ったことを発見"
Ryou Ezoeさんのツイート: "例外を一部の場合にゼロオーバーヘッドにすりゃお前ら使うだろという提案。 https://t.co/2nH5hQlHyd"
p0709r1.pdf
Ryou Ezoeさんのツイート: "例外がゼロオーバーヘッドの原則を満たすようになれば無効化されないしみんな使うだろうという考えのもと、特別な整数型ならばreturnで戻してif文で比較するのと同じパフォーマンス特性にしてしまおうという提案。"

C++ 例外処理と構造化例外処理 (1) - Web/DB プログラミング徹底解説
C++ 例外処理と構造化例外処理 (2) - Web/DB プログラミング徹底解説
VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo)
How a C++ compiler implements exception handling - CodeProject
LLVMで例外を実装するには - 近&況
Exception_basic_struct
本の虫: C++に提案されている静的例外

Wikipedia

Microsoft-specific exception handling mechanisms - Wikipedia
例外 - Wikipedia
コールスタック - Wikipedia
例外処理 - Wikipedia

Twitter

渋川よしきさんのツイート: "これ、昔から超思ってた。例外、存在自体が矛盾してるしてる。 https://t.co/9CqtCKFZWh"
渋川よしきさんのツイート: "例外を「設計」した段階でそれは「例外」ではなく「想定の範囲内」になってしまうという論理的矛盾。"
渋川よしきさんのツイート: "例外処理の説明の時に、だいたい「例外==想定外」とか書かれていることが多いのが良くない。正常ケース、非正常ケースなら分かる。"
渋川よしきさんのツイート: "例外について考えていたこと、例外のパラドックスという名前がついていた。 https://t.co/6ocDMQZx5f"
Fadisさんのツイート: "例外はその例外からの復帰が可能なレイヤーでcatchするんだよ。握り潰して失敗をなかった事にされても困るし、起こった問題から復帰させるべきレイヤーを超えて中の実装を知らないレイヤーに例外が届いても困る。本当に誰の手にもおえない例外が飛んだ場合は、そのままabortさせるのが多くの場合正しい"
Fadisさんのツイート: "あと正常系で例外が飛ぶような作りにしてるとgdbを使う時に発狂するから例外は文字通り例外的な状況で飛ぶようにしておいた方がいい"
Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、VC6だとSEGV系もtry/catch出来ていた記憶があるのだが、少なくともVS2017では__try/__exceptを使ったWin32構造化例外を明示指定しないとキャッチできない様子。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SEGVが例外の枠組みで処理できるのは、一部状況ではとても助かる。 gccの場合、-fnon-call-exceptions で同様の動作が可能。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、try/catch + -fnon-call-exceptionsの場合、throw "sigsegv" 等を記述したsigfuncをSEGV等に紐づけておく必要あり。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017ではコンパイルオプションの /EHa、GUIだと「C++の例外を有効にする」を「はい - SEHの例外あり」を選べば良かったらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「一部状況」というのは、こちらの手出しできない、標準モジュール内SEGVに暫定対処したいとき。 (例えば、INetFwProductというOS標準COMモジュールの呼び出しが、稀な環境で内部SEGV発生とか)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2005以降だったか、スタック破壊を検出した場合、CRT(の __raise_securityfailure関数)で、登録ハンドラを意図的にキャンセル(例外ハンドラをNULLに再セット)して強制終了させている話ですね。… "
yoh2さんのツイート: "WindowsはスタックオーバーフローでC++の例外と統合された構造化例外すっ飛ばしたり、MFCのCStringがprintf系の %s に渡されても動いたり、thisがnullptrで非virtualなメンバ関数呼び出せたりとなかなかやりたい放題ですよねw"
yoh2さんのツイート: "Windowsのスタックオーバーフローで例外すっ飛ぶってやつから、スタックを消費する関数は決してnoexceptを付けられないんじゃないかという疑問もわきそうだけど、これに関する私の見解は以下の通り。 その例外を考慮したい: noexcept は諦めてね 考慮しない: SO時は未定義と覚悟してnoexcept付けよう"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これは g++ 等でも同じではないのかしらん? > thisがnullptrで非virtualなメンバ関数呼び出せたり"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、__raise_securityfailure(staticリンク)の一部に動的にnopを入れて、キャンセル動作を抑止している。(なお独自ハンドラはMiniDumpを吐いて終了するもの) https://t.co/nBDLF22Egp"
FastCopy/tmisc.cpp at 72655443c775af09a69cc2fd2aa6a602b4d987c9 · shirouzu/FastCopy

C#機能: Deferredエラー処理
構造化例外処理と UnhandledExceptionFilter - Web/DB プログラミング徹底解説
構造化例外処理 ~ 例外情報の取得 - Web/DB プログラミング徹底解説
Super Technique 講座~longjmpと例外
Center CLR Try!開発 #2 – kekyoの丼
Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link)
Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
SHIROUZU Personal Log(2016-10-18)
won't fix: llvmとrustにおけるWindows/aarch64のサポート
スタックオーバーフローのハンドリング (Stack Overflow Handling)
構造化例外のフィルタ処理(C++) - RAD Studio
.NET非同期処理(async-await)と例外の制御 – kekyoの丼

左再帰

6.pdf
手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
4.pdf
compiler_04.pdf
左再帰 - Wikipedia
再帰下降構文解析の間接左再帰の除去方法について具体的な方法... - Yahoo!知恵袋
chainl の正体 - ksmakotoのhatenadiary

浮動小数点数

その他

ビットで表す数字の世界~浮動小数点編~
浮動小数点数について本気出して考えてみた - 一から勉強させてください( ̄ω ̄;)
【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回 | 日経 xTECH(クロステック)
浮動小数点数型と誤差
浮動小数点計算の基本的事実 – 「浮動小数点数は実数ではない」ということ | POSTD
浮動小数点
浮動小数点数は実数ではない | プログラマが知るべき97のこと
電子工作
浮動小数点数型
浮動小数点数の内部表現(IEEE)
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
浮動小数点数内部表現シミュレーター - instant tools
複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
PEZY-SC2上における倍々精度Rgemmの実装と評価
半精度浮動小数点(2バイト)と単精度浮動小数点(4バイト)のC言語での変換方法を調べる - cvl-robot's diary
非数と無限大のメモ | 可音月堂
浮動小数点数の等値判定 - fujieda's tech blog
Comparing Floating Point Numbers, 2012 Edition | Random ASCII – tech blog of Bruce Dawson
Ryu: Fast Float-to-String Conversion
-OfastはNaNチェックを無効化する - in neuro
エラーフリー変換の紹介 および FastTwoSum アルゴリズム の紹介と証明 -- glibc のコードを読むための参考に -- - 小清水さんとコンピューター数学
作る側の気持ちで理解する浮動小数点数 - in neuro
QEMUはどのように浮動小数点命令をエミュレートしているのか - FPGA開発日記
Binary Translation型エミュレータを作る(浮動小数点演算の検討) - FPGA開発日記
Binary Translation型エミュレータを作る(浮動小数点演算の実装) - FPGA開発日記
Binary Translation型エミュレータを作る(softfloatクレートの実装変更) - FPGA開発日記
ちょっとだけ怖い三角関数のはなし

言語

PHP: 浮動小数点数 - Manual
Go言語の浮動小数点数のお話
マシンの中のリアル : Dの浮動小数点数 - プログラミング言語 D (日本語訳)
Java 入門 | IEEE754 浮動小数点数表現
JavaScript:float32による小数演算最適化 | ψ(プサイ)の興味関心空間
ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記

strtod

だめぽラボ@技術書典9さんはTwitterを使っています 「そのうち「十進小数から二進浮動小数点数への変換が(各種処理系で)何桁まで正しく行われるか試してみた」みたいなやつをやる必要があるな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数型がどっちのビット列表現を使っているか判断するプログラムも書きたいね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「0x1.00000000000008pN の形の数の正確な十進表記と、それを若干ずらした物を手元の環境のstrtodに与えてみたが、用意した例については全て正しい丸めが行われた。意外」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「普通に十進変換しても800桁未満にしかならないので、もっと末尾の 000...0001 を長くして文字列長を稼ぐか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「MacもLinuxも(libcの)strtodが真面目に実装されすぎてて面白くねえ。一方MSVCは極端なケースで間違えてくれた(規格準拠の範囲ではある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Cのstrtodは結構真面目に実装されていることがわかったので、他のプログラミング言語処理系も試すべきかな。といっても内部的にCを呼んでいたら同じことだけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数周りの関数が「真面目に実装されすぎてて面白くねえ」ってひどい言い草だな」 / Twitter

atof

文字列少数点数表記を IEEE754 倍精度浮動小数点数にエンコードする方法|Sukesan1984|note
きしもとさんはTwitterを使っています 「atof に関してはラスボスが居てですね……そこまで要求されることは普通は無いにしても https://t.co/bhnYhi2qdV」 / Twitter
Gauche:浮動小数点数をどこまで読むか
きしもとさんはTwitterを使っています 「このパターン、atof が実のところ一番簡単な use case で、2進小数でちょうど境界になる場合、「厳密に計算した後、正しく丸めた」結果を得るには、関数によってはどれだけ計算が必要か予め決められないとして、Table Maker's Dilemma と、カハン先生によって命名されています https://t.co/c2RfXrW9eB」 / Twitter
Introduction to the Table Maker's Dilemma
きしもとさんはTwitterを使っています 「@ksmakoto このテーブルというのはイケアで売ってるような木工とかのことではなくて、「数表」のことですが、余談ですが以前、数表に関してこんなツイートを見ました(2重丸めに注意という話)」 / Twitter

dtoa.c

島鉄雄さんのツイート: "libc を使わ(え)ない環境で strtod (古くは atof)が必要になった場合に、ネットにある GPL じゃない実装を比較検討したところ、1つ以外全部 glibc の strtod と結果が合わなかった。(要するに精度が悪い) 以下のページの this code のリンク先にある dtoa.c が唯一の解だね。 https://t.co/6R2VfOHHAI"
How strtod() Works (and Sometimes Doesn't) - Exploring Binary
https://www.ampl.com/netlib/fp/dtoa.c
rounding.pdf
島鉄雄さんのツイート: "コンパイルする時は $ gcc -c -DIEEE_8087 dtoa.c のようにする。 紹介したページの解説をみたり、this paper のリンク先の論文をぱっと見したりすると、strtod は素人が実装出来るしろもんじゃない事が良く分かる…"
島鉄雄さんのツイート: "Ruby も 2019/2 に strtod を dtoa.c のに変えたようだ。 (勿論 libc の strtod が有ればそっちを使うはず) https://t.co/J8Amrv3zv7"
History for missing/dtoa.c - ruby/ruby
島鉄雄さんのツイート: "Windows の場合は libc が msvcrt.dll になるけど、strtod の挙動は微妙に違うようだ。 なので、マルチプラットフォームなインタプリタを実装している場合は dtoa.c のものに統一する方がいいだろう。 インタプリタは strtod を使いまくるので、複雑な計算をした場合に OS 毎に結果が違う事態を防げる"
島鉄雄さんのツイート: "Rust や Go はセルフホストなので、strtod のような処理を自前で実装してるので見たところ、文字列→10進浮動小数(いわゆる decimal)→2進浮動小数(通常の double)としているようだった。 (ちなみに Rust のコードはぱっと見訳が分からないw Go は atof.go と物凄い分かり易かった) 続く"
島鉄雄さんのツイート: "先の論文も decimal → double へ変換する際の誤差を減らすというもののようだし、結局以下の事が言えそう。 ・double だけ使って実装された strtod は全てなんちゃっての可能性が高い ・セルフホストする言語を実装するには decimal を実装した方がいいだろう(浮動小数のパースに使う為)"
島鉄雄さんのツイート: "dtoa.c もざっと見てみると、必要最小限の10進浮動小数(のような?もの BigInt)が実装されていた。"

例外

Microsoft Visual c 浮動小数点の最適化 | Microsoft Docs
cfenv - cpprefjp C++日本語リファレンス
浮動小数点例外Cなぜそしてそれは何ですか。 - コードログ
HiPEとclangの浮動小数点例外 - Qiita
浮動小数点例外 - 数理計画用語集
浮動小数点例外
次のプログラムをコンパイルしたところ、”浮動小数点演算例外です... - Yahoo!知恵袋
浮動小数点例外の処理
浮動小数点例外処理 (-fpe) オプションの使用
実行したところエラーがでました - プログラマ専用SNS ミクプラ
概要: 浮動小数点例外の制御
浮動小数点環境 - cppreference.com
浮動小数点演算ではまった話 - bkブログ
整数除算のオーバーフローについて - やた@はてな日記
浮動小数点の最適化
WGC1 第4章 浮動小数点表現 4.6 浮動小数点の例外 - みちしるべ
Exception handling
ieee - 浮動小数点例外モードを設定

用語

浮動小数点数(フドウショウスウテンスウ)とは - コトバンク
浮動小数点演算(フドウショウスウテンエンザン)とは - コトバンク
IEEE 754 ‐ 通信用語の基礎知識

IEEE754

IEEE754 について
あちゃぴーの自転車通勤: 32-bit float IEEE 754 浮動小数点数について
IEEE754について。モダンなコンピュータはどのように少数を扱っているのか - Yabu.log
IEEE 754-2019 - IEEE Approved Draft Standard for Floating-Point Arithmetic
黒澤亮二さんはTwitterを使っています: 「浮動小数点の仕様IEEE 754が少し改訂されたらしい。2008年にも改訂されていて、ほぼ10年ごとのサイクル?2008ではdecimal floatの追加があったようだが今回はそこまで大きい追加はなさそう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「2の補数表現以外の符号付き整数表現をするハードウェアは滅びたと思っていたが、IEEE-754の指数部ってoffset binaryなんだな。」 / Twitter
dif_engineさんはTwitterを使っています 「IEEE754はよく考えられた規格で,一見不合理だったり冗長だったりするように見える規則を捨てて実装するとたいていどこかおかしくなる. (高速化を目的として多くのチップメーカーがIEEE754の変形実装をしたけど,それで評判を落としたことが多い).」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@dif_engine だが一番普及してしまってるintel x87がカハン教授が加入する前の草案で見切り発車してクソ実装してしまったから。速い代わりに計算精度低くて、カハン教授のコンプラ試験ソフトでボロカスにエラー出る。」 / Twitter
dif_engineさんはTwitterを使っています 「Kahanさんがこの規格を作るのに相当貢献していたはず.Kahanさんの研究を無視した浮動小数点演算のクソ実装をするとこんなふうに(https://t.co/fwqZO7ttCV)処刑されます.」 / Twitter
JAVAhurt - JAVAhurt.pdf
IEEE 754-2019 浮動小数点の仕様書を購入 - FPGA開発日記
IEEE754-2019 メモ: 竹下世界塔の計算機よもやま話
セクスィ・ナカナカピエロさんはTwitterを使っています 「@Hishinuma_t @7danmoroboshi 現状の浮動小数点の精度 IEEE float64で不満がある方はdouble-double型で実装されたもの(long double)を使うのではなくIEEE float128 (binary128)を使うのが良いかと。浮動小数点の精度を上げるために積むのは徳ではなく、レジスタのビット数ですかね。笑。」 / Twitter
電子計算機の沼さんはTwitterを使っています 「訳:お前俺に浮動小数点の基礎を講釈した挙げ句,Double-double型じゃなくてIEEE754 binary128を勧めてくるとかどうなってんだ それとレジスタのビット数なんか積めるわけねえだろ何考えてんだ」 / Twitter
電子計算機の沼さんはTwitterを使っています 「&gt; double-double型で実装されたもの(long double) そもそもlong doubleはdouble-doubleじゃねえよ」 / Twitter
にゃんにゃん@日本に帰りたいさんはTwitterを使っています 「@NakanakaPierrot @Hishinuma_t float128をハードウェアサポートしてる環境がほとんどないからdouble-doubleを使うんですが、、、」 / Twitter

x87

Twitter

hsjoihsさんのツイート: "IEEE754の乗算は交換法則の方は成り立つんだっけな(結合法則はそりゃ成り立たない)"
uint256_tさんのツイート: "IEEE754, Nan boxing すごいってくらいの知識しかない"
Zıᴘʜıʟ Sʜᴀʟᴇıʀᴀꜱ ╹ω╹さんのツイート: "交換するけど結合しないって数学的には珍しい?"
tkr@合格0,不合格6,発表待ち1さんのツイート: "そういえば前2chで「浮動小数点数は何が起きるか分からないから精度いらない場面でも絶対使うな」って騒いでるやついたなぁ 乱数じゃないんやぞ…"
白山風露@ᗣᘎᘄさんのツイート: "8087互換FPUは状態を内蔵しているので「何が起きるか分からない」はある意味正しい。 丸め方向やゼロ除算例外の扱いなどが変更される可能性があるので本当に厳密に使うならチェックしないといけない。… "
tkr@合格0,不合格6,発表待ち1さんのツイート: "状態持ってるまじ?"
tkr@合格0,不合格6,発表待ち1さんのツイート: "IEEE754なら大丈夫だよね?"
白山風露@ᗣᘎᘄさんのツイート: "まあゼロ除算はそもそもC++だと未定義だけど"
白山風露@ᗣᘎᘄさんのツイート: "IEEE754の規格からは外れていないが、そもそも規格に丸め方向等が複数種類存在し、その切替をFPU内部のフラグで行うことができる… "
tkr@合格0,不合格6,発表待ち1さんのツイート: "え、これまじですか 規格っていうから必ずこうなるって決まってるのかと…… "
yuyabuさんはTwitterを使っています: 「https://t.co/0HWDwOgyrz AArch64(arm)はsin,cosとか計算する機械語あるのか。java 11以降のmathではこいつら(CPU専用命令)を直接使うらしい。 #javareading」 / Twitter
Simple ARM NEON optimized sin, cos, log and exp
yuyabuさんはTwitterを使っています: 「intel系のCPUにはsin,cosなどを計算する命令は8087などにあるらしいけど、普通に計算した方が早いのでgccなどはfpuなどを使わずにソフトウェア的に計算しているらしい。」 / Twitter
FadisさんはTwitterを使っています 「LLVMでMMX intrinsicsをSSE2に落とす改良が提案されている。MMXはx86のSIMD命令で、SSEと異なりx87とレジスタを共有する。この為MMX使用後片付けずにx87を叩くと動かないが、LLVMは容赦無く命令を入れ替えるので片付け前にx87が使われない事を保証出来ない問題を抱えていた https://t.co/dpDlvvk6eK」 / Twitter
LLVM Developers Looking At Phasing Out Intel MMX Support - Phoronix
ママレモンサワーさんはTwitterを使っています 「まあMMX intrinsicsからSSE2を吐くようにしようぜって今さら言われたら、もうサポート自体やめるわってなるよな…」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「sinやcosの精度絡みでは、x87 FPUにはsinやcosや底2の指数関数・対数関数を計算する命令があって、あれらは精度が実装依存っぽいので再現性が必要なら使っちゃダメな系のはず(同じ命令列を実行しても異なる結果が返る可能性がある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「実際、Intel SDMにはPentiumでそれらの命令の精度が向上したようなことが書かれている(つまり、それ以前のCPUとは異なる結果が返ってくる)。AMDは知らん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SSE系には逆数や平方根の逆数の近似を返す命令があるけど、相対誤差しか規定されてないっぽいし、あの辺もCPUによって返る値が違う可能性のあるやつかな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「(異なるマシン間での再現性の観点でいうとx87 FPUは煮ても食えない(Control Wordをいじったとしても非正規化数の計算にコーナーケースがある)ので初手切り捨てが最善ですね…)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語での浮動小数点数の評価方法(FLT_EVAL_METHOD周り)をテストするやつを書いた。x87 FPUが使用されると出力が変わる系のやつ。 https://t.co/nSSKGD6jZS」 / Twitter
floating-point-test/eval-method.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「これまでに書いた浮動小数点数周りのテストコードがあちこちに散らばっているのをどうにかしたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「IEEEで例外発生の有無が実装に委ねられているやつ」をテストするコードも追加した(FMA(0, ∞, qNaN)でinvalidが発生するかどうかと、アンダーフローの判定が丸めの先か後か)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「NaNのペイロードの伝播の仕方を確認するやつも書いた。入力の両方がNaNだった場合に常に左側を返すやつ、演算が可換になるように両方見て決める奴、常にペイロードが0なNaNを返すやつなどがある https://t.co/XD0oBQOScj」 / Twitter
floating-point-test/nan-propagation.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUの呪い [C言語] on @Qiita https://t.co/bLfIx7zR7t」 / Twitter
x87 FPUの呪い - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「Javaのstrictfpは何のために存在するのか、C言語のFLT_EVAL_METHODは何を表しているのかがわかる記事を書きました: https://t.co/w3YBXz2foh」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUで倍精度演算がアレなのはこの前の記事に書いた通りだけど、x87 FPUを拡張したような感じのItaniumでは命令ごとに精度を指定できたりFPSRで指数部の範囲を拡張するか選択できたりしてそういう「呪い」はないという認識で良いのかな」 / Twitter

サイン、コサインをインテルの CPU で計算すると少しバグっているらしい – tomeapp
x87 FPU で厳密な単精度演算を行うコスト - NyaRuRuが地球にいたころ
x87 FPU で厳密な単精度演算を行うコスト (2) - NyaRuRuが地球にいたころ
Shiro Kawaiさんのツイート: "#tcfm https://t.co/9L8G8XZaBY 第10回 IEEE754の数学関数は数ULPくらいの誤差は許されていたような気がする。 sqrtは基本演算扱いで完全に指定されてたかもしれない。"
Rui Ueyamaさんのツイート: "浮動小数点数フォーマットは最近学校で習ったので2^-1022近辺の浮動小数点数は特別にバグりやすい罠があるというのをすぐに理解してしまった。"
スタックマシン ‐ 通信用語の基礎知識
Tips x87 FPUプログラミング
ロボ太さんのツイート: "そうそう、x87命令とかSSEについてもちょっとだけ書きました。なぜx86に64ビットの浮動小数点レジスタが無いかとか、long doubleが80ビットな理由とか・・・。あんまし深掘りしてないけど・・・ https://t.co/eX0vwsSaB0"
sevendayshpc/README.md at master · kaityo256/sevendayshpc
Island Life - 拡張浮動小数点数の扱い

SSE

鈴木友紀さんはTwitterを使っています 「なぜ Legacy SSE 命令は YMM/ZMM の上位を保持する仕様にしたのか調べていたら Microsoft の所為ということになった。 assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow https://t.co/gXCIIKLeGF」 / Twitter
assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow
鈴木友紀さんはTwitterを使っています 「Using Floating Point or MMX in a WDM Driver https://t.co/nfoEiV6XFq」 / Twitter
Using Floating Point or MMX in a WDM Driver
だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMのCVTTS[SD]2SIの説明に "When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register." って書いてあるけどこれは間違い?(常にtruncateするはず)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「_mm_cvttsd_si32 (SSE2)と_mm_cvttsd_i32 (AVX512)の違いがわからないんだが、命令のエンコーディングが違うみたいなやつか?でもclangで-mavx512fの下ではどっちもvcvttsdsiになっているように見える」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのintrinsicsなんもわからん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Apple Clangは最近のmacOS上では自動で-msse4.1が有効になるっぽい(ceilとかfloorとかの関数が1命令にコンパイルされる)」 / Twitter

AVX

AVX512

SIMD 最適化

Hideyuki Tanakaさんのツイート: "それはそうとavx512の命令セットはなんであんなグッチャグチャになってしもたんや?まあx86自体がグッチャグチャやという話もあるが"
Tsukasa #01 [要出典]さんのツイート: "opmask というある意味では GPU 的な演算制御を手動でやるために用意されたとしか思えない仕組み。"
Hideyuki Tanakaさんのツイート: "まあ要するにそういうことだよなあ(´・_・`)…てかもうこれ人間が書くんじゃなくて、#pragma omp simd とか、オートベクタライズ期待とかそういうの前提なんじゃないのか。コンパイラ死にそうだけど"
Tsukasa #01 [要出典]さんのツイート: "手で書くことはもちろん可能だけど、ある程度以上はコンパイラ任せに……したいんだろうなぁ (にしては opmask の演算命令の中に不穏なものがあるけど)。"
Hideyuki Tanakaさんのツイート: "絶対インテルコンパイラ以外ではまともな性能出ないことが目に見えててキビC~"
Hideyuki Tanakaさんのツイート: "少なくともインテルコンパイラではまともに動いてるのかは気になるところ(´・_・`)"
Hideyuki Tanakaさんのツイート: "いやそれかインテルコンパイラ開発してる人からのこれもないとまともにコード生成できひんでっていう命令がごっそり入った結果あんなグッチャグチャな命令セットになったという可能性もある"
Hideyuki Tanakaさんのツイート: "まあ実際PEZY-SCでのプログラミングはあんま考慮することが少なくて、ワイドSIMDにまつわる問題はなくて楽といえば楽。フラッシュと同期を使いこなして、キャッシュヒット率を上げるだけやからな。(それが難しい)(でもそれは何でも一緒な気はする)"
AVX2/AVX-512を用いたLennard-Jones系 ポテンシャルの力計算のSIMD化 // Speaker Deck

histric-1

AVX512での逆数近似と精度補正 - Qiita
kaityo256/rcp28_sample: Sample code of vrcp28pd
或るプログラマの一生 » AVX-512 がアナウンスされていた
Fadisさんのツイート: "SIMDで一度にたくさんのベクトルや行列を扱う場合、個々のベクトルや行列を順番に並べてメモリに置いていると、今すぐに必要な要素の値が広範囲に散らばって配置されることになって、パフォーマンスの低下を招く、という現象がSIMDがとてもとても長いマシンで時々観測される"
AVX-512(フォーマット)詳解
きしもとさんのツイート: "(vp)ternlog命令の説明に関して考えていたのですが、この ternary は「三値論理」のように繋がるのではなく、「三項」ではないでしょうか(続… "
herumiさんのツイート: "ご指摘ありがとうございます。iSUSの翻訳は三値でしたが、三項の方がよいですね。修正します…と思ったのですが、slideshareはupdateできないのでした。orz #x86opti… "
インテル® Xeon® スケーラブル・プロセッサーのインテル® AVX-512 のベクトル長の拡張機能 | iSUS
Hideyuki Tanakaさんのツイート: "SIMDはAVX512とか見てるとやっぱもう末期だよなあというか、というか、なんで長さ変えるだけで命令セット新しいの使わないと活かせないとか、これわざと最適化リソースかけさせて、x86から離れるのを惜しませているマーケなんじゃないのかとか、普通にAVX2をDual Issueでいいんちゃうのとか、謎は多い"
CPUID に AVX-512 デープラーニング用命令のフラグが追加 - 教育は参考ブログ
__int128にvpternlogdしたい - Qiita
InstLatX64さんのツイート: "#AVX512_VNNI is 1|.5 L|T… "
melancholic afternoon
InstLatX64さんのツイート: "#TigerLake/#AVX512_VP2INTERSECT extended Venn-diagram about the 19+1 levels of #AVX512 in #Intel processors The importance and significance don't correlate with the area (the number of instructions is shown in parentheses) MICs are starting to fade out....… https://t.co/al4b7Pt9wW"
SIMDプログラミング入門(AVX-512から始める編) - Qiita
AVX-512を用いた、たぶん世界最速のBase64エンコード実装について - Qiita
herumiさんはTwitterを使っています 「指数関数expのAVX-512によるベクトル化 https://t.co/hzsvtuAreu の記事を書きました。 &gt;標準関数std::exp(float)に対する相対誤差は2e-6、速度は10倍ぐらいです。 コードはこちら。 https://t.co/qDVxSujr5K」 / Twitter
指数関数expのAVX-512によるベクトル化 - Cybozu Inside Out | サイボウズエンジニアのブログ
fmath/fmath2.hpp at master · herumi/fmath
herumiさんはTwitterを使っています 「https://t.co/OdN6YvJUxE ここで書いたやり方で実装してみました。https://t.co/y5f1T5NJMy float16個あたり5.44clk(Xeon Platinum 8280 2.70GHz)でした。@k_nitadori」 / Twitter
herumiさんはTwitterを使っています 「@k_nitadori vpermt2ps面白いですね。頭に入れときます。x∈[1,2]なら2^x={exp(x log2 /4)}^4で{}を私の記事の5次近似して1mul+5fma+2mulもありですかね。」 / Twitter
misc/two-pow.cpp at master · herumi/misc
Keigo NitadoriさんはTwitterを使っています 「@herumi ありがとうございます。 直列に依存する命令列に対してこれは速いですね。」 / Twitter
herumiさんはTwitterを使っています 「logもAVX-512で書いてみた。3D Now!時代(20年以上前!)に考えていたアルゴリズムを再実装したけど、もっとうまい方法あるのかな(あるんだろうなあ)。 https://t.co/GTDyR0p6DB」 / Twitter
melancholic afternoon

herumiさんはTwitterを使っています 「AVX-512によるlogの実装、いろいろ試したら結局素直な方法が一番よさけな感じ。試行錯誤のメモ。 https://t.co/spzgjOrIYJ」 / Twitter
fmath/log.md at master · herumi/fmath
FadisさんはTwitterを使っています 「Linus Torvalds氏が「AVX-512は苦しんで*んで欲しい」と言った事で各方面が盛り上がっている。AVX-512は512bitレジスタを用いるSIMD拡張命令で、多くのベンチマークでAVX2より高い性能を示すが、同じ拡張命令でもプロセッサによって対応がまちまちで使い辛い問題を抱える https://t.co/2Qu1ZyKVLq」 / Twitter
Linus Torvalds: "I Hope AVX512 Dies A Painful Death" - Phoronix
FadisさんはTwitterを使っています 「この発言はIntelが新しいマイクロアーキテクチャAlder LakeがAVX-512をサポートしなかったことを受けてなされたものだが、Intelは今後AVX-512対応プロセッサを作るのかについては何も明言していない」 / Twitter
てらモス♋さんはTwitterを使っています 「AVX512命令って広大なんやな…(´・ω・`) https://t.co/19nVsqxA7p」 / Twitter
Implement AVX-512 intrinsics · Issue #310 · rust-lang/stdarch
Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)👇これ見たらAVX512をよく知らない人でもリーナスのお気持ちが多少は理解できるんじゃないかな(適当)」 / Twitter
herumiさんはTwitterを使っています 「IntelのマニュアルによるとAVX-512が使えるかの判定はXCR0レジスタの5-7ビットが111を確認することになってるのだけど、macOSではオンデマンドでAVX-512を有効にする(使われるとUD例外でOSで処理して戻る)のでそのフラグを見てはいけないらしい。 https://t.co/zXGfIp6Ala」 / Twitter
fixed incorrect detection of AVX-512 on macOS by atafra · Pull Request #110 · herumi/xbyak
herumiさんはTwitterを使っています 「こういうコンテキストスイッチのコストを減らすためのテクニックをみると、2018年のLazyFPUの脆弱性を思い出す。 https://t.co/45vlGTCuhR まあ今は2020年だし大丈夫なんだろうけど。 https://t.co/40oXJDf72b」 / Twitter
LazyFP vulnerabilityの紹介
herumiさんはTwitterを使っています 「XbyakがAVX-VNNI命令に対応しました。 https://t.co/gplgSKCuFB AVX-512用のvpdpbusdなどの積和演算命令をAVX-512非サポートなCPU(Alder Lake以降)でも使えるようにした命令群です。VexEncodingを明示して利用します。アセンブラ泣かせ。こんな細切れに命令増やしてていいのだろうか。」 / Twitter
InstLatX64さんはTwitterを使っています 「GFNI_Demo.h, VBMI2_Demo.h: wrapper headers for emulating the missing byte/word shift and rot instructions with the new #AVX512 extensions (in notation of the great officedaytime site) https://t.co/yOrubv5wCT Free source: https://t.co/u7BbdTjmBt https://t.co/6QJiipRBtF https://t.co/ZrSuSV4JPJ」 / Twitter
InstLatX64さんはTwitterを使っています 「Other non-crypto use of (V)GF2P8AFFINEQB in GFNI_Demo.h: - revbit, bit-broadcast, prefix-xor bytes; - rotate, mirror, multiplication for 8x8 bit matrices; - entire register pospopcount; #SSE #AVX #AVX512 https://t.co/u7BbdTjmBt https://t.co/4CdNRQquBx」 / Twitter
InstLatX64さんはTwitterを使っています 「VPCLMULQDQ_Demo.*: experimental entire register prefix-xor operation w/ VPCLMULQDQ (ymm version for #AMD #Zen3) #SSE #AVX #AVX512 https://t.co/Ecvy2CSs1W」 / Twitter
HPC Phys-20201203

ホイール欲しい ハンドル欲しい » Intel AVX その3 命令
AVX-SSE 切り替えペナルティーを回避する | iSUS
インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 組込み関数の詳細
From IA-32 to avx-512
Shirouzu Hiroaki(白水啓章)さんのツイート: "簡単な実験中。AVX2のgather命令、手元のCoffeeLakeだと十分速い。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "動作が不完全だった。完動したら、別段速くないというオチに。 8つのindexが別々のキャッシュラインにアクセスする場合、AVXのvgather命令を使っても、遅いものは遅いという印象。"
x86/x64 SIMD命令一覧表 (SSE~AVX2)
「GNU Binutils 2.32」リリース | OSDN Magazine
CPU命令セット“AVX-2”の活用で大幅な性能向上を果たした「EmEditor」v18.7.0 - 窓の杜
まさみさんは語りたいさんのツイート: "んー??wgetがAVX2命令実行中にsegv起こして落ちた。しかも多分終了作業中??(99%)"
まさみさんは語りたいさんのツイート: "rep stosでavx2命令を使ったメモリクリア中にdstアドレスが化けたっぽい。バグなのかどうかはまだ不明。"
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
./note122.html
yohさんはTwitterを使っています 「何かに似てるなとおもけど SIMD命令でデータ加工するやつだなこれ マァnumpyはSIMD相当だし当たり前か」 / Twitter
yohさんはTwitterを使っています 「forループ回せば(コーディングは)早いんだけど numpyのindexingやらを駆使してゴニョゴニョやっていくの 完全にパズルだなこれ」 / Twitter

FMA

QEMU

だめぽラボ@技術書典9さんはTwitterを使っています 「Rosetta 2は浮動小数点演算の細かいところをどのぐらい正確にエミュレートしてるんだろう(x86とAArch64ではアンダーフロー例外の発生条件が微妙に違う)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUはアンダーフローの発生条件についてはしっかりやっているようだ。実行したのはこれ: https://t.co/qVwojFzUJE https://t.co/KS4iNPqJDA」 / Twitter
floating-point-test/exception.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUは fma(0, inf, nan) での例外の発生の有無がなんか変だな。アーキテクチャ的にはどうなるのが正しいんだ」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「Haswell以降の(FMA命令を持つ)Intel Macでfma関数は常にハードウェアFMAを使うようだけど、-mfmaの有無でNaNのペイロードに関する挙動が若干違うな(コンパイラーの選んだ命令とlibSystem内部で使われている命令が違うのか)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMを読んだ感じ、x86_64のFMA命令はfma(0, inf, nan)について例外を投げないのが正しいっぽい。Linux上で例外フラグを立ててるのはglibcのfma関数かな。-mfmaの他に-O2を指定すると例外を投げないようになった」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「AArch64はfma(0, inf, nan)についてinvalid例外を発生させるっぽいな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754-2008のFMAは当時すでにあった実装(PowerPCとItanium)でFMA(0, ∞, NaN)の例外の有無が食い違ってたから規格ではその場合の例外の有無を定めない(実装に委ねる)ことにしたみたいな話をどこかで読んだ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数こそこそ噂話!」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「PowerPCはFMAのこの場合に例外を投げるっぽい。ItaniumはSDMを読んでもよくわからん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA4は入力と出力を合わせて4オペランドであって、入力の数的にはあくまで3項演算子なのでは(z←x+yを3項演算子と呼ぶ流儀だったらごめんなさい)」 / Twitter
富岳てるみさんはTwitterを使っています 「Intel「AVX世代のFMAは4オペランドにしよう!」 AMD「ほーん。そうやって作るわ」 Intel「(チッなんだよこいつ…) やっぱ3オペランドにするわ」 AMD「えぇ…(困惑)」 そしてFMA4という拡張は忘れられていくのじゃ…」 / Twitter

bfloat16

だめぽラボ@技術書典9さんはTwitterを使っています 「bfloat16の演算ってfloat32でエミュレートする際は掛け算が素直にできないやつか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「これ反例が作れなさそうな気がするし実は問題ない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのbfloat16の実装は非正規化数を扱わないのか。ふーむ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同人誌でbfloat16を安易に「IEEE準拠」と分類したのは早まったかなあ。少なくとも注意書きは必要」 / Twitter

AMX

FadisさんはTwitterを使っています 「Intelが新しいCPU向けの拡張命令AMXのサポートをGCCとLLVMに投げているらしい。AMXでは新しいレジスタTMM0~7が追加される。レジスタ長は1KiB(8192bit)で512bitレジスタx16行の2次元配列で1本のレジスタを構成し、このレジスタに対して行列演算を行う命令が追加される https://t.co/wPmT8V1LRH」 / Twitter
GCC Compiler Support Posted For Intel AMX - Phoronix
FadisさんはTwitterを使っています 「これBFloat16とINT8に対応してるあたりからして、ニューラルネットワークの学習に使う気満々で、要するにIntel版のTensorCoreか…」 / Twitter
herumiさんはTwitterを使っています 「XbyakにIntel AMX命令の追加pull reqが来たのだけど、TMMレジスタって何? 全然知らなかった。というか仕様が公開されたの昨日? え? https://t.co/7SmMzq2jcq」 / Twitter
Add support of Intel® AMX instruction set by nshustrov · Pull Request #95 · herumi/xbyak
herumiさんはTwitterを使っています 「Intel AMXをざっくりと読んでみた。AVXを置き換えるものではない。現状bfloat16かint8の大きな行列の積のタイリング専用演算TMUL。TMMはタイルを表すレジスタ。tileloaddで部分行列読み込み、tdpbf16psなどで行列積の足し込みをする。行列パラメータはldtilecfgで設定 https://t.co/M8N4ISlX47」 / Twitter
blog/amx.md at master · herumi/blog
Intel Advanced Matrix Extension(AMX)とは何なのか - FPGA開発日記

Wikipedia

浮動小数点数 - Wikipedia
Floating-point arithmetic - Wikipedia
NaN - Wikipedia
NaN - Wikipedia
IEEE 754 - Wikipedia
IEEE 754 - Wikipedia
IEEE 754における負のゼロ - Wikipedia

Qiita

娘に分かりやすく浮動小数を教えるシナリオ - Qiita
long doubleと拡張倍精度浮動小数点数フォーマット - Qiita
0.1は浮動小数点で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
浮動小数点数の min / max - Qiita
浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
浮動小数点数の16進表記 - Qiita
理想の浮動小数点数である「浜田のURR」を理解する - Qiita
Javaの strictfp が実際に意味を持つ環境を用意する - Qiita
ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita
Haskell/GHCでの浮動小数点数の扱い - Qiita

Twitter

Rust

熨斗袋さんはTwitterを使っています 「Rust で最近困ったこと f64 に入ってる正の数を切り上げて i64 にしたいんだけど、ceil して cast するときに誤差で -1e-10 されてたら floor になっちゃうし +0.5 して cast するのもなんか違うよなという感じでもやもや」 / Twitter
熨斗袋さんはTwitterを使っています 「多分 ceil したときに内部表現が整数になる保証があると思うんだけど記述見つからないし、そういうのに頼りたくない気持ちがある」 / Twitter
熨斗袋さんはTwitterを使っています 「@TumoiYorozu 例えば元の値が 1.5 だとして、ceil して 1.9999 になって cast したら 1 になりました、は嫌じゃないですか? 浮動小数点数の内部表現と密に関わりたくないというか、うまく説明できないのですが」 / Twitter
百千万億 萬さんはTwitterを使っています 「@noshi91 要するに ceil で得られる数に,小数点以下の情報がない保証が見当たらないって話ね.まぁ回路的に小数点以下を切り捨てる回路は難易度低そうだし,信じていい気がするけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「普通の浮動小数点形式では(少なくとも、IEEEで規定されているようなものは)、「ある浮動小数点数の両隣の整数」はその形式で厳密に表現できるので、floorやceilは(入力が正確だとして)正確な結果を返す」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点型を経由せずにfloorやceilを計算するにはC言語なら丸めモードを変更した上でlrint/llrintを呼び出すという手があるが、普通はそこまでしない」 / Twitter
kashiさんはTwitterを使っています 「@mod_poppo 細かいことですが、「ある*整数でない*浮動小数点数の両隣の整数」ですかね。浮動小数点数xが整数であった場合は、(floorやceilはそのまま返せばいいですが) 両隣の整数が表現できないことはよくあると思います。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@mkashi おっしゃる通りです(細かいので端折ってしまいました)」 / Twitter

Itanium

だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる https://t.co/2V9Ga4l1NX」 / Twitter
IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumには浮動小数点数の除算や平方根の命令がないのマジかーと思った(近似値の命令とFMAでソフトウェア実装するらしい)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを調べてみると、浮動小数点数レジスターの内部形式がx87より指数部が2ビット多い82ビットらしくて、なかなか変態的だ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを見るとかなり変態的というか尖った設計になっているようだ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「加算・乗算専用の命令はFMAがあれば要らない(加算での符号付きの0の扱いは一部のレジスターを特別扱いして対処する)」「除算と平方根は近似命令だけ用意して正確な値は複数の命令を組み合わせて頑張ってもらう」「浮動小数点数レジスターの指数部の幅はx87の15ビットから2ビット増やす」」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「x87と違ってbinary32やbinary64の本来の指数部の範囲で計算することができる」「FPSRの一部のフィールドは複数通り用意しておくことができて、命令ごとにどれを使うか選択できる」」 / Twitter

倍精度

hrk先生さんはTwitterを使っています 「これに関する研究は太古の昔からたくさんあり、多くの計算は短精度で十分だが、データ依存で事前に見分けるのがむずかしいから全部倍精度というのが現状だと思います。まあ、電気代の無駄ですね。」 / Twitter
Yuki NagaiさんはTwitterを使っています 「なぜ物理の計算は倍精度計算で行われているのだろう?実は単精度でも問題ないとかないのかな」 / Twitter
Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys 最終結果は単精度で良いとしても、計算の途中で容易に精度が落ちますね。例えば、条件数が10^3程度の「良条件」の逆問題を解くと、有効桁数が3桁落ちるので、単精度だと残り2桁。」 / Twitter
Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys あとは、sumをとる変数を単精度にすると誤差が徐々に蓄積とか。精度落ちが伝搬しないように、単精度を使えるところを探す必要がありそうです。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@Prof_hrk 今時はSIMDベクトル演算器が沢山並んでるから、単精度の演算器を2個使って倍精度、…n個使って多倍長精度、ってできないかと悩んでるが現状ソフトでやった方が現実的なのが悔しい。」 / Twitter

誤差

だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数で演算結果の真の値がその形式で表現できないこと」と「真の値に最も近い浮動小数点数(または、正しく丸めた値)とは異なる値が返ってくること」を(単に「誤差」と一括にするのではなく)区別して指す言葉があると嬉しいような気がするし、そんなに嬉しくない気もする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「前者は「丸め誤差」では?」 / Twitter
Miura HidekiさんはTwitterを使っています 「広い意味で量子化誤差じゃないかなーって思うけどどうだろう?」 / Twitter
zakkiさんはTwitterを使っています 「前者は量子化誤差で、後者は近似計算誤差?後者はなんか違う気がする。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数を正しく恐れる」ようになるにはどのぐらいの知識があればいいのかなあ。実装のバグまで考慮すると「この演算(のソフトウェア実装)はバグっている可能性が無視できない程度に存在する(例:FMA)」みたいな知識も要る」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「例えば数学関数のsinは多くの環境では「真の値に最も近い浮動小数点数が返ってくる保証はない」わけですが、sinを呼ぶ側からすると関数呼び出しを一回しているだけなので「累積」とは呼びたくないんですよね」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「結局前者が累積して後者になるのが本当の問題なので両方とも「誤差」でいいと思っている どうしても区別したいときは前者を「丸めたときの誤差」、後者を「累積した誤差」と呼ぶかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「無限級数や積分で表される関数を有限和で近似するときは丸めによる誤差以外に「打ち切り誤差」みたいなやつも出てくるから「和を計算する際に丸め誤差が累積するから最終結果に誤差が出る」という考え方は正しくない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754のレベルではそうなんですが、C言語では(Annex Fの下であっても)sinがIEEE準拠であることは要請していないので、その辺に転がっているsin関数がIEEE準拠とは期待できないのですよね」 / Twitter
たいやき🥐さんはTwitterを使っています 「あんまり詳しくないんですけど,IEEE 754 で sin は correctly rounded であるべき(shall)とされているので,それなりに多くの環境で期待通りの答えが得られたりしないんでしょうか. https://t.co/gTBxb6gYtH」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そもそも現行のC規格(C17)では参照しているIEEE 754のバージョンが1985相当で、IEEE 754-1985ではsinとかは規定されていない(sin等の超越関数が「Recommended correctly rounded functions」として規定されたのは2008以降)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数での三角関数の実装、初手「入力をπで割った余りを計算する」みたいなことをすると思うんだけど、πは有限桁の浮動小数点数では表現できないし、多倍長に頼らずに正確にやるのは辛そう」 / Twitter

libmのsinの実装が正しく丸めた値からどのくらい乖離しているか判定

だめぽラボ@技術書典9さんはTwitterを使っています 「libmのsinの実装が正しい値(正しく丸めた値)からどのくらい乖離しているか判定するコードを書いている(「正しい値」はMPFRで計算する)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「2^nの形の入力に対し、macOSのlibSystemは概ね真の値の1ulp以内の値を返すが、1ulp以上離れるケースもちょいちょいある。AArch64でのglibcはほとんどのケースで正しく丸めるが、0x1p25と0x1p938に対しては1ulp以内のズレがある。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ソースはこれ(書き殴りなので雑) https://t.co/SgltkVNV18」 / Twitter
libmのsinの実装が x=2^n (-1000≤n≤1000)の形の入力に対して「正しく丸められた値」からどのぐらいずれているか検査するやつ
だめぽラボ@技術書典9さんはTwitterを使っています 「実行環境にMPFRを要求するのはアレなので値をソースコードに埋め込む形にしたいが、そういうのは時間ができたらだな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「いくつかの環境でlibmのsin関数の精度をチェックしてみた結果をGitHubに上げた: https://t.co/Tuv6dMZDhg」 / Twitter
minoki/math-func-test
だめぽラボ@技術書典9さんはTwitterを使っています 「使用したlibcのバージョンとかも明記した方が良いのだろうけど、そういうのは追々」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptの数学関数の精度を検証(ブラウザー間での差異の比較)するのも同じ要領でできそうだけど、JavaScriptには十六進浮動小数点数リテラルがないのでアレ。十進リテラルで埋め込むか、文字列として埋め込んで手動でパースするか、あるいは53ビット整数と2の冪の積の形で埋め込むか。」 / Twitter

平方根

だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の平方根をソフトウェア的に正確に(正しい丸めで)計算したいんだけどどういうアルゴリズムがいいのかね。ジェネリックな関数として書きたいので、反復の回数とかは決め打ちできない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「多倍長整数や有理数は使って良いものとする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「有理数の平方根を連分数表示するコードは書いてみたけど、結局何らかの方法で整数の平方根(のfloor)を別途計算する必要があるから、にゃーん」 / Twitter

ECMAScriptのMath.powや**演算子

だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptのMath.powや**演算子って 2**n (nは整数)に対して正確な値を返す保証がないな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語もpowについてのそういう保証はないけど、C言語にはldexpとかscalbnとかがあるからなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで正確に2の冪乗を計算したいなら Number(2n ** BigInt(n)) が一つのやり方としてあり得そう(BigIntからNumberへは正しく丸められる保証がある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで十進小数リテラルは20桁以内なら正確に丸められることが保証されてる感じか?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数を書くの、初手ArrayBuffer/DataView経由でビット列に変換するのが一番手っ取り早いな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数、ざっくりこんな感じかな。表記のスタイルはいろいろカスタマイズの余地があるけど https://t.co/BxD5qWwVUi」 / Twitter

シンタックスハイライト

だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数関連のコードや記事を書いてると、各所のシンタックスハイライターが浮動小数点数の十六進リテラルに対応してなくてにゃーんという気持ちになる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaもGitHubも対応してない。VSCodeは単体のソースファイル表示時とMarkdown中のソースで違ったかもしれない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「セルフ先行研究 https://t.co/XalT9ePP6d」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのC言語のシンタックスハイライト、16進浮動小数点数リテラルに対応してない気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのシンタックスハイライトはRougeというやつを使っているらしい https://t.co/OqJiiVnYPy」 / Twitter
Qiitaでシンタックスハイライト可能な言語一覧 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdown中のCのシンタックスハイライトも16進浮動小数点数リテラルに対応してないっぽい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdownプレビューのMarkdown処理にはmarkdown-itが使われていて、他の言語のシンタックスハイライトにはhighlight.jsが使われているという感じかな https://t.co/YYn0bGh6rm」 / Twitter
vscode/package.json at 9bd54c15ae0c2017f4ea251e9eb9a88fb38d62c9 · microsoft/vscode

構成的な環論

だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellのNum周りの型クラス階層がアレなのは事実だけど、Monoid =&gt; Semiringは良くないでしょ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「(+)についてのMonoidインスタンス」と「(*)についてのMonoidインスタンス」を独立に扱えるような言語機能を作るか、通常のMonoidの他に「AdditiveMonoid」「MultiplicativeMonoid」みたいなクラスをそれぞれ用意するか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「PureScriptの階層はメソッドのデフォルト定義がなくてnegateがzero - xと定義されているのが浮動小数点数的に良くないのと、あとはまあアーベル群みたいなやつは想定してないみたいで加法と乗法が分かれてない。あと除算周りもこれはどうかなあという仕様があった」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「いろんな環をうまく型クラス階層として定式化するには環論、それも普通のPIDとか言ってる方じゃなくて構成的な理論を勉強する必要がある」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「誰かが考えた数の型クラス階層は大抵他の人には満足のいくものではないので、満足のいくものが欲しかったら再発明上等というスタンスでやっていくしかない」 / Twitter

histric-1

taklさんのツイート: "#tcfm 19 11:58~ レジスタウィンドウみたいなものが廃れたのは、レジスタ割当技術が進歩してコンパイラにやらせた方がいいということになったから、という説明をどこかで聞いた記憶があります。"
Miura Hidekiさんのツイート: "https://t.co/ha96GdyoRl #tcfm 大変面白かったのだけど、IBMのマシンをもって昔はスタックが無かったというのだけはもやもやした。バローズのスタックマシンとかもあったわけなので"
Toru Hisaiさんのツイート: "そういえば昔 GDC で聞いた講演で、C++ の最も素晴らしい機能はデストラクタで、なぜならそれは決定論的だから、というのを思い出した。 https://t.co/wjnrpFTKT8 ここの「The Beauty of Destruction」という講演。 https://t.co/QpeC1gj3XG #tcfm"
Kazuho Okuさんのツイート: "そもそもIEEE754は実用上の理由に基づいたもので気持ち悪いところはいろいろあるよね。小さい数の場合はだんだん精度が悪くなってくけど、大きい数の場合はいきなり無限大に切り替わるとか"
Ryou Ezoeさんのツイート: "入門書に書く浮動小数点数の詳細、IEEE-754がデファクトスタンダードなので解説するとしても、完全に詳細にはやらないかな。"
Ryou Ezoeさんのツイート: "符号ビット、仮数部、指数部、+0.0と-0.0、+∞と-∞、2種類のNaNぐらいで十分だが、正直NaNはQuiet NaNだけで十分かもしれない。"
Shiro Kawaiさんのツイート: "NaNはNaNでありNaN以上でも以下でもない! gosh> (list (nan? +nan.0) (>= +nan.0 +nan.0) (<= +nan.0 +nan.0)) (#t #f #f) だがNaNでもない! gosh> (= +nan.0 +nan.0) #f… https://t.co/zpKbzMG9jI"
Shiro Kawaiさんのツイート: "おお、丸めモードの違いが目に見える形で現れたケースとして興味深い。… "
小学ニ年生 別冊付録さんのツイート: "#tcfm 向きの話題だ https://t.co/TVGQAngDEe"
なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)
Ryou Ezoeさんのツイート: "16bit浮動小数点数型、機械学習用途以前は、HDR用途に使われていた経緯がある。"
KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
x86/x64における小数から整数への丸め処理命令の変遷 - Cybozu Inside Out | サイボウズエンジニアのブログ
Fadisさんのツイート: "浮動小数点数から整数への変換はC言語の場合C11 §6.3.1.4.1でゼロに近づける方向にtrancate、C++の場合C++17 §7.10.1で小数部を破棄するのと同義になるようにtrancate(つまりC言語と同じ)、という風に定められてるよ"
Fadisさんのツイート: "ただし浮動小数点数から元の値をそのまま表現できない浮動小数点数への変換を行う場合、近傍の2つの表現可能な値のうちどちらをとるかは実装が決めて良い事になっている(つまりどちらかになる事をプログラマは期待してはいけない) C++17 §7.9.1"
Fadisさんのツイート: "Intelが将来のプロセッサで利用可能になる新しい浮動小数点数フォーマットBF16を公開した。BF16は既にある半精度浮動小数点数FP16と異なり、指数部8bit仮数部7bitになっている。Intel曰く、このくらいの方がディープラーニングにおける学習で欲しい範囲に合うらしい https://t.co/tTPfqMCXLa"
Intel Publishes Whitepaper On New BFloat16 Floating-Point Format For Future CPUs - Phoronix
Tsukasa #01 [要出典]さんのツイート: "参考までに、BF16 (bfloat16) は Google TPU (v2 以降) の演算形式で、かつ binary32 (IEEE single) の上位 16 ビットを切り取ったものです。――というか何故今ニュース記事になってるんだろう。 https://t.co/6h3XyUQMWj… https://t.co/h9aws20YxD"
bfloat16 floating-point format - Wikipedia
Tsukasa #01 [要出典]さんのツイート: "NVIDIA は単純な (tensor core で使用できる) IEEE FP16 (half) だと勾配消失を起こして学習が進まないことがあることを指摘しており、学習時のロスを大きくすることでこれを防ぐ手法を必要に応じて推奨している。BF16 は精度の代わりに表現範囲を増しており、この手法の必要性を低くする……のかな。"
島鉄雄さんのツイート: "浮動小数点も2進数で計算されてて ︙ 2^2 = 4 2^1 = 2 2^0 = 1 2^-1 = 0.5 2^-2 = 0.25 2^-3 = 0.125 ︙ 少数の方はどう頑張っても2のマイナスべき乗の組み合わせじゃ表現できない10進数が出てくる 0.1 をどうやって表現するか?小さい数を足していけばいいけど、小さくするにもビット数に限界がある… https://t.co/nsR9P1U0Gy"
mはげさんのツイート: "誤差の原因は2つです。実は2つ目の方が支配的です。 また2つめは多め少な目どちらも起こりえます。 1. 10進数を2進数の32bit浮動小数点に変換した際の丸め誤差(表現誤差) 2. 大きい数(今までの合計)と小さい数(これから足す数)の足し算時の桁落ち誤差… "
Hisaki Oharaさんのツイート: "bfloat16 (指数部が単精度と同じ8-bit) のwhite paperが出ていた (PDF) https://t.co/JzKq5iRGAR"
bfloat16 - Hardware Numerics Definition

histric-2

Masaki Haraさんのツイート: "https://t.co/4hmu15zgrv Rustのpowfは1.0のNaN乗を1.0とするが、これはIEEE754のpowではないもののPOSIXのpowf(3)の規定には準拠しているらしい。そういうこともあるのか。"
powf for NaN returns 1 · Issue #60468 · rust-lang/rust
Shirouzu Hiroaki(白水啓章)さんのツイート: "Rubyにはこんな節約技が使われているのね。 (ちなみに「仮数部がすべて 1 の場合に NaN」というのは、「指数部」の誤記ではないかしらん?) ---- NaN Boxingというテクニックを知った - 不確定特異点 https://t.co/xQOhkVc076"
NaN Boxingというテクニックを知った - 不確定特異点
Fadisさんのツイート: "IEEE754の-0とかbitwiseで異なるNaN、浮動小数点数の山の中に別の情報を埋め込むのに使えるから数値計算系のデバッグで稀に役に立つ"
島鉄雄さんはTwitterを使っています: 「NaN === NaN //falseはそれでいいと思うけど? Cでも(というか機械語レベルで)nan == nan =&gt; 0となる。 逆にd !== dがtrueになる時はdがNaNになっていると判定出来る。(昔のCにはisnan()が無かったからd != dと判定した) NaNになった時にトラップ出来ない環境だと、NaNのデバッグは地獄だけどねw https://t.co/Nm3xh5tNlx」 / Twitter
島鉄雄さんはTwitterを使っています: 「言語の実装でセルフホストにしたい時に、最難関な部分が浮動小数点の入出力だと思われる。 例えば 123456789012345678901234567890123456789012345678901234567890.0 を読み込んで 1.2345678901234567e+59 と出力して、それを更に読み込んだ時に内部でビットレベルで一致している事が求められる。 続く」 / Twitter
島鉄雄さんはTwitterを使っています: 「C で普通にやると strtod() と printf() を使う事になるけど、printf() は正しい値を出力せずに、指定した桁か暗黙に決められてる桁数(6とか)しか出力しないから、入力⇔出力でビットレベルで一致させる事が常に出来ない(たまたま合う事はある)。 Emacs Lisp の場合はどうしてるかというと、」 / Twitter
島鉄雄さんはTwitterを使っています: 「出力にgnulibのdtoastr()を呼び出しているけど、それは内部で 1.snprintf() を少ない桁数で文字列化 2.それを strtod() で読み込む 3.ビットレベルで一致しているか判定 4.一致してれば出力、してなければ桁数を増やして1へ と涙ぐましい努力をしているw セルフホスト用に自前実装する場合は」 / Twitter
島鉄雄さんはTwitterを使っています: 「入力:AlgorithmM,AlgorithmR,Bellerophon 出力:Dragon4 あたりのアルゴリズムを使うけど、Mは簡単に理解出来るけど、それ以外はボヤっとしか理解出来ないw 特にDragon4は公開されてる実装が世の中に3つしか無いから俺が実装したよってサイトから拝借したw それでうまく行った 長文失礼しました」 / Twitter
島鉄雄さんはTwitterを使っています: 「リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double) を Gist に登録しました。 C言語で正確な浮動小数を出力するには、こんな感じにすればいいよというサンプルコードです。」 / Twitter
島鉄雄さんはTwitterを使っています: 「URLを忘れた… https://t.co/kJrYHVh2l5」 / Twitter
リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double)
島鉄雄さんはTwitterを使っています 「JavaScirpt は数字は全て倍精度浮動小数で何だこれwと思ったけど、よく考えたら、普通の言語だと(i: 整数, f: 浮動小数) i + i, i + f, f + i, f + f の4通りを割り出す条件分岐が必要だけど、JavaScirpt は f + f の1通りで良い。 条件分岐が要らないからインタプリタ実行が高速になる。 天才だろ!」 / Twitter
島鉄雄さんはTwitterを使っています 「CPU レベルで考えたら、整数演算を倍精度演算器で実行するとか有り得ないけど、昔の CPU が非力でしかもインタプリタ実行しか無い時は、少しでも高速に実行したい訳だから、良く考えられた仕様だった。 という事に今気付いた。」 / Twitter
κeenさんはTwitterを使っています 「Rustは浮動小数点数をMapのキーに出来ないように作られてる https://t.co/1Nnq6ZUDkv」 / Twitter
ぽけばさんはTwitterを使っています 「はてなブログに投稿しました NaNとMap - pocketberserkerの爆走 https://t.co/sHSLwGKffR」 / Twitter
NaNとMap - pocketberserkerの爆走
くいなちゃんさんはTwitterを使っています 「整数と浮動小数点数では、メモリ上の配置が全然違うため、整数をむりやり浮動小数点数として読むと 値が大きく変わってしまいます。 逆にこれを活用して、ビットが0の個数を瞬時に数えたり、平方根を瞬時に求める方法が編み出されたりしていて、こわい黒魔術がたくさんあるのです…。」 / Twitter
TokusiNさんはTwitterを使っています 「@kuina_ch 整数浮動小数点の変換回路をlog2の計算に使うのは実際にやったことがある・・・」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「浮動小数点の謎テクニックだと、こんなのも。 ---- 「IEEE 754形式では、float a, b が与えられたとき、a&gt;b&gt;0なら*(int*)&amp;a&gt;*(int*)&amp;bとなる」 https://t.co/96ewE7pAaT https://t.co/ve2f0VfUSF」 / Twitter
基数ソート - Wikipedia
Hideyuki TanakaさんはTwitterを使っています 「あとsqrtの丸め方向調べたいなら、printfで%gで表示するんじゃなくて%aで表示すべきじゃないんですかね…」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「@Hishinuma_t MPFRで所定のビット数を指定して、演算ごとにmpfr_subnornalizeを呼び出せば、非正規化数の扱いを含めてbinary256相当になるはずです(NaNの扱いを除く) https://t.co/eGqZOcuShP」 / Twitter
GNU MPFR 4.1.0
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数小話を読み返してたけど、二段階丸めのところで奇数丸めからの最近接丸めがうまくいく条件が書いてないな(桁数の差が1だとうまくいかない。1.4999→(奇数丸め)→1.5→(最近接偶数丸め)→2みたいなやつ)」 / Twitter
ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
きしもとさんはTwitterを使っています 「ヤバいのはアレね、Rubyとかのような一部の言語にある「小数点以下、十進でn桁」(←ヤバい)を指定できる奴」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数を二進浮動小数点数にするやつ、最初の700桁ぐらい読んで判断できない場合は残りの部分が0より大きいかどうか判断する、って感じで行けたりする?そもそも700桁も読みたくない?」 / Twitter

02.pdf

Advent Calendar

アルゴリズム

グラフ探索アルゴリズム Advent Calendar 2015 - Qiita
文字列アルゴリズム Advent Calendar 2016 - Qiita
文字列アルゴリズム Advent Calendar 2017 - Qiita
データ構造とアルゴリズム Advent Calendar 2018 - Qiita
データ構造とアルゴリズム #2 Advent Calendar 2018 - Qiita
データ構造とアルゴリズム Advent Calendar 2019 - Qiita
データ構造とアルゴリズム Advent Calendar 2020 - Qiita

WebAssembly

WebAssembly Advent Calendar 2017 - Qiita
WebAssembly Advent Calendar 2018 - Adventar
WebAssembly Advent Calendar 2018 - Qiita
WebAssembly Advent Calendar 2019 - Qiita
WebAssembly Advent Calendar 2020 - Adventar
WebAssembly Advent Calendar 2020 - Qiita

言語実装

言語実装 Advent Calendar 2015 - Qiita
言語実装 Advent Calendar 2016 - Qiita
言語実装 Advent Calendar 2017 - Qiita
言語実装 Advent Calendar 2018 - Qiita
言語実装 Advent Calendar 2019 - Qiita
言語実装 Advent Calendar 2020 - Qiita

C 言語

C言語 Advent Calendar 2015 - Qiita
C言語 Advent Calendar 2016 - Qiita
C言語 Advent Calendar 2017 - Qiita
C言語 Advent Calendar 2018 - Qiita
C言語 Advent Calendar 2019 - Qiita

テスト

ソフトウェアテスト Advent Calendar 2016 - Qiita
ソフトウェアテスト Advent Calendar 2017 - Qiita
ソフトウェアテスト Advent Calendar 2018 - Qiita
ソフトウェアテスト Advent Calendar 2019 - Qiita
ソフトウェアテスト Advent Calendar 2020 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2018 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2019 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2020 - Qiita

Rui Ueyamaさんのツイート: "Forth書いたこともWindowsバイナリ手書きしたこともコンパイラのセルフホストしたこともあるけど、この記事すごくよいのでは? 1日ではできないだろうけど腰を据えて読めば。 https://t.co/sCr5wN2uZZ"
一日でできるセルフホスティングForthコンパイラ - Qiita
Shiro Kawaiさんのツイート: "うん、とても良い。セルフホストで立ち上げるの楽しいんで自分も記事書いてみたいと思うんだけどいろいろ細かい話がたくさんあって全部説明しつつ短い記事にまとめるのがすごく難しい。なのでこんだけまとめて書けるのすごい。 https://t.co/ZDjB0sbM3A"
意味論 Advent Calendar 2016 - Adventar
PyPy Advent Calendar 2011 まとめ - pypy-ja
ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017 - Qiita
MPI Advent Calendar 2017 - Adventar
AVX-512 Advent Calendar 2014 - Qiita
Emacs Advent Calendar 2018 - Qiita
セキュリティツール系 Advent Calendar 2018 - Adventar
Brainf*ck Advent Calendar 2019 - Adventar
Ruby 2.7 Advent Calendar 2019 - Qiita
Elixir Advent Calendar 2019 - Qiita
自作言語 Advent Calendar 2019 - Qiita
型 Advent Calendar 2019 - Qiita
Idris Advent Calendar 2020 - Qiita

IDE

MJ文字情報検索システム | 独立行政法人 情報処理推進機構 - IPA
Desktop Screen Resolution Stats Japan | StatCounter Global Stats
自分が使わないものを発表するな - 増井俊之
Visual Studio での C++ コードの編集とリファクター | Microsoft Docs
リファクタリング - Visual Studio | Microsoft Docs
rust-analyzerの紹介 | κeenのHappy Hacκing Blog
井山梃子歴史館さんはTwitterを使っています 「Ungrammar( https://t.co/vSiuWSh6EC )の考え方は面白いと思っていて,これは言語定義におけるインターフェイスと実装の分離なんだよね」 / Twitter
Introducing Ungrammar
Dropboxが新開発した「非同期処理フレームワーク」はどのように構築されているのか? - GIGAZINE
リポジトリクラスのメソッド設計 - kawasima
Makoto Kato ︎︎さんはTwitterを使っています 「rniwaよりもWebKitトップのMajの方が方向性は一番重要だし、TPACそこまで重要ではない気がするし、WICGは個人草案という表現はちょっとと思うし、細かいところに粗がいろいろある感じ https://t.co/SFRnNutDep」 / Twitter
Web 技術の調査方法 | blog.jxck.io

MS

その他

NyaRuRuが地球にいたころ

Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
HotKey でキーリピートを無視する機能が付いたらしい - NyaRuRuが地球にいたころ
Header Annotations - Visual C++ - NyaRuRuが地球にいたころ
SPU C/C++ Language Extensions - NyaRuRuが地球にいたころ
Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
ゲームプレイ中のスクリーンセーバやディスプレイ休止を回避する方法 - NyaRuRuが地球にいたころ
コンソールアプリケーションで出力がパイプされているときに,それが閉じられたのを知る方法 - NyaRuRuが地球にいたころ
別スレッドでリソースを解放することのあれそれ - NyaRuRuが地球にいたころ

Msdn フォーラム - Windows SDK サポートチーム
Msdn フォーラム - Windows Driver Kit サポートチーム
Msdn フォーラム - Windows クライアント開発
EternalWindows
Gecko1.8相当製品において修正したバグ - WebStudio
64 ビット Windows アプリケーション開発 - RAD Studio
碧落 - Win64 開発
1985年誕生「Windows1.0」を触ってみたら、恐怖のおっちょこちょいOSだった - デイリーポータルZ
Visual C++(cl.exe)で UTF-8 のファイルをコンパイルする - Bite Code
Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される | スラド
OneCore.lib/MinCore.libの紹介 « 他人の空似
Big Sky :: ネットワーク構成を変更した直後に Cygwin や msys2 が激遅になる問題の解決方法
Big Sky :: Windows で子プロセスの標準入出力バッファリングを無効にする
Idleプロセスと名無しのプロセス
ChalkTalk CLR – COMのすべて – kekyoの丼
ASCII.jp:Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何? (1/4)|Windows Info

MS

その他

Diagnostics (Windows)
Graphics and Multimedia (Windows)
Audio and Video (Windows)
System Services (Windows)
Security (Windows)
Restart Manager Reference (Windows)
Packaging, deployment, and query APIs (Windows)
System Administration (Windows)
Networking (Windows)
Per-directory case sensitivity and WSL – Windows Command Line Tools For Developers
KeyboardDeliveryInterceptor Class (Windows.UI.Input) - UWP app developer | Microsoft Docs
Ink presenter (Windows)
DirectComposition (Windows)
Makoto Kato ︎︎さんのツイート: "Windowsのコンソール系バグ (APIも含む) は、https://t.co/97QTqsydFS で報告できるようになったのは素晴らしい"
Microsoft/console: Windows Console Tools
Windowsドライバ開発を容易にするMicrosoft Driver Module Framework
Visual Studio 2017 15.9 Preview 3、UWPのARM64をサポート
Condition Variables - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自前Conditionクラス、CriticalSectionで守っているため、CAS(Compare And Swap)不要なのにCASを使っている気がする。 (そもそもVista以降、CV入っているし、ネイティブCVに移行してXPユーザには泣いてもらうかな…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちがった。 クラス内csで守る部分と、globalリソースのためのCASに分けていたのだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ポインタサイズの省サイズ&高速な ReaderWrite Lock (ポインタサイズのため再帰不可) ---- Slim Reader/Writer (SRW) Locks (Vista以降) https://t.co/CNVy8QiN1J」 / Twitter
Slim Reader/Writer (SRW) Locks - Win32 apps | Microsoft Docs

Windows 10

削除または非推奨

Windows 10 Creators Update Deprecated Features | Microsoft Docs
Windows 10 Fall Creators Update Deprecated Features | Microsoft Docs
Windows 10, version 1803 - Features that have been removed | Microsoft Docs

API

Windows 10 version 1607 API changes - UWP app developer | Microsoft Docs
Windows 10 Creators Update API changes - UWP app developer | Microsoft Docs
Windows 10 Fall Creators Update API changes - UWP app developer | Microsoft Docs
Windows 10 Build 17134 API changes - UWP app developer | Microsoft Docs
SetThreadDescription function | Microsoft Docs

Windows Hypervisor Platform

Windows Hypervisor Platform | Microsoft Docs
Windows Hypervisor Platform API Definitions | Microsoft Docs
VM Saved State Dump Provider API | Microsoft Docs
QEMUのWindowsホストでのHyper-Vのサポート | K'zlog
[Qemu-devel] [PATCH 0/4] Implements the Windows Hypervisor Platform acce
[Qemu-devel] [PATCH 1/4] Add the Windows Hypervisor Platform accelerator
[Qemu-discuss] configure fails with whpx enabled on msys2 w64 build proc

Microsoft Windows 10 - Wikipedia
What's new in Windows 10 build 10240 - July 2015 - UWP app developer | Microsoft Docs
What's New in Windows 10 build 10586 - November 2015 - UWP app developer | Microsoft Docs
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
Windows 10 の開発者向け新着情報、ツール、機能 - UWP app developer | Microsoft Docs
Windows Machine Learningなど開発者にも続々と新機能 - Windows 10 April 2018 Update | マイナビニュース
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
TLS (Schannel SSP) | Microsoft Docs
Why Are We Deprecating Network Performance Features (KB4014193)? | Ask Premier Field Engineering (PFE) Platforms
Update on Microsoft’s Symbol Server – Debugging Tools for Windows
Microsoft public symbol server | Microsoft Docs
Windows Filtering Platform (Windows)
SetThreadDescription function (Windows)

Technical documentation, API, and code examples | Microsoft Docs
Bug Check Code Reference | Microsoft Docs
Windows API Index (Windows)

非推奨

Shirouzu Hiroaki(白水啓章)さんのツイート: "WIn95時代から存在する、Win32アニメーションコントロールを初めて使ってみる…AVI縛り以外は意外と良いかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、非圧縮でない場合に、RLE8縛りになるのが厳しいな… https://t.co/5NHvwiXDeE An animation control can display an AVI clip originating from either an uncompressed AVI file or from an AVI file that was compressed using run-length (BI_RLE8) encoding."
About Animation Controls (Windows)
Shirouzu Hiroaki(白水啓章)さんのツイート: "結局、GDIplusで、アニメーションGIFのフレームを1つずつ取り出しながらタイマーで描画、というベタな解に落ち着きそう。"
市川 真一さんのツイート: "古い環境をサポートするためなのでしょうけど、GDI+ は非推奨 API らしいですね。今なら Direct2D を使ってほしいみたいです: Deprecated or legacy APIs https://t.co/Z283r33XkN… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 MSは広まったAPIやコンポーネントは滅多に廃止しないので、GDIとGDI+は事実上廃止されないのではという気も(笑) (CreateFileTransactedのような不人気API群は躊躇なく廃止しますが)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "GDI/GDI+が廃止されるとしたら、デスクトップ開発はC#等のマネージドアプリのみを認め、C++はドライバ開発のみと決断した時かな?とも。… "
市川 真一さんのツイート: "それに期待したいところです。ゲームや Web 関係の技術は廃止されて被害にあってる人も多いようですね… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "それは知りませんでした。 ゲーム系はよく知らないのですが、Web系だとIEコンポーネントやInternetOpen等廃止されそうと言われつつも、しぶとく未だに使えている印象もあったのですが(笑)… "
市川 真一さんのツイート: "例えば Web 系だと C/C++ じゃないですが、J# が丸ごと廃止になってたり。あれで開発してた人もいたのですけどね… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 MSの過去の行動を見ると、累積ソフト資産の総量で決めている感じがしますね。 累積総量が多いと、古臭くても非推奨でもしぶとくサポート、と。 逆に、Windows Mobileなどは、梯子を外された感を持つハード&ソフトベンダの方も多そうですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "その点、Appleは結構大胆に切り捨てている印象が…でもユーザが思ったほど離れない不思議。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔MSは、SDIよりMDIを推奨し続けて、ついにMDIアプリはMS Excelのみ、といった時代になってようやくMDI推奨を取り下げて、その後ExcelもSDI化したという歴史があったような。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2001年に SDI推奨になった資料があった…ということで、記憶より前からSDI推奨に変わっていた様子。 https://t.co/j2vs3xRRW8"
Microsoft Windows ユーザー エクスペリエンス FAQ

Microsoft API とリファレンスのカタログ
Windows 7 API List (Windows)
Windows 8 and 8.1 Technologies (Windows)
Windows におけるコーディング規約 (Windows)
Technical features new to Windows Vista - Wikipedia
Windows のキーボード ショートカット - Windows Help

MSDN

Windows Hardware Certification blog

New Windows 10 Driver Failure Report, now live in Hardware Dev Center – Windows Hardware Certification blog
Win32 logo certification deprecation – Windows Hardware Certification blog
Errata filter database lookup is now available via Hardware Dev Center – Windows Hardware Certification blog

Japan WDK Support Blog

カーネルモード デバッガで UMDF ドライバをライブデバッグする – Japan WDK Support Blog
NDIS Connection-less Protocol Driver Sample をインストールする – Japan WDK Support Blog
MSDN インシデントで技術サポートにドライバー開発のお問い合わせをする方法 – Japan WDK Support Blog
INF ファイルが Universal かどうか検証する方法 – Japan WDK Support Blog
SimRep File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
新しい Windows Driver Kit documentation – Japan WDK Support Blog
Minispy File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
Visual Studio 2015 でのテスト署名方法 – Japan WDK Support Blog
パブリック シンボルとプライベート シンボル – Japan WDK Support Blog
Windows 10 update history 公開 - Japan WDK Support Blog - Site Home - MSDN Blogs
Err.exe でエラーコードの定義を探す – Japan WDK Support Blog
WDK for Windows 10, version 1803 – Japan WDK Support Blog
Hyper-V 仮想マシンへのネットワーク経由のカーネルデバッガ接続方法 – Japan WDK Support Blog
プリンタードライバーの GPD ファイル記述に関する注意事項 – Japan WDK Support Blog
Authenticode 署名のドライバインストールのトラブルシューティングの一例 – Japan WDK Support Blog
Intel、新規格「UWD」に対応したグラフィックスドライバ - PC Watch
GPU情報取得ツール「GPU-Z」が新しいドライバー形式“UWD”に対応 - 窓の杜
Microsoft、Windows互換認定を受けたハードウェアのカタログサイトを公開 - 窓の杜
Partner Center

JAPAN Platform SDK(Windows SDK) Support Team Blog

NotifyIcon.ShowBalloonTip メソッドで表示されるバルーン表示の問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Microsoft Print to PDF 選択時の CPrintDialog::OnInitDialog() 動作について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 で ISequentialStream インターフェースからファイルを操作する際のパフォーマンスについて – JAPAN Platform SDK(Windows SDK) Support Team Blog
UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について – JAPAN Platform SDK(Windows SDK) Support Team Blog
ツールバー移動時の軌跡が残像となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
LoadImage 関数が負の高さをもつビットマップの読み込みに失敗する – JAPAN Platform SDK(Windows SDK) Support Team Blog
ICopyHook::CopyCallback ハンドラ関数へ通知される pszDestFile が空になる – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 でトースト通知が表示されないことがある – JAPAN Platform SDK(Windows SDK) Support Team Blog
Virtual Bytes が、Windows 10 April 2018 Update 適用前後で異なる – JAPAN Platform SDK(Windows SDK) Support Team Blog
Graphics.DrawLine メソッドで Panel コントロールに描画した直線が表示されません – JAPAN Platform SDK(Windows SDK) Support Team Blog
WPF アプリケーション上で、F10 キーが押されたことを検出できない – JAPAN Platform SDK(Windows SDK) Support Team Blog
仮想化した TreeView コントロールが自動的にスクロールされる。 – JAPAN Platform SDK(Windows SDK) Support Team Blog
TryShowPrimaryView メソッドを実行してもタッチ キーボードが表示されない – JAPAN Platform SDK(Windows SDK) Support Team Blog

Cloud and Server Product Japan Blog

Visual Studio 日本チーム Blog – 日本マイクロソフト株式会社 Visual Studio 製品マーケティングの Blog です。 日本のお客様向けに Visual Studio に関する様々な情報をお届けします。
Cloud and Server Product Japan Blog – サーバー&クラウド関連の製品やサービスの発表をお伝えする、マイクロソフト マーケティングチームの公式ブログです。
Windows Server 2008 SP2 のサービス変更について – Cloud and Server Product Japan Blog
IoT デバイスへの証明書のインストール – Cloud and Server Product Japan Blog

Visual Studio サポート チーム blog

Visual Studio サポート チーム blog – Visual Studio / .NET Framework をご利用いただいている開発者の方に役立つ情報をお届けします。
夏時間が適用されるタイムゾーンにおける mktime 関数利用時の注意事項について – Visual Studio サポート チーム blog
Visual Studio 2015 の _utime32 関数で指定可能な時刻の上限が以前と異なる – Visual Studio サポート チーム blog
Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題について – Visual Studio サポート チーム blog
Visual Studio 2015 および Visual C++ 2017 のリンク時のコード生成における最適化の不具合について – Visual Studio サポート チーム blog
参照側プログラムのリビルドが必要となるような DLL の変更について – Visual Studio サポート チーム blog
Windows 10 および Windows Server 2016 における Windows インストーラー パッケージの VersionNT プロパティについて – Visual Studio サポート チーム blog
Visual C++ の正規表現ライブラリで発生するバージョン間での動作の違いについて – Visual Studio サポート チーム blog
以前のバージョンの Visual Studio 2017 インストーラーについて – Visual Studio サポート チーム blog
OLE パッケージ オブジェクトを含むドキュメントを開くと GDI オブジェクトが増加する – Visual Studio サポート チーム blog

The Visual Studio Blog

The Visual Studio Blog | The official source of product insight from the Visual Studio Engineering Team

C

多次元配列 (C)
Microsoft 固有の修飾子
コンパイラ セキュリティの徹底調査
不完全な型
通常の算術変換
代入変換
定義済みマクロ
EncodePointer function (Windows)
DecodePointer function (Windows)
memcpy_s、wmemcpy_s
strnlen、strnlen_s、wcsnlen、wcsnlen_s、_mbsnlen、_mbsnlen_l、_mbstrnlen、_mbstrnlen_l
x86 Intrinsics List
C/C++ ビルドのリファレンス
/X (標準インクルード パスの無視)
コンパイラ組み込み
コマンド ラインでのビルド
Visual Studio での C++ プロジェクトのビルド
リンカー オプション
_STATIC_ASSERT マクロ
/Gs (スタック チェック呼び出しの制御)
Creating Guard Pages (Windows)
_resetstkoflw
__rdtsc
データ型の範囲
データ型定数
グローバル定数
非数 (NAN) 項目
How do I access the magic IEEE floating point values like NaN in code? | The Old New Thing
C 浮動小数点定数
String Manipulation Summary (Visual Basic)

Windows Driver Kit documentation | Microsoft Docs
UI オートメーションの概要 | Microsoft Docs
Windows Machine Learning - UWP app developer | Microsoft Docs
What’s new in Windows Console in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers
IE11のドキュメントモードのフローチャート | Microsoft Edge Japan
USB デバイスが「不明なデバイス」として表示される場合の対処法 – Windows & Devices 開発統括部
ソリッド ステート ドライブ (SSD) に関するサポートと Q&A – マイクロソフトのEngineering Windows 7 ブログ
文字列の操作
Naming Files, Paths, and Namespaces (Windows)
お客様の声から学びました
Open Specifications Developer Center
Windows Driver Kit (WDK) - Windows 10 hardware dev
Functions
Open Specifications Developer Center
API を廃止する
wimをアクセスするコード(不完全)
新しいハードウェアダッシュボード問い合わせ方法について
Msdn forums - Open Specifications

Winsock

データの送受信(標準編)
Winsock2関数
c++ - what is __in and WSAAPI? - Stack Overflow
DNS クライアントの新機能
GetAddrInfoEx function (Windows)
FreeAddrInfoEx function (Windows)
GetAddrInfoExCancel function (Windows)
GetAddrInfoExOverlappedResult function (Windows)
Windows Sockets Error Codes (Windows)
Handling Winsock Errors (Windows)
WSAGetLastError function (Windows)
FormatMessage function (Windows)
Error Codes - errno, h_errno and WSAGetLastError (Windows)
IdnToAscii function (Windows)
IdnToUnicode function (Windows)
IPPROTO_TCP Socket Options (Windows)
Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。
AF_UNIX comes to Windows – Windows Command Line Tools For Developers
Graceful Shutdown, Linger Options, and Socket Closure - Windows applications | Microsoft Docs

Application Manifests

MS

Wikipedia

リソース (Windows) - Wikipedia
Resource (Windows) - Wikipedia
Multilingual User Interface - Wikipedia

Resource Files

About Resource Files (Windows)
Resource-Definition Statements (Windows)
Resource File Formats (Windows)
RESOURCEHEADER structure (Windows)
Resource Types (Windows)
Resource Types (Windows)
Resource Files (Visual Studio)
Multilingual User Interface Reference (Windows)
Manifest Resources

/ALLOWISOLATION (マニフェスト検索)
/MANIFEST (side-by-side アセンブリ マニフェストを作成する)
/MANIFESTUAC (UAC 情報をマニフェストに組み込む)
/MANIFESTINPUT (マニフェスト入力の指定)
アプリケーション マニフェスト
方法 : マニフェストを C/C++ アプリケーションに埋め込む
C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング
Installing Side-by-side Assemblies (Windows)
Side-by-side Assemblies Reference (Windows)
Windows XP ビジュアル スタイルの使用
コマンド ラインでのマニフェスト生成
Visual Studio でのマニフェスト生成
Mt.exe (Windows)
Manifests (Windows)
Manifest Files Reference (Windows)
Manifest Files Reference (Windows)
Application Manifests (Windows)
Application Manifests (Windows)
Application Manifests (Windows)
Application Configuration Files (Windows)
Publisher Configuration Files (Windows)
Manifest File Schema (Windows)
Application Configuration File Schema (Windows)
Publisher Configuration File Schema (Windows)

UAC関連
現在のWindowsサイドバイサイドについて
現在のWindowsサイドバイサイドについて-続き-
Windows マニュフェストファイルの読み込み順 |
c++ - reading an application's manifest file? - Stack Overflow
winapi - How to use a manifest embedded as a resource? (Windows XP/Vista-style controls) - Stack Overflow
resourcelib/Manifest.md at master · resourcelib/resourcelib · GitHub
RT_MANIFEST
RT_MANIFEST resource, and ISOLATION_AWARE_ENABLED – Junfeng Zhang's Musing
[Delphi/BCB] manifestファイルをexeに埋め込む: プログラミングの覚え書き
[ 314_アプリケーションマニフェストの作成とリソースの操作 ] - Mr.XRAY
Programming Windows Maniacs - プログラミング ウィンドウズ マニアックス - Windows XP以降でアプリケーションにThemeを反映させるには(2)
WindowsXPのVisualStyleを使う(SDK)
Section7.5 ボタンとかのデザインをXP仕様にする
Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuが地球にいたころ

PATH

PATH の正規化

パス内の"."や".."を削除して、正規化する - .NET Tips (VB.NET,C#...)
PathCanonicalize function - MSDN Search
軽減策: パスの正規化 | Microsoft Docs
8-1. Windowsパス名の落とし穴
Windowsのパスがうまく指定\表示できない問題 in Python - ぴよぴよ.py

MAX_PATH

INADA Naokiさんのツイート: "Pythonは10年以上かけてWindowsでwchar_tを使うように、ANSI APIを排除するように頑張ってきたけど、それが終わる頃に、WindowsがANSI APIでUTF-8つかえるようにする&パス長制限を外す動きを見せて、何もしなくてもUTF-8対応できたんや…ってなりそう。MSの動きが10年遅いんだよ。。。。"
About Unicode Enabling Applications and Code Pages – Windows Embedded Standard (Standard 7, Standard 2009, XPe…)
GetFullPathName function (Windows)
Naming Files, Paths, and Namespaces (Windows)
CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita
Windows で長いファイル名のファイルがあるフォルダに対して、ワイルドカードを使うと落ちることがある · Issue #675 · vim-jp/issues
.NET Framework 4.6.2 を発表 – Visual Studio 日本チーム Blog
More on new .NET path handling – Jeremy Kuhne's Blog
Maximum filename length in NTFS (Windows XP and Windows Vista)? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(1607)以降、レジストリ変更(LongPathsEnabled)すると、MAX_PATH制限が無くなる=システム全体の変更。 こういう制限は、アプリのマニフェスト定義でオプトインの形の方が望ましい気がする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "読み足りなかった。マニフェストに longPathAware を追加すれば、アプリ単位設定できる、とある。 https://t.co/rLxJ5bYraW (一方で、システム設定変更とマニフェスト追加の両方を行わないと有効にならない、と動作結果を報告しているサイトもあるな…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、\\?\ の場合の文字列上限に関する、最新と昔の記述の違い。 昔は「nearly 32,000 Unicode characters long」というアバウトな数字だった。… "

Naming Files, Paths, and Namespaces (Windows)
Naming Files, Paths, and Namespaces - Win32 apps | Microsoft Docs

ファイル時刻

GetFileTime function (Windows)
FILETIME structure (Windows)
SetFileTime function (Windows)
c - How do I get the file HANDLE from the fopen FILE structure? - Stack Overflow
_get_osfhandle | Microsoft Docs
_get_osfhandle - RAD Studio
_fileno | Microsoft Docs
_fileno - RAD Studio

ストレージ

Disk Management Reference (Windows)
Distributed File System Reference (Windows)
Extensible Storage Engine Reference
File Management Reference (Windows)
Offline Files Reference (Windows)
Packaging API Reference (Windows)
Remote Differential Compression Reference (Windows)
Transactional NTFS Reference (Windows)
Volume Management Reference (Windows)
Windows Storage Management Provider (Windows)
hitoさんのツイート: "CVE-2018-6557を見て、symlink restrictionの有効性に久しぶりに感動している"
Create symbolic links (Windows 10) | Microsoft Docs
Symbolic link - Wikipedia
NTFS symbolic link - Wikipedia
Symlinks in Windows 10! - Windows Developer BlogWindows Developer Blog
ASCII.jp:Windows 10 RS5で改良されたファイル名の大文字/小文字の区別 (1/2)|Windows Info
Shirouzu Hiroaki(白水啓章)さんのツイート: "と思ったが、このフラグはXP以降デフォルトでは無効らしい(レジストリ設定がある)。 で、WSL用にWin10で、ディレクトリにこのフラグを設定する例外を増設したという話…付け焼刃感強い&わかりづらすぎる。 https://t.co/rbsSnStKz5"
Enable or Disable Case Sensitive Attribute for Folders in Windows 10 | Tutorials
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に言うと、Windowsはopenやgetattr系の命令は同期なので(read/writeはasyncあり)、特にSMB3以降で、open/getattrをマルチスレッド化すると効果大。 (だが explorer はそれをやってない様子) https://t.co/bAVs9YmwHN」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya smbはopen/closeが同期かつ遅い、という印象はありますね。 逆に、nfsだとopen/close自体が無いのと、readdirplusでreaddirのついでにエントリのfh取得まで出来ます。 ただ、それ以外の話もありそう、、、sambaはユーザーモードですし。」 / Twitter

GUI

Windows Accessibility Features Reference (Windows)
DWM Reference (Windows)
Globalization Services (Windows)
National Language Support Reference (Windows)
Windows User Interface (Windows)
Windows Animation リファレンス (Windows)
Windows Ribbon Framework Reference (Windows)
Property System Reference (Windows)
Shell Reference (Windows)
Windows Search Reference (Windows)
Console Reference - Windows Console | Microsoft Docs
User Interaction (Windows)
Legacy User Interaction Features (Windows)
Windows and Messages (Windows)
Windows 10 Fall Creators Update での GetPixel、SetPixel 関数の処理速度について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 Fall Creators Update での Credential Provider に対する影響について – JAPAN Platform SDK(Windows SDK) Support Team Blog
「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題 ~一部アプリの動作速度に影響 - 窓の杜
「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題、「KB4058258」で修正 - 窓の杜
メッセージクラッカ - Web/DB プログラミング徹底解説
Windows Programming/Resource Script Reference - Wikibooks, open books for an open world

Windows のマウス キー機能 - マイクロソフト アクセシビリティ
なかのん&マジックさんのツイート: "マウスとか、特定の入力デバイスに依存したUIは本当にあかん。マウスに依存してるのだと、hover時にしか開かれないメニューとか。"
XAML Islands Archives - Windows Developer BlogWindows Developer Blog

SegmentHeap

メモリ食いのGoogle Chrome、ついに消費量削減へ - PC Watch
Opt in to the Windows "segment heap" (I217d045e) · Gerrit Code Review
May 2020 Updateの「Microsoft Edge」は省メモリ ~ブラウジング時の消費量を最大27%削減 - 窓の杜
Improving Memory Usage in Microsoft Edge - Microsoft Edge Blog
Application Manifests - Win32 apps | Microsoft Docs
Visual C++ 2017 第4回 アプリケーションマニフェストの作成(1/2) : FENIX-PC
us-16-Yason-Windows-10-Segment-Heap-Internals.pdf
Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion/ at master · synacktiv/Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion

Win32 Container

Microsoft explains how Win32 apps will work on Windows 10X - Neowin
Microsoft Bagikan Detail Lebih Lanjut Mengenai Windows 10X | WinPoin
Makoto Kato ︎︎さんはTwitterを使っています 「Windows internals Part 2が出ないところで、新しいContainerシステムなWindows 10Xが出るんだが、これをフォローするWindows internalsはいつ出版されるんでしょうか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Native ContainerなEdgeからWin32 ContainerなEdgeに変わるのは劣化だよな。。。」 / Twitter
ASCII.jp:Windows 10Xはなぜかアップデートが90秒で終わるらしい (1/2)
イスラエルエリカちゃんさんはTwitterを使っています 「Virtual events - Microsoft 365 https://t.co/OsuRSCDvBS」 / Twitter
Virtual events - Microsoft 365
イスラエルエリカちゃんさんはTwitterを使っています 「ぇっ、「Win32アプリが動くコンテナ」には「ゲストカーネルとドライバ」が動いていて、ホストOSへUIを表示する為にはホストOS上でRDP client走らせるの…」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています 「今までニュースサイトとかで話に出てた”Windows Core OS”の事っぽいから急に出てきたものじゃないみたいだけど、別OS感すげぇな」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています 「「Classicじゃん!!!(MacOS Xの)」ってなってしまった」 / Twitter
ASCII.jp:アプリ互換性を維持しつつ生まれ変わったWindows 10Xでタブレット市場を挽回できるか (1/2)
ASCII.jp:変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か (1/4)|Windows Info

NUMA

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MapViewOfFileExNuma というWin32APIが増設されていた。 https://t.co/BLSySUw57w」 / Twitter
MapViewOfFileExNuma function (winbase.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NUMA関連Win32API一覧 https://t.co/kMatP7SyHE」 / Twitter
NUMA Support - Win32 apps | Microsoft Docs

ストレージ

@shirouzu

時刻

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32のSYSTEMTIME構造体はミリ秒が最小単位。 だが、Win8以降、GetSystemTimePreciseAsFileTime という100ns単位のAPIが増設され、実効的には1usの精度のUTC時間が取れるようになっていた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIXのファイル時間は秒単位の時代が長かったが、最近はns単位が普通となった。 以前は、samba経由で保存すると(100ns単位が)秒単位に丸められてしまった。 今は、samba経由で保存すると、100ns倍数のmtimeとなり、samba経由で保存したファイルだね、とすぐ分かるように(笑)"
SODA Noriyukiさんのツイート: "あれはLinuxのext2fsがウンコだっただけで、1990年代前半くらいにはffsを採用しているOSならばファイルシステムのフォーマット的にはミリ秒(SVR4)ないしナノ秒(*BSD)、解像度的には 10ms くらいにはなってました。ext2fs だけはファイルシステム的に秒単位だったので、だいぶ不便でしたが。… https://t.co/LsrXxpYO5z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 あとは、samba側が長らく秒単位のstat/utimeを使っていたから、というのもあったのかもしれませんね。(昔、SolarisやHP-UX上のsambaでも、長らく秒単位だった記憶があるので)… "
SODA Noriyukiさんのツイート: "なんと。SVR4 の場合、stat(2) でも st_mtime は「# define st_mtime st_mtim.tv_sec」で定義されていて、tv_nsec が使えたんですが、Samba 側が使ってなければどうしようもないですねえ... 僕はずっと UNIX native の開発ばかりしてたので気づきませんでした。… https://t.co/juPB5wvdiE"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Solaris7/8時代のmanを検索してみましたが、tv_nsecの件、見当たらないですね…statがtimevecも入れた構造体に拡張されると、statのABI互換が無くなると思うのですが、timevec対応statには別syscall番号を振る、みたいなことをしたんですかね。 https://t.co/0WtgsRlw8i… https://t.co/AcDQIe6iIC"
SODA Noriyukiさんのツイート: "4.0BSDではダメですが少なくとも 4.2BSD くらいには tv_nsec 分の領域が struct stat にリザーブされていたので https://t.co/0QatkejSe6 Solarisの場合、ABI問題はないんですよ。… "
SODA Noriyukiさんのツイート: "AT&T 3b2用のピュアなSVR4の場合、 ユーザーランド: !defined(_STYPES)ならばユーザランドはデフォルトでtv_nsec用の領域がある カーネル: システムコール番号18,28,88が昔からのstat(2),fstat(2),lstat(2)、123,124,125がtv_nsecつきのxstat(2),lxstat(2),fxstat(2) でした。… https://t.co/OzUDHKxenR"
SODA Noriyukiさんのツイート: "Solaris の方を見ると、システムコール番号18,28,88が st_nsec つきのインターフェースになっていて、 123,124,125は別のシステムコールになってますね。 https://t.co/Wb44d4q1Sw… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "確かに、各timeにreserveだかspareだかという記述なら、SunOS4.1.2時代のヘッダにも、それっぽいフィールドが載っていたような気も…。 ABI的には大丈夫だったのですね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの比較表。 ext4でようやく生成日時を保存するようになった様子だが、stat(2)側の問題で、Birth timeは空のまま。 https://t.co/QHYYiPleVL… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ext4のinodeを直接漁れば、生成日時は取れるらしい。 そういえば、UNIXのctimeはちょっと変わってる印象。 (atime以外の)inode修正日時の保存し、syscall経由では変更不可、というのは解析やセキュリティ用途を意識したものだったのかしらん? (たしかに調査用途に使ったことがある)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "timevecじゃなくてtimespecだった。 この構造体はいつ頃定義されたのかしらん。 (初めて意識に上ったのはnanosleepを使おうとした2000年くらいだったか、あまり昔という印象が無い)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho Win32API経由でOneDriveフォルダ(WebDav)を操作すると、CreateFile -&gt; WriteFile -&gt; SetFileTime -&gt; CloseHandle だと SetFileTime が反映しない・ローカル側が消えると秒粒度になる等で、使いづらい面はありましたね。 (OneDrive(WebDav client)実装側の問題かも)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。LAN用のファイル共有プロトコルから離れると、細かな問題はいろいろありそうですね」 / Twitter

セキュリティ

Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は、共有ドライブルートのACLは読めなかったと思うのだが、Win10で試すと問題なく取れるようになってるなぁ。 共有ドライブルートの場合、GetFileAttributes APIすらエラーになっていた記憶があるのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsドメインでのACLの扱いは、NT3.5時代にドメイン管理していた頃の知識のままだなぁ。 ローカルグループ同士は入れ子構造にでき便利だったが、サーバ側ドライブのACLで使えない。ドメイングループは入れ子表現できず、適切なACL表現にするのに苦労した記憶…今はそんな縛りは流石に無いのかな?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CreateFileにACCESS_SYSTEM_SECURITYを立てると、BackupReadでもSACLを取得できるとは知らなかった。 でもこのフラグを立てたCreateFileはAdmin必須でsambaではエラーになる。local + admin の場合のみ有効にするかな…。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.62をリリース。 ACLオプション動作の拡張(管理者権限でローカルNTFS(or ReFS)間のコピーでは、DACLだけでなくSACLもコピーするように) https://t.co/L7jJavdtio #fastcopy"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsでEAを使うには、ZwSetEaFileというドライバー用APIのユーザランド版をntoskrnl.dllからGetProcAddressして使うしか無さそうに見える。 https://t.co/4Y9332b9lq"
ZwSetEaFile routine (Windows Drivers)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32/NTFSって、chmod 600 としたいだけでも、これだけ手順必要。 (多機能=典型的な設定すら大変な作業に…典型的なダメデザイン) https://t.co/5J7695dCnB」 / Twitter
Win32API セキュリティ属性を指定してファイルを作成する - s-kita’s blog

direct I/O

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういうレポートは有り難い。 https://t.co/mOLcjcLzn4」 / Twitter
Results of using FastCopy in an LTO Drive environment. - Google グループ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1ファイル毎にヘッドが戻る現象、ftruncateが効いているのか、SetFileTimeが効いているのかだろうなぁ。 前者なら対処は可能だが、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「direct I/Oで用意するバッファ、セクタ単位必須(&アライン)なのはいいけど、末尾書き込みサイズは非セクタ単位をサポートしてほしいところ。 実際、読み込みではその仕様だし、、、書き込みと非対称。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、direct I/Oで末尾のセクタ単位未満のアクセス。 別スレッドで観察すると、末尾以降にディスクのゴミデータが一瞬現れた後にゼロクリア、なんてことが起きてないか、ちょっと気になったり。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IO前に、mmu/pte的に当該ページ群をユーザランドから無効化してそうだな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「太古のUSBだと Direct I/O や Async I/O でバグるのものあるのだよなぁ。 (あと XP時代のRDP Drive共有で Async I/Oで書き込み場所が狂うという豪快なのも…Async I/O = offset位置明示APIにもかかわらず)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista あたりから Async I/O、Win8.1くらいからDirect I/Oを 標準Explorerでも使っている様子で、それ以降は枯れてきた感じある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、Linuxでも Async I/O が枯れてない話があった記憶…最近は io_uring も充実してきたので、状況変わったかな?」 / Twitter

histric-1

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy実験。 削除をマルチスレッド対応にすると、ネットワークドライブの削除(小さなファイル群)で2.5倍の速度が出るようだ。 (ローカルドライブでも、1.5~1.8倍くらいのレートに)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルドライブの単一ファイルシステム内の並列削除でも、マルチスレッドで高速化している。 OSファイルシステム処理(NTFSドライバ&キャッシュマネージャ)が、きちんと並列処理している現れで、興味深い。 (=MFT処理でジャンボロックなどしていない、ということ)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "本当はwin32に、asyncなopen/delete apiが欲しい。"
Ryota Shioyaさんのツイート: "Windows 上のファイルの削除ですと,先に全部ファイルを消してから次にディレクトリを消すと妙に速くなると言うのを以下で見て,実際やってみたらその通りだった記憶があるのですが,このあたりって何か関係あったりするんでしょうかね https://t.co/dUbeTuLfzA… https://t.co/bXc0f8WfP8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "どうなんでしょう? 手元のWin10(17134)で、HDD/SSDで数万~数十万ファイル程度の削除を何度か確認した範囲では、rmdir単体より、del + rmdir の方が速い、という傾向は出ないみたいですね。 XP~Win10のどこかで、処理が変わったのかもしれません。… https://t.co/2VRWenxYJb"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSファイル削除は、ブロック解放($Bitmap変更)、当該ファイルスロットの無効化(MFT自体の変更)、direntryの削除(B+treeのリーフ削除?)といった(あとジャーナル($LogFile)もかな)、あちこちにアクセスする話なので、それらの物理配置も強く影響しそう。(つまり作成時の状態に依存)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "高速なファイル検索のためには、先に空ファイルを全て作った後に、ファイル実体を作った方が、dir-entryの物理配置が集約するので良い、という話もあったり。 (いかにB+treeでも、物理ブロックが飛び飛びになると遅くなる)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、SSDだとディレクトリのフラグメントはもう気にしなくていいかもしれない。(未計測だが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "削除多重度を上げるため、全ファイル非同期削除→全ディレクトリ削除、という2フェーズ削除を実験してみたが、これはHDD上では逆効果だった。 (別ディレクトリエントリ間の並列動作=ヘッドシーク多発、となった可能性あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSにバックアップ(FastCopy)すると「CreateHardLink(この要求はサポートされていません。50)」が大量に出ていた。 何だろうと思ったら、ReFSはハードリンクをサポートしていなかった。ReFSがシステムドライブに使えないのが理由の一つが良く判る(WinSxSには大量ハードリンク有り)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルNTFS相手でも、多数のCreateFileをマルチスレッド化すると目に見えて高速化するのは想定外だった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32サブシステムは、ファイル名の大小文字("A"と"a")を同一と見なすが、いわゆる全角の大小文字(「A」「a」)も同一とみなす…ちなみに「あ」と「ア」は別。 (なお、NTFS内は区別していて、POSIXサブシステム経由だと別扱い)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTCreateFileを使うと、openat()相当の動作が可能になる。 ただし、そのハンドルはNTxxx系APIでしか利用できない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FAT32内のキリル文字ファイルをD&Dすると、FindFirstFileExW()で ERROR_NO_UNICODE_TRANSLATIONが発生する謎、しかもコマンドライン起動の場合は発生しないとのこと。 W系APIの中で、MBCS変換している?謎だ… https://t.co/FwWfW0lFp8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WinAPIというより、システムコールと呼ぶべき、NTCreateFileを使うと、openat相当の技が使えるようになる…今計画している拡張にはすごく欲しいな。 (計画だと、パスデータのメモリコピーが多く発生しそうなのだが、それを一気に減らせる)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetVolumeInformation、Win7以降からようやく、FileSystemFlagsにまともな値が返ってくる様子。 (ただし、この値を信用するとXP/Vistaでまともに動作しなくなる。起動すら不可、にしたら使う感じかな)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。ちょっと補足すると、 ・Transactional NTFS は事実上obsolete。 https://t.co/Ff9lb6vR4u ---- 「Windows のファイルのコピーは、驚くほど奥が深い」 https://t.co/O0fi9TiORc"
Transactional NTFS (TxF) - Windows applications | Microsoft Docs
登 大遊 - Windows のファイルのコピーは、驚くほど奥が深い。 Windows... | Facebook
Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに補足。 ・ファイル拡大でゴミを読み取る可能性があるのは、SetFilePoiter+SetEndOfFile ではなく、SetFileValidData(管理者権限)を使用した時だけ。 (NTFSで)前者で領域確保のみを行い、ReadFileを行うと0データが返る。 初めてWriteした時点で、0~書込位置にゼロfillが走る。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なおFAT系の場合、書き込み時ではなく、領域確保時点でゼロfillが走る。 NTFSの挙動は extent方式の特徴。extent管理領域に「未書き込み」フラグを立てておき、読み込みで0を返す、という技が使える。 (ext4も同様で、ftruncateによるサイズ拡大が一瞬で終わるが、ext3だとゼロfillが延々走る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "下記は、一応昔ながらの BackupRead という手はあるかも。 >「Win32 SDK の API ドキュメントを見渡したが、NTFS のアクセス権限を無視した代替ストリームの列挙を可能とする API は 1 つも存在しなかった」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、SetFilePointer+SetEndOfFileは実領域確保が約束されているわけではなく、samba ではsparse fileとなり、これを避けるには(お勧めは出来ないが)SetFileValidData を使えばいけたはず。 (ただ、このAPIはfallocateに翻訳されるため、ext3だと延々zero-fillになる問題が出る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、登さん、良く調べてるなぁ。さすが。"

histric-2

Shirouzu Hiroaki(白水啓章)さんのツイート: "もし一般権限でファイルサイズ拡大だけで、全ユーザの削除データを読み取れるなら、ACLなど無意味な特大セキュリティホールのような…… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。 ドキュメントに保証する記述が無いのは、そのためと。 https://t.co/fE5alE9v4y"
On the various ways of creating large files in NTFS | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: ""NtSetInformationFile extends the file and pads the extension with zeros." とあるので、NT系ならNTFS以外でも0fillを期待して良さそう。 https://t.co/HIOONRG02K"
NtSetInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "この件で、久々に「Windows NT ファイルシステム詳説」を見たのだが、あまり役に立つ情報は見つけられなかった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、昔の記憶にあった通り、「NTキャッシュマネージャ」は単なるキャッシュ以上の動きをしていることを確認できてよかった。 (場合によって、ファイルシステムドライバ側の領域拡張命令を呼び出したりする)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは正確でなかった。 WindowsNTファイルシステム詳細を参照すると、(ext4やxfsと違い)未書き込み管理はextentに保存していない。 ValidDataLengthという8byteの属性のみで、そのため、先頭からnバイトまで有効なデータ、という情報のみ=末尾writeすると、先頭~末尾0fillを行う必要が出る。"
鯉江さんのツイート: "ちなみにext4とかだとエクステント内に穴があくときはどうなるんでしょう?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そんなことは無かった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetFullPathNameW、パス途中にショートファイルな要素が存在すると、fnameポインタがNULLになる、というバグ的挙動があるな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "この関数「マルチスレッドでは非推奨」とあって驚く。 static buffer類は使ってないのに何故?と思ったら、「C:だけ指定するとカレントディレクトリを埋めて戻す」機能があり、別スレッドがcwdを変えると問題になるから、というオチだった。なんだそれ感。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ふーむ、IO_REPARSE_TAG_LX_SYMLINKって知らなかった。 https://t.co/HCp71rLXsL"
ツッコミどころいろいろ (#3611861) | Windowsにおけるファイルコピーに関する驚くほど複雑な注意点 | スラド
Shirouzu Hiroaki(白水啓章)さんのツイート: "SHCreateItemFromParsingName APIに対しては、たとえMAX_PATHを超える場合も、\\?\ を付けてはいけない謎tips。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それはいいのだが、8.3文字変形される(=longpathではMAX_PATHを超える)場合、ファイルダイアログ系&ドラッグ&ドロップで、非ASCIIパス要素が化けるバグがある様子。 たとえば「あいう」が「B0D0F0」に化ける。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(17763)でLongPathAwareを有効にしなくても、ファイルダイアログ系で(バッファ指定を大きくすると)MAX_PATHを超えるパスを格納してくる様子。 パス要素8.3文字化でMAX_PATHに収まるときはその形。それでもMAX_PATHを超える時は \\?\ を付加して通常パス名で格納というハイブリッド動作。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、マニフェストでlongPathAwareを有効にすると、そもそも8.3文字変形が無くなるため、この問題は消える。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32では、Symlink / Junction / Mount-point はいずれも「リパースポイント」という枠組みで実装されている。 FastCopyではリパースポイントをリパースポイントとして複製しているため、新しい種類のリパースポイントが現れてもそのまま動作するはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、リパースポイントにもカテゴリーがあり、DeDupやHSM(階層化ストレージ)用のリパースポイントだけは実体をコピーするようにしている。 具体的には、IsReparseTagNameSurrogateで識別する。 https://t.co/E4AEELiaOm"
IsReparseTagNameSurrogate macro (winnt.h) | Microsoft Docs

histric-3

Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、Win10(17763.475)上で、マニフェストlongPathAware(&レジストリLongPathsEnabled)を有効にしても、Drag&Drop経由では ShortPath換算MAX_PATH以内のファイルしか受け取れない様子。 (DragQueryFileWで MAX_PATH以上のバッファを指定しても無効)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ManifestでLongPathAwareを組み込むには、Win10SDKのmt.exeが必要。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「MSさん、FILE_SHARE_DELETEを作った時にUNIX的挙動に寄せなかった理由は何だろうなぁ…まったくもって使いづらい。 (大昔と違って)開いていてもリネームは可能なので、それで凌ぐことが多い。(インストーラで、コピーしたいファイルが開かれている時など) https://t.co/pOOus50ERd https://t.co/YiOxt1mLTJ」 / Twitter
消えないファイルの話 – JAPAN Platform SDK(Windows SDK) Support Team Blog
mattnさんはTwitterを使っています: 「提案している人達は FILE_SHARE_DELETE を付け足す事で logrotate を実現したいという話だけども、Windows の FILE_SHARE_DELETE は UNIX のそれとは違う。これは issue の中のC言語のコードでも実証した。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昨年から fsutil file setCaseSensitiveInfo dir-path enable とやると、WSL配下以外でも大文字小文字を別ファイルとして扱うように、という今更迷惑千万な改変。 API的には NtQueryInformationFile(FileCaseSensitiveInformation) という隠しAPI的な呼び出しが必要。 https://t.co/9mIoB1292f」 / Twitter
NtQueryInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32APIのUTF8拡張を、システムグローバルなコードページ(日本だとSJIS/CP932設定)をUTF8に変更で実現もそうだけど、とってもセンスがない。 (APIの場合、やるならUTF8専用API(=主にW系APIのラッパーで良い)の追加が最もスジが良い方法)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「何と、この問題が起きるのは FindFirstFileExW だけであり、FindFirstFileW では問題なかった。 MSさん、一体どういう実装しているのかしらん…? https://t.co/Rm1VAZ6MUB」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いい加減な情報を返すことがある FindFirstFile系… ---- 「本当に最新情報が欲しい場合は GetFileInformationByHandle を使え」 https://t.co/RnvYvsd0en」 / Twitter
FindFirstFileExW function (fileapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSの副次ストリーム(ADS)の上限数が、ストリーム名長合計に依存する話。 副次ストリーム名は$ATTRIBUTE_LISTに含まれ、$ATTR…のサイズ上限は256KiB(&UTF16で格納)。 https://t.co/D5Utjev1J6」 / Twitter
How many alternate data streams can a file have? - Colin Atkinson's Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SSD/NTFSで、10並列CreateFileすると、CreateFileプロセスよりMsMpEng(Windows Defender)がCPUの殆どを消費してしまう…これをOFFにすると10倍くらいCreateFile速度が延びる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GetDiskFreeSpaceWはドキュメントと違い、途中dirでも情報取得できる模様。(実際そうでないとジャンクション等で困る) https://t.co/JO3ALotTaK」 / Twitter
GetDiskFreeSpaceW function (fileapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、GetFileAttributes等のfileattrに 0x100000 という undocumented な値が取れてしまう。 調べてみると最新のwinnt.hに FILE_ATTRIBUTE_UNPINNED という値が増えていた。(ただし説明無し。クラウド上ファイルをローカルに常駐させるかのフラグっぽい) https://t.co/VUwGZzsUSM」 / Twitter
What do new Windows 8/10 attributes mean: No scrub file (X), Integrity (V), Pinned (P), Unpinned (U) - Super User
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy英語掲示板で、アーカイブビット(変更があると1になる属性bit)を利用したバックアップできると良いなぁ、というご意見。 今時でもコレを利用したバックアップって、メジャーなのだっけ?」 / Twitter
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「弊社ではまったく扱った記憶がなく、、どちらかというとAcronisとかのバックアップソフトが活用するメタなのでは?と思ってたり」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「タイムスタンプ&サイズ」が無変化だが、実は変更有だとアーカイブビットの意味ある…だがその状況はかなりレア。 (mmap中のメモリ経由更新はその類い。ただmmap中ファイルはバックアップする意味ほぼない)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Ext4 の Case Insensitiveモードって、Windowsとのファイル交換トラブルを減らすために作られたのかしらん? ちなみにWindowsだと、日本語ファイル名の「A」と「a」も同じ文字扱いと知っている人は少なめ。」 / Twitter
概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu ちゃんと追ってないけど、考慮不足な気がするんですよね。Sambaの下敷きとして使うときにcase insensitiveが欲しくなるのはそうなんですが、そういう時には厳密にMS互換の動作をしてほしくて、Unicodeルールで処理されてもうれしくないと思うんですよ」 / Twitter
UnagiさんはTwitterを使っています 「うお。全角 A a が同じなの今まで気付いてなかった。試してみると macOS もそうなのね。」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「動作が奥まで見えていると、無駄・並列化可能部分が判るのだろうなぁ。 16年前にFastCopy設計した時も、src/dstは別物理HDDなら並列化可能(逆に単一HDDなら大きなバッファ単位で切り替え動作が良い)、OSキャッシュは利点無いので回避、といった知見の積み重ねだったな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「&gt;OSキャッシュは利点無い 大量のコピーやバックアップ的な動作では、srcやdstに溜まったキャッシュは、次々発生するコピーによって置き換わって再利用されず、しかも他のプロセス/ファイルの物理ページもLRU的に侵食していたのだよね。 (なお最近のWin10は置換ロジックが少し改善されたのだが)」 / Twitter

file コマンド

ぬるぽへさんのツイート: "最近のfileコマンドは、先頭のマジックとマジックごとに用意されたテキストデータベースを比較するとかじゃなくて、専用のバイトコードでマジックのインタプリタが書かれていてそれを走らせて判断しているらしい"
Tsukasa #01さんのツイート: "magic のバイトコードは一応チューリング完全になることを回避してるはず (私が知る magic では自由な形でのループは制限されてたはず)。 #kernelvm"
Tsukasa #01さんのツイート: "あぁ、線形実行する形になってるからやはりチューリング完全ではない (ある値にマッチしたら深いマッチを行える程度) し、実行時間も完全に予測/制御可能。 #kernelvm"
本の虫: 実行可能ファイルかつPDFファイルかつJarファイルかつHTMLファイルとして認識されるファイル

Cached I/O と Non-Cached I/O の違いをパフォーマンスカウンタで見てみたよ - NyaRuRuが地球にいたころ
「システム キャッシュ」の謎 - NyaRuRuが地球にいたころ
ハードウェア書き込みキャッシュのバイパス要請 - NyaRuRuが地球にいたころ
メモリマップドファイルとワーキングセット - NyaRuRuが地球にいたころ
Win32 API でファイルのハードリンクカウントを調べる - WinSxS フォルダの真実 - NyaRuRuが地球にいたころ
ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ
SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
Vista のファイルコピーが遅い件について - NyaRuRuが地球にいたころ
記事紹介: Inside Vista SP1 File Copy Improvements (2) - NyaRuRuが地球にいたころ
記事紹介: Inside Vista SP1 File Copy Improvements (1) - NyaRuRuが地球にいたころ
IWordBreaker とファイル検索 - NyaRuRuが地球にいたころ
ReadyBoost と FILE_FLAG_NO_BUFFERING - NyaRuRuが地球にいたころ
Big Sky :: CreateFile で FILE_SHARED_DELETE を指定するとどうなるか
全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita
ほぼすべてのウイルス対策ソフトにOSを破壊可能な脆弱性 ~現在は多くのソフトで修正済み - PC Watch
Microsoft、ゲームのロード時間を大幅削減する「DirectStorage」のWindows版を提供 - PC Watch

インストーラ

Windows Installer

MS

Windows インストーラー パッケージの作成
Visual Studio Installer :インストーラ パッケージ (.msi) ファイル
Windows インストーラーのエラーをトラブルシューティングする方法
Download Windows Installer 4.5 Redistributable - 日本語 from Official Microsoft Download Center
Windows インストーラー 4.5 について
【レビュー】「Windows Installer」の不正なインストール情報をクリアできるMS純正ツール - 窓の杜
Windows インストーラーの基本概念
Windows Installer (Windows)
Windows Installer Guide (Windows)
Windows Installer Reference (Windows)
About Windows Installer (Windows)
Windows Installer Examples (Windows)
Overview of Windows Installer (Windows)
Using Windows Installer (Windows)

サードパーティ

Windows Installer の修復によるインストールトラブル対処方法(Windows)
Windows Installer を修復してインストールの不具合を回避する方法 - F-Secure Community - 67241
「Windows Installer」とは何ですか? - Wise for Windows Installer 5J Professional - ナレッジベースの詳細 | GrapeCity Developer Tools
Windows Installerに対応したソフトウェアのリモートインストール手順
相栄電器 サポート情報: インストール時に Windows Installer のログを記録する
インストーラー作成ソフト「Inno Setup」が2年ぶりのバージョンアップ - 窓の杜
jrsoftware.org // Jordan Russell's Software

Qiita

Windows GUIプログラミング入門15 インストーラー(1) - Qiita
インストーラー作成ツールの選択 - Qiita

Wikipedia

Microsoft Windows Installer - Wikipedia
Windows Installer - Wikipedia
WiX - Wikipedia
WiX - Wikipedia

Twitter

おおきくてながいさんのツイート: "インストーラーの中身は全く見てないけどmsiならupgrade table吹き飛ばしたりsetup.exeからたたいてるみたいだからレジストリにlogging=voicewarnupつけて引数解析したうえでmsi直実行したりproperty tableのそれっぽい値を探したりいろいろ悪いことは思いつくインストーラークラスタ"
おおきくてながいさんのツイート: "インストーラーの中身全然知らないけどね。orcaも入れてないし。うん、全然知らない。何にも知らない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスに誤検出されずらい、インストーラの作り方、を知りたいところ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "この形にしたのは(Explorer等を使った場合に起きる)展開ファイルにゾーン情報が付与されるのを回避するため。 付与されていると、exe実行時に警告が出る以外に、ヘルプ(.chm)の目次は出るものの、肝心の中身が表示されないという、原因が分かりづらい問題が出る。… https://t.co/e71lQ4w7g3"
うがp@「~」←ちるだ!!さんのツイート: "FastCopyを使っていた人ならわかるけど、 今回からINSTのみの配布。 実行時、展開のみ というオプションがあるみたい。 高速ファイルコピーツール「FastCopy」v3.50が公開 ~処理が2倍以上高速化するケースも - 窓の杜 https://t.co/nHxDHpWnVQ @madonomoriさんから"
Shirouzu Hiroaki(白水啓章)さんのツイート: "32bit/64bit版を同梱した共通化インストーラ(32bit製)が完了。 1,194KB → 1,461KB と約22%のサイズ増加。 ただ今時だと、誰も気にしないレベルかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "/SILENT, /EXTRACT, /EXTRACT(32|64) などのオプションも追加。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WinServer 2008以降、WOW64 をアンインストールすることが可能になっている様子。 (32bit製インストーラのみ、という点がネックになる可能性はあるのかな?) https://t.co/YAD124wZZ3"
WoW64 Is Now an Optional Feature for Server Core (Windows)
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyインストーラは、インストーラexeをビルド後、末尾にメインファイル群を付加する形。 IPMsgインストーラでは、インストーラのソースに、メインファイル群をC言語データ配列化したものが含まれ、ビルドするとexe自身にそれらが内包される形。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "後者は、アンチウイルスの誤検出低減への効果を期待したものだったが、数年運用した結果として、全く無意味と判った(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy最新版は、32bit/64bitの両インストール(or 取り出し)を可能にした、単一インストーラ(当然32bitバイナリとして作成)となった。 今のところ、特に困った人もおらず、こちらは配布ファイルが1つで済むので良いことしかない様子。次の IPMsgでも同様にしよう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "普通にインストールすれば、x64環境ではx64版が動くはず。 だが、わざわざx86版を取り出して、x64環境で使っている人が居るっぽい。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラに、sha256による自己ハッシュ検証を入れるように変更。 ただ、コード署名を入れれば不要になるが。"
Rockridgeさんのツイート: "Fx65:MSI形式のインストールパッケージをサポート。15年前から要望がでていたが、ついに。参照:https://t.co/eWVZm3gyU7 / “show_bug.cgi?id=1475510” https://t.co/yw35MuaNhh"

WiX チュートリアル 日本語訳
WiXではじめるWindows Installer作成入門 第1回 (1/3):CodeZine(コードジン)
Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する
Visual Studio 2015でWindows Installerを使えるようにする - Webサービスで起業を目指すプログラマーblog
Visual Studio 2015 Community Edition で Windowsインストーラを作成する - グロブ
Visual Studio 2017 Installer Projects でインストーラーを作成する │ Web備忘録
Visual Studio Installer (インストーラー プロジェクト) に関するあれこれ | Tk2Kpdn Wiki
Windows Installer の削除して良いファイル - Windows 2000 Blog
第561回 ローカルインストール時もcloud-initを活用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

MSIX

MSIX とは - MSIX | Microsoft Docs
Three things you need to know about Windows Developer Day - Windows Developer BlogWindows Developer Blog
Microsoft/msix-packaging: MSIX Packaging SDK
Free Windows Installer - MSI Installer Tool
Grant identity to non-packaged desktop apps | Microsoft Docs
Identity, Registration and Activation of Non-packaged Win32 Apps - Windows Developer Blog
新しいUWPとWin32アプリケーション配布モデル
Microsoftがアプリ戦略をアップデート 新形式「MSIX」でモダン化は進むか (1/2) - ITmedia PC USER
MSIXでパッケージ可能になった開発者向けWindows 10 SDK Previewが公開 - PC Watch
新しいアプリインストール形式“MSIX”が利用可能 ~「Windows 10 RS5」Build 17682以降 - 窓の杜
Microsoft、次世代アプリパッケージ“MSIX”を作成・編集するツールをストアで公開 - 窓の杜
「MSIX Packaging Tool」がストアで正式公開 ~MSI後継のインストールパッケージを作成 - 窓の杜
Microsoft、“MSIX Packaging Tool Insider Program”を開始 - 窓の杜
「Windows 10 May 2020 Update」、開発者向けの準備が完了 ~“Go-Live”なSDKが公開 - 窓の杜
Windows Virtual Desktop の MSIX アプリのアタッチの概要 - Azure | Microsoft Docs
Windows Virtual Desktop の MSIX アプリのアタッチ - Azure | Microsoft Docs
「Windows 10 Enterpriseマルチセッション」で「MSIX App Attach」をサポート - ZDNet Japan

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7以降、「プログラムの追加と削除」エントリは、非Adminでも登録可能になっていた。いつアナウンスされたのだろう…? (正確には HKEY_LM 以外に HKEY_CU 配下の REGSTR_PATH_UNINSTALL も有効になった、という形)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「コード署名」「Program Filesインストール」「マニフェスト(uiAccess=true)」の3つが揃ったプログラムはUACをバイパスして、管理権限プロセスにも SetWindowsHookEx できるのね。 (インストール時に管理者権限必須とはいえ、ちょっと微妙だな…) https://t.co/T9bnrIg7Ip"
visual studio でビルドする際の uiAccess="true" について
Shirouzu Hiroaki(白水啓章)さんのツイート: "正確には、管理者権限アカウントからプロセス起動した場合に、UACでは落とされるべき一部特権が落とされないで起動する、という話だろうなぁ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsで、日本語(マルチバイト)ユーザ名だけで発生する問題、時折、うっかり踏んでしまう…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近の FastCopy や IPMsgインストーラは、x86/x64版を同梱したファットバイナリで、OS種別により x86/x64バイナリのどちらかをインストール。 配布ファイルが1種類になり楽になった。 (以前は x86/x64 * exe/zip の4種類インストーラを配布。exeのみでOKになったのはコード署名のおかげ)… https://t.co/g8o1y5YmLv"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この意味が未だに分からない…どういう意図なのだろう? https://t.co/KLLYxZcwBT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「設定→「アプリと機能」と、コントロールパネル→「プログラムと機能」in Win10。 アンインストール時、ユーザ権限インストールで登録されたアプリでも、前者だけは必ず管理権限を求められる。」 / Twitter
UnagiさんはTwitterを使っています 「@shirouzu うちのだと特に特権昇格してくる事はないんですけど、確かに動作が違っててよくわからん動きするんですよね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix そうなのですね。 ところで「動作が違って、、、」というのは具体的にはどんな違いでしよう?」 / Twitter
UnagiさんはTwitterを使っています 「@shirouzu うまく説明できないんですが、RestartManager API 周りがちゃんと動いてくれてない感じなんですかね。自分のアプリを落としてアンインストールした後にまた上がってきたりする。他のアプリでも、動きは違うけどうまくアンインストールできないケースをよく見ますね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix なるほど、、、 環境によって挙動がバラバラだと対処に困りますねぇ。」 / Twitter

2019年2月6日 OSを"インストール"ではなく"デプロイ"する ―マルチブート環境を簡単に実現するデプロイツール「znx」:Linux Daily Topics|gihyo.jp … 技術評論社
Dockerイメージのレイヤー構造について - めもめも
ASCII.jp:WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)
第9回 Windowsのファイルシステムの概要とFATファイルシステム (1/2):Windows OS入門 - @IT
Periodic Background Sync 及び Web を Install するということ | blog.jxck.io
FadisさんはTwitterを使っています 「CentOSのインストールディスク、ボリューム名をデフォルトから変えるとinitrdの中で詰んでしまうの何でかと思ったけど、これ光学ディスクドライブが複数あるマシンでブートした時に間違ったディスクをマウントしない為にボリューム名をチェックしてるのか」 / Twitter

システム情報

システム情報
SystemParametersInfo 関数
IsProcessorFeaturePresent 関数
GetSystemMetrics 関数
GetSystemInfo 関数
GetKeyboardType 関数
GetCurrentHwProfile 関数

アクセシビリティ

Windows 8.1/8 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Windows 7 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Windows 10 のアクセシビリティ機能 - マイクロソフト アクセシビリティ
アクセシビリティ
マイクロソフト アクセシビリティ ホーム
アクセシビリティ対応アプリケーションの開発 – Windows アプリ開発
支援技術情報トップ - マイクロソフト アクセシビリティ
Windows Vista のアクセシビリティ機能 | マイクロソフト アクセシビリティ

Audio & Video

DirectX Video Acceleration - Wikipedia
DirectX Video Acceleration - Wikipedia
DXVA の構造体
MediaSinkでDXVA
便利機能 >ハードウェアデコーディング
Media Foundation - Wikipedia
Media Foundation - Wikipedia
つまみぐいプログラミング Media Foundation でカメラ画像を取得
XAudio2とMedia FoundationでMP3/WMA再生 - syghの新フラグメント置き場
MediaFoundation --- 動画の読み込み - 何でもプログラミング
5時間でMedia Foundation Interfacesをとりあえず使いこなしてアプリに実装する心得 - notes5375
MediaFoundationを使う (1) MediaFoundationの特徴 - プログラマのつれづれなるままに
Media Foundationで再生する動画(wmv)をDirect3D 9 surface上で表示したい
チュートリアル: WRL および Media Foundation を使用した Windows ストア アプリの作成
MediaFoundationでID3D11Texture2Dに動画のフレームを読み込む 覚書β - 昏の花
XAudio2 Introduction (Windows)
XAudio2 移行ガイド

Fixstars Tech Blog /proc/cpuinfo

Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo
Windowsデバイスドライバの基本動作を確認する (2) : プラグアンドプレイ - Fixstars Tech Blog /proc/cpuinfo
仮想マシン上でWindowsデバイスドライバをデバッグする - Fixstars Tech Blog /proc/cpuinfo
Windowsドライバのテスト署名の動作を確認する - Fixstars Tech Blog /proc/cpuinfo
WDKのサンプルRAMDiskドライバを触ってみた (1) - Fixstars Tech Blog /proc/cpuinfo

Wikipedia

クライアント/サーバー ランタイム サブシステム - Wikipedia
Win32コンソール - Wikipedia
Windows プレインストール環境 - Wikipedia
Windows Recovery Environment - Wikipedia
Windows Aero - Wikipedia
ClearType - Wikipedia
Microsoft Transaction Server - Wikipedia
Desktop Window Manager - Wikipedia
Windows Imaging Component - Wikipedia

GitHub

EasyHook
EasyHook/EasyHook: EasyHook - The reinvention of Windows API Hooking
Microsoft/vcpkg: VC++ Packaging Tool
masafumiさんのツイート: "MicrosoftからHLSLを様々なグラフィックスAPI向けシェーダにコンバートするツールがオープンソースになってた。SPIR-VやMetalとかどうなんでしょうなぁ ShaderConductor https://t.co/LgrPRJUkTr"
Microsoft/ShaderConductor: ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages

Qiita

Wine Emulator の内部構造 : Inside Wine - Qiita
Visual Studio 2017 Update 3 で Win32 プロジェクトが作成できなくなった時の対処法 - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "VisualStudioデバッガで、文字列表示をMBCSからUTF-8に変更する方法、残念ながらVS2017の設定ファイルに項目当該が見つけられない。 https://t.co/55UOPeSTn2 (毎回ウォッチ画面で、str, s8 とかすればいいのだが、ちょっと面倒)"
Visual Studio のデバッガで文字列を UTF-8 で表示させる - Qiita
ダウンロードしたファイルの「ブロック解除」をコマンドで - Qiita
Windows 10 NTFS代替ストリーム - いろいろメモ
COM Advent Calendar 2014 - Qiita
【IE限定】JavaScriptからCOMを呼び出す - Qiita

Twitter

その他

藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "Cygwinがsocket全部にSO_{RSV,SND}BUF付けて回るのやめさせたら速くなったよって話 / “Windows network performance suffering from bad buffering |…” https://t.co/dIyhmKE12X"
Windows network performance suffering from bad buffering | Networking Blog
道化師さんのツイート: "Windows さん、単純なファイルの読み書きを大量に実行するとそれだけでちょくちょくエラーになるのホント勘弁して欲しい。。。 # 失敗した場合でもリトライするだけ成功する"
sweetie089さんのツイート: "windowsの下位互換性は他に比べるとすごいけどやっぱり色々切り捨てていて、例えば別に確保した隣り合うメモリーを一つと扱い巨大データを入れて一部APIに突っ込むとエラーする。 これができる前提のコンパイラ利用アプリは動くけど長く使ってると唐突に落ちるという意味不明挙動になりマジで困る。"
Windows_Japanさんのツイート: "【ファイルの容量をいち早く確認したいそんなとき】 メールに添付をするときなど、ファイルのサイズが気になる時はありませんか? 「Alt+ダブルクリック」でファイルを選択するとプロパティを表示できるので、すぐに確認ができますよ。 #Windows #Windows10… https://t.co/npiBujXYu0"
品川 高廣さんのツイート: "Windows 10 SDK (10.0.17763.0) にある Windows Hypervisor Platform API のヘッダファイルにタイポを見つけた。UINT32 を UNIT32 と書くのはありがちなタイポではあるけど、Microsoft がやるとはね。https://t.co/ys9MFdwl3e"
Virtual Processor Exception | Microsoft Docs
マイクロソフトサポートさんのツイート: "エクスプローラーをすぐに開きたい時は、「Windows」キー+「E」キーを使うのがお勧めです。キーボードだけで操作できるので作業時間の短縮にもなります。覚えておくと便利なショートカットキーですよ #MSHelpsJP… "
moriyoshitさんのツイート: "これかー https://t.co/xyp9yF9c3u… "
http://www.catch22.net/tuts/undoc01
mattnさんのツイート: "通常 Windows のプロセスは UNIX の様に extra FDs を渡せないんだけど、どうやら STARTUPINFO の lpReserved2 に * fd の個数 * fd の種別 * fd の配列ポインタ の構造体ポインタを食わせた場合には UNIX と同じ動作になるという裏 API があるっぽい。"
Takashi Kawasakiさんのツイート: "Restart Managerも結局のところ中途半端な感じだし、MSIは何をしているのかわからんし、Windows Updateでの再起動を減らしましたって話も気づいたら元に戻ってるし・・・、ファイルロックからは逃げられないのだよ。"
Akso de la Malbonoさんのツイート: "ちょっと待って, Windows 上で動くバイナリエディタ探したら20年以上更新が停止しているソフトウェアがいまだに人気で現役稼働ってどういうことやねん.というか,それよりも20年以上更新が停止しているプログラムが最新 OS で普通に動くってどういうことやねん."
Takashi ToyotaさんはTwitterを使っています: 「テーブルは各プロセスに紐づけられている。解析すれば、各プロセスとカーネルオブジェクトの関係が簡単に分かる。たとえば、気になるプロセスが参照しているレジストリ(Keyオブジェクト)情報を容易に取得・解析できる。」 / Twitter
Takashi ToyotaさんはTwitterを使っています: 「Windowsのハンドルテーブル周辺は幾度となく内部変更されてきた。この記事では変更の背景をアセンブラーレベルで紹介している。このテーブルはオブジェクト名前空間と関連し、フォレンジック解析では避けて通れない。大変魅力的なテーブルである。」 / Twitter
Takashi ToyotaさんはTwitterを使っています: 「WinDbgとWindows XP/7/8/10のハンドルテーブル解析 https://t.co/XYwXiaXNRS via @t_toyota」 / Twitter
Inada NaokiさんはTwitterを使っています: 「Windows 1903 から、アプリ単位でACPをUTF-8にできるようになったらしい。今までは-W系APIが推奨されていたけれども、これからは-A系もOK。 https://t.co/g5V8HEBJVG」 / Twitter
Windows UTF-8 コードページを使用する - UWP apps | Microsoft Docs
だんぼーだよさんはTwitterを使っています: 「PaaS やマネージドなクラウド移行ができず IaaS 移植に留まる原因いろいろあるのですが、検討の結果最終的に "外字" が主要因で諦めたケースをよく聞きます。そして大半が非 Unicode のシステムで、Unicode には意図する文字が存在する (外字不要) のことが非常に多いです。 https://t.co/CAFZq00T7F https://t.co/dJOo0cTecZ」 / Twitter
だんぼーだよさんはTwitterを使っています: 「アプリの書き直しに加えデータの置換が発生するため、非常に難しい移行になります。新規に開発するシステムでは少しずつでも Unicode 対応を検討し、やむを得ない場合以外は新たに外字を増やさないところから PaaS を見据えたデザインが必要です。業務上必要な記号等も外字以外の実装方法はあります。」 / Twitter
だんぼーだよさんはTwitterを使っています: 「なお、Windows において、外字は作成したコンピューター以外での使用は非サポートです。外字のコピーによって回避策のない文字化けや Bluescreen に至ることもありますので、すぐには難しいユースケースもあると思いますが、可能な限り控えてください。 https://t.co/8BMmugw9Gu」 / Twitter
Windows で外字エディタを使用して外字を作成する方法
Masahiro SakaiさんはTwitterを使っています 「Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA https://t.co/GwGqJ23yVz CoInitialize[Ex]してないのにMTAに属してているように見え、仕様なのか疑問に思ってたけど、一応ちゃんとドキュメントされていたのね。」 / Twitter
Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA | The Old New Thing
ケケモコソカメニハさんはTwitterを使っています 「(横から失礼します。Windowsのカット/コピー/ペーストは元々Shift+Del/Control+Insert/Shift+Insertでした。C X VはApple起源ですね。叩く方もよくわかってないまま叩いてるので流石に可哀想になります。 https://t.co/X8rbIpOtH7 https://t.co/whPSWFvxLz ……って割り込もうか悩んでまs)」 / Twitter
Cut, copy, and paste - Wikipedia
Computer History: Who Invented Copy and Paste Command?

API・型

kenichiudaさんはTwitterを使っています 「元ツイートの意図から外れるかもしれないが、Windows APIを擁護すると - STRICTが定義されていればHBITMAPとHCURSORは別になる。 - cにもintptr_tあるし、サフィックスのPTRはWindows API固有ではない。 - WORDはIAに引っ張られている感がある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語でなくWin32APIの型定義だと ・HANDLEのtypedef多すぎで、HBITMAPとHCURSORを取り違えてもエラーにならず ・LP…と言いつつ、far(lp)に対するnear pointerはもう無い ・DWORD_PTRは、ポインタ型でない ・WORDは2バイトのまま(まあ互換性大事) とか色々ツッコミ所多い。 https://t.co/THs00R4U4q」 / Twitter
Windows Data Types (BaseTsd.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からSTRICT入れてるのだが、最近もHANDLE関係で形違い代入できてオイオイと思った記憶あるのだが、何だったかなぁ。 (HICONとHCURSORは意図的に代入可能にしてあるっぽいが) STRICT は HDC だと struct HDC__ {...}; typedef struct HDC__ *HDC; みたいな変形になる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「型の話はズレるけど、HANDLE型の大半は CloseHandle() なのだが、HANDLE FindFirstFile() は FindClose() で閉じるとかの例外も意外と多くて困りもの。 (OS内部で振り分け可能だろうに…kernel32.dllなどのユーザランドでアレコレする必要があるとかだろうか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「レイモンド・チェン氏に、The Old New Things で取り上げてもらいたいところ。 (同じ型なのに開放方法が違うの、newとmallocポインタと同じで、自動開放しづらくて嫌)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、関連。 https://t.co/OBzWJY0Czd」 / Twitter
Kernel Objects - Win32 apps | Microsoft Docs
kenichiudaさんはTwitterを使っています 「@shirouzu ハンドル系のunique_ptrを個々に定義するより、WILを使った方が楽かもしれません。 https://t.co/NU9BsgLWcw」 / Twitter
RAII resource wrappers · microsoft/wil Wiki

App Paths

はぇ~☆さんはTwitterを使っています 「Windows APIの中には、ごくまれに実行ファイルのインストール先がProgram Filesか否かで挙動を変えるものがあるから、あんまりおすすめはできないよ。 https://t.co/xeCTyu8Rcl」 / Twitter
はぇ~☆さんはTwitterを使っています 「あとApp Pathsという仕組みがあるから、ちゃんとしたアプリケーションであれば、インストール先がどこであれ起動できるのよ。例えばGoogle Chromeは start chrome でちゃんと立ち上がる。」 / Twitter
UnagiさんはTwitterを使っています 「@haxe あれすごくチートっぽくて、ユーザープログラムが触れて良いものなのか悩ましい気がする。」 / Twitter
はぇ~☆さんはTwitterを使っています 「@unagix HKCRに書いてもいいのよ?」 / Twitter
はぇ~☆さんはTwitterを使っています 「@unagix HKCUだた」 / Twitter

Store 締め出し

Hideaki_nomapさんのツイート: "どうやらMicrosoftは、人気やアクティビティの低いappを排除することでStoreの質を高めようとしているみたいですが、市場の価値は人気商品ばかりではなく多様性も重要というところに、どうして気付かないのだろう。たとえ利用者が僅かでも、その人たちには有用でしょうに。 @microsoft @msdevjp"
Hideaki_nomapさんのツイート: "私が視覚障害者の補助のために作成したappは、この理由によって強制的に公開停止されたようです。フィードバックを得て改良する道も閉ざされました。Storeチームには本当に呆れました。… "
Hideaki_nomapさんのツイート: "Store teamは、"Create amazing apps with staying power" sectionを見ろと言ってきます。ポリシー10.1.4のActive Presenceは、よく考えると最悪ではないですか。人気の本しか置かないダメな図書館と似たような臭いを感じるのです。… https://t.co/BVWvyex40K"
Hideaki_nomapさんのツイート: "Win 10用のアプリをセキュリティ的に安全に配布しようとすると、Storeを使うことになるのですが、@microsoft が行っていることは、人気がないといった理由でその配布手段を開発者から奪う行為です。これが許されるなら、Windows用に開発する価値は全くないですね。"
Hideaki_nomapさんのツイート: "例えば、ホーキング先生の車椅子のようなのもを作ったとします。たった一人のためのアプリでも、利用者が必要性を認めるなら、有用性は高いものです。大勢に関係のないアプリでも、まだ稚拙な代物でも、その配布手段を奪う行為は、市場やプラットフォームの破壊でしかないと思います。"
Hideaki_nomapさんのツイート: "MSからメール連絡が来て、突然にunpublishされました。こちらで調査し、修正する余裕すらありません。理由はこれだけ→… "

SendInput

kayaさんのツイート: "UWPではSendInput使えなかったか..."
kayaさんのツイート: "いや、使えるけどキーロックがずれる?"
なかのん&マジックさんのツイート: "SendInput使えないと自動テストが限定的になりそう。"

@shirouzu

互換性

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@totutohoku ご興味がありましたら参考まで。 WindowsにSimCityのバグ対応が入っている話。 https://t.co/lD4ccuV95P 泥臭い対応の数々。 https://t.co/2c2nq0oN1S クラッシュで次回からメモリ管理の挙動変更 Fault Tolerant Heap。 https://t.co/omhmQlcKQj」 / Twitter
2004-07-03
本当はすごい「Windowsの互換性維持」 | 日経 xTECH(クロステック)
Fault Tolerant Heap - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32 APIのUTF-8版出さないかなぁと昔から思う。 (ANSI版をコードページで不完全にu8対応させるのではなくて)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「不完全と言うのは、ANSI用構造体だとサイズ不足なメンバがそこそこあること。 (以前はシステムグローバルでMBCS捨ててのUTF-8解釈モードという、さらに使い物にならない縛りがあったが、今はアプリ単位が可能に)」 / Twitter

同期

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32 CriticalSectionとEventを使った自作Condtionクラス、待受スレッド上限が32なのだが(atomic系演算の制約)、そろそろVista以上を必須とする Win32 CONDITIONを使うかな。 (以前のベンチでは、性能は同等だった)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それにしてもVistaて、セキュリティ関係だけでなく、CONDITION_VARIABLEやRWLockなど便利なプリミティブが随分と増えた…OSのメジャーバージョンを上げただけのことはある。」 / Twitter

ソート順

Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerのソートは、数字は自然ソート、漢字は音読みソート、になっている様子…NTFSの順序(unicode順)と違っているため、プログラム出力と順序が違っていて、作業がしづらいな。"
SODA Noriyukiさんのツイート: "音読みに変換しているわけではなくShift_JISというかJIS X0208的順序でしょうから(含まれている文字がすべてShift_JISで表現できるのであれば)文字コードを Shift_JIS にして自然ソートすればいいんじゃないでしょうか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そこまでやる気なら、その通りです(笑)… "

エラー

Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのHRESULTは、ファシリティだのといった構造を持っている割に、現実の問題解決に繋がらないことが多すぎ。 エラーコード(抽象化されたエラー内容)よりも、いっそエラーファイル名&行番号を出してくれた方が問題解決DBが充実するのでは感もあったり(笑) https://t.co/LMOWLxABiz"
ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
Shirouzu Hiroaki(白水啓章)さんのツイート: "古い話だが、エラー時のHANDLE値がINVALID_HANDLE_VALUE(0xffffffff)だったりNULL(0)だったりと揺らぐ理由…Win16関連APIは前者、Win32独自は後者。 (前者はGetCurrentProcess()等の疑似ハンドルとも等値なので注意) https://t.co/HEzgH6enao"
Why are HANDLE return values so inconsistent? – The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただし、CreateFileはWin32新設だがWin16時代に予約されていたこと&OpenFileが存在することから、0xffffffffに統一。 そういえば、UNIXの creat → open に対し、Windowsは OpenFile → CreateFile と逆の名前に進化したな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "0xffffffff ではなく -1 が正しい。 (x64で符号拡張なしに64bit化したと思っていたのだが、改めて確認するとそんなことは無かった)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、INVALID_HANDLE_VALUE という長い命名はイマイチ感。 命名は、エントロピー符号的に「頻度の高いものは短く」をベースにして欲しいところ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カーネル内部で発生したNTSTATUSエラーがWin32エラー番号に翻訳できないと、ERROR_MR_MID_NOT_FOUND(317: strerror() での変換に失敗的なエラー)に変換されてしまう様子。 https://t.co/LX107xcAXD"
c# - How to convert specific NTSTATUS value to the Hresult? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "出くわしたのは、GetOverlappedResult(非同期IOの結果を受け取るAPI)で 317 が返る、という問題。 非同期API系は利用頻度が少ないせいか、こういうアラが出やすい印象がある。"

エクスプローラ

Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerの各アイコンの表示設定は、ROT13BLOBなレジストリに保存されている。 (これを強制変更すれば、次回ログイン(or Explorer再起動)以降は表示可能、という動作ならできるのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでシェル拡張のオプションが通常のオプション指定とは別画面になっているのは、元々、シェル拡張はOSグローバルな機能だった名残り。(全員に設定が反映する) しかし、今は原則ユーザ毎拡張が出来るようになったので、そろそろ通常設定画面に移してもよいかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Fall Creators Updateから、通知領域アイコンが(隠しAPIを使っても)プログラム的に常時表示できなくなった点、いろいろと調べたけれど、結局、OS設定画面へのショートカットボタンを作るという、ソーシャル的解決にすることに。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、Explorerの標準コピーハンドラを置き換える実験に成功。 当初、ICopyHookを使うと思っていたのだが、これはsrcがディレクトリにしか効かない中途半端なシロモノだった。 何日か研究・試行錯誤した末にようやくたどり着いた…「MSさんちょっと酷いよ」と言いたくなる方法というか。"

ネットワーク

Shirouzu Hiroaki(白水啓章)さんのツイート: "WNetOpenEnum 等のWNet系APIですかね。 FastCopyだと逆に、ドライブレターの付いたネットワークドライブからサーバ名+共有名に変換するのに、WNetGetUniversalName APIを使っていたりします。… "
Kengo Sawatsuさんのツイート: "Win32APIでIPアドレスまたはUNCで引いた名前からSMBの共有ポイント名サーチする関数ってないのかなぁ。 ちょろっとした社内情報探索スクリプトを作りたいのだけど。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワークドライブ相手だと、スレッド数は多いほど削除速度が上がっていく様子(50→60スレッドで10%向上など)。 自作CondVarは32スレッドまでの制限があるので、そろそろVista以降でのみ使える CondVar に移行するかな… https://t.co/mg9NKhH1OQ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2018 April Update以降の挙動と思うが、隠しAPIに近い、IOCTL_LMR_DISABLE_LOCAL_BUFFERINGを発行しておかないと、ネットワークドライブへのWriteFileが、非同期I/Oあり非同期I/Oなしと同じ速度に低下する。 ちょっと酷い挙動だなぁ…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSDNでの IOCTL_LMR_DISABLE_LOCAL_BUFFERING に関する記述。 (SDKのheaderにすら番号の定義がない) ---- The IOCTL_LMR_DISABLE_LOCAL_BUFFERING control code is defined internally by the system as 0x140390 and not in a public header file. https://t.co/E2iWHkdlvQ"

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32APIで、20数年たっても未使用なreserved引数や、逆に Ex とか 2 が付いた APIも多いさまを見ると、事前に見通すことの難しさよとか思ったり。 (Win16 → Win32で形だけ残したreserved引数もあるらしいが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの中の人がコメントしていた。 https://t.co/o2vTZrQz9Z"
winapi - Windows API reserved parameters - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のWin系OS判定は、IsWindows10OrGreater() 的な関数を使うのが推奨だが、いずれ、 IsWin10FallOrGreater() みたいな関数が登場するのだろうか?(ない) https://t.co/U8QY5ahSjN"
Version Helper functions - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「古くて新しい話。 WinProcは汎用関数のため、メッセージ種類によって、2つ用意されたuint的なパラメータに、char/wcharポインタをキャスト代入したりする。 混在ミスがあってもコンパイラは警告を出せないという話。 unixのioctlの引数問題に近い。 https://t.co/b0DxHz5HiP」 / Twitter
「Windows 10」のシャットダウンを妨げる謎の「G」アプリ、マイクロソフトが説明 - CNET Japan
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、UWP/XAML を Win32 から使うという手はあるらしい。 ただこれは、Win8.1以降用のビルドの必要があるので、WIn7をサポートするならDLL化が必要。 https://t.co/T8JGi0t18v」 / Twitter
UWP XAML を使用した C++ Win32 アプリでの API のホスト | Microsoft Docs

@rockridge07

Rockridgeさんのツイート: "Fx57:Windows 10上のテーマではウィンドウの半透明効果を無効にしている。ウィンドウのリサイズが高速化されるなど、パフォーマンスに好影響も。 / “1366405 - We're forcing the window'…” https://t.co/WurqxtabCf"
Rockridgeさんのツイート: "Fx60:Windows版で、グループポリシーを用いた集中管理が可能となった。 / “1433136 - Implement GPO support on the Policy Engine” https://t.co/6ImjkZEVsQ"
Rockridgeさんのツイート: "Fx63:Windows 10のダークモードをサポート。Fx65ではアクセントカラーも正しく反映されるようになった。参照:https://t.co/Nre4vq8hvA / “1368808 - Respect Windows …” https://t.co/uACKUzrjGZ"
Rockridgeさんのツイート: "Fx64:Windows版で、ページアクションメニューに「共有」の項目が新設された。OSネイティブなページ共有機能を呼び出すことができる。 / “1363169 - Add support for native Windows …” https://t.co/MUAc7IToXv"

@d_toybox

なかのん&マジックさんのツイート: "WindowsってVista以降はプロセスがビジー状態になると一旦、ウインドウがフォーカスを失ったかのようなメッセージが発行されてるんで、たぶんそれによってドラッグの処理が中断されて……みたいな感じなんだろうなと。知らんけど。"
なかのん&マジックさんのツイート: "FirefoxでもIME周りでそれが原因で遅いマシンだと未確定文字列が意図せず確定されまくるというバグが昔あって、 https://t.co/ypmQllanBc で修正してたり。"
窓の杜さんのツイート: "正直、“タブレットモード”のボタンとかいりますか? クイックアクションに表示されるボタンをカスタマイズする【いまさら聞けないWindows 10のTips】 https://t.co/Whjwx33yv8 https://t.co/FtlmXUENU6"
なかのんクエストさんのツイート: "デバッグ時に必須のボタン。"
なかのん&マジックさんのツイート: "Windowsのタブレットモード使うと、WebアプリがFirefox for Androidより使いにくくて、逆に、「モバイルブラウザモード」みたいなの欲しくなるな。「PCブラウザモード」みたいなの。"
なかのん&マジックさんのツイート: "あ、先にGoogleさんとの協議の結果、決まったWindowsのAltGrキーのイベント発火を修正するか。おおむね、Geckoの動作が好ましかったっていう結果なので修正簡単そう。"
なかのん&マジックさんのツイート: "WindowsのAltGrって、なんで内部的にはCtrl+Altの同時押しという、すごいリソースが無かった時代からの伝統です、みたいな感じがあるんだろう。MS-DOSの頃にどうしてたのか分からないんだけど、少なくともWindowsの時代にはそこまでシビアじゃなかったと思うんだけど。"
なかのん&マジックさんのツイート: "Win10のRDP、サーバ側と、クライアント側でDPI設定が違うとき、RDP経由か否か、それぞれで起動したアプリが、もう一方の方で見る時にDPIおかしくなるのは、やっぱりアプリのデキが悪いのかなぁ。"
なかのん&マジックさんのツイート: "Windowsをタブレットで使うときには、タッチキーボードをサードパーティーに解放して欲しいのと、OSレベルでの戻るボタンみたいなの必要だなーと感じる。"
なかのん&マジックさんのツイート: "タスクバーに戻るボタンみたいなの、あるにはあるけど、そうじゃねーっていう動き。"
なかのん&マジックさんのツイート: "SendInput()でWM_KEYDOWNとWM_CHARを発生させたときに、lParamの31ビット目 (lParam << 30) がどうなるか詳しい人居ません?"
なかのん&マジックさんのツイート: "SinharaとTamilのIMEと自称するキーボードユーティリティがWM_KEYDOWNとWM_CHARを自前で生成して送ってくるんだけど、それらのlParamの31bit目が常に1で困ってる。"
なかのん&マジックさんのツイート: "(lParam & (1 << 30))だ"
なかのん&マジックさんのツイート: "あー、なんか分かった気がする。 KEYEVENTF_KEYUPを指定しておかないと、キーが内部的に押されたままになってて、lParamの31bit目の値が決まってそう。"
なかのん&マジックさんのツイート: "Win/macOS間はやりたいことと、好みの問題大きいな。個人的にはWinだけど、Winの、とくにノートパソコンでは、タッチパッドの出来が恐ろしいほどピンキリなんでこの辺の環境で当たりを引いたかどうかでも大きく評価が変わりそう。ひどいのは本当に使い物にならない。"
なかのん&マジックさんのツイート: "MicrosoftはSurfaceBook見る限りは、MacBookと同等のタッチパッドを提供できるんだから、各PCベンダにライセンス供与とかなんとかできんものかな。"
なかのん&マジックさんのツイート: "あの辺、ソフトウェア特許の塊らしいから。"
なかのん&マジックさんのツイート: "レビューしてて初めて知ったけど、Win2k以降はデバイスの変更を普通のアプリも簡単に検出できたのか。"
なかのん&マジックさんのツイート: "そういえばPDFのサムネイル作成って異様に遅いけど、あれやってるのはWindows自身なのか、Adobeのシェル拡張なのか。"
なかのん&マジックさんのツイート: "そーいや、D&Dを受け入れるアプリがバッチ処理とかで当分応答できない時に、エクスプローラからのドラッグ中にそのアプリのウインドウの上を通過しちゃうとエクスプローラ全体を再起動するしかなくなるのつらい。"
おこめ/つなもりさんのツイート: "リモートドライブ(停止中)通ったりすると死… "
なかのん&マジックさんのツイート: "歴史的にしゃーないけど、設計自体のバグよね……… "
なかのん&マジックさんのツイート: "Windowsがマイクロソフトアカウントの作成、もしくは登録から行くと、ユーザー名でフォルダ作るの本当に迷惑。古いVCのランタイムが使えなくなるんで動かないアプリが出てくるんだよな。"
なかのん&マジックさんのツイート: "非ASCII文字が含まれてる場合、ASCII文字だけの別名も用意しておくとか逃げ道欲しい。「短いファイル名」みたいな。スマートじゃないけど、アクセシブルなのは保証される。"
おおきくてながいさんのツイート: "名前に土吉含んでたらmsiすら動かなくて完全にダメ"
なかのん&マジックさんのツイート: "WindowsってプロセスのCPUの優先度以外に、ネットワークの優先度って設定できないのかな。ダウンロードしながらインストールするインストーラが動いてると、ストリーミングで動いてる動画ソフトが途切れ途切れになる。"
なかのん&マジックさんのツイート: "最近のMSはユーザー目線でも、悪い意味でMSらしくないと思うけど、アプリ開発者としては、APIの互換性・安定性という点、また、そのドキュメントのクオリティでは、最高かなって思えてしまう。"
なかのん&マジックさんのツイート: "よそのデスクトップアプリ開発者向けのドキュメントなんて、形だけで役にたたないとか、そもそも書いてることが嘘とか多過ぎで。"
なかのん&マジックさんのツイート: "ただ、COM形式のAPIは正直なところ、手放しで褒められるものは私の知ってる狭い範囲には無い。"
なかのん&マジックさんのツイート: "Win32のあのメッセージドリブンな形式の採用や、C APIの設計って今でも天才的だと思う。"
なかのん&マジックさんのツイート: "APIをオブジェクト指向にしちゃいかんと、最近本当に思う。オブジェクト指向は一見綺麗な、すっきりして見える構造を作り出せるんだけど、そのスッキリ感を維持するためには大きな変更を必要とするので、安定感や互換性を求められるAPI向きではないよな、と。"
なかのん&マジックさんのツイート: "Cocoaとかホントにアレ。"
なかのん&マジックさんのツイート: "そーいや、Cocoaに代替API無いのにCarbon APIを無かったことにしていくの、本当に頭おかしい。Geckoのキー入力のハンドリング部分なんか、今、Appleが公開してるドキュメントだけを元に書けなかったりする。"
なかのん&マジックさんのツイート: "興味ある人は読んでみると面白いかも。TISで始まってるAPIを使いまくってるけど、これがないと、入力を国際化してフレームワーク的な他のアプリの土台となるものを書けなかったりする。ちなみに、いまだにMacOS9以前のAPIも使ってたりする。使わないとどうしようもなく、かつ、今はドキュメントも無い"
なかのん&マジックさんのツイート: "https://t.co/kUOexQ9Ro6 このへん。"
TextInputHandler.mm - mozsearch
サンディスクさんのツイート: "Windowsさんはなぜ、「フォーマット」と「取り外し」をすぐ近くに配置するのか・・・(*'ー'*) (←USBメモリーを安全に取り外そうとして、間違ってフォーマットを押してしまい、しかも、あれ??フォーマットするんだっけか・・・・(*'ー'*)?? と勘違いしてフォーマットしてしまった)… https://t.co/agxZKjArdd"
なかのん&マジックさんのツイート: "フォーマットがそもそもコンテキストメニューに必要なんだろうかってのはいつも感じる。"
なかのん&マジックさんのツイート: "レコーダーで、BD/DVDのディスクの初期化の近くにHDD/USB HDDの初期化があるのもかなり怖い。"
なかのん&マジックさんのツイート: "GUIアプリ書いてると嫌になるのはダントツでmacOSだなー。APIがころころ変わったり、代替わりしたり、新機能への対応がしんどかったり。Linuxはちょっとシンプル過ぎてやれないこと多かったり、IME周りはカオス過ぎてアレ。Windowsはその辺のバランスが良い。進化してるけど互換性が凄い。"
なかのん&マジックさんのツイート: "うわー、Windows、VK_OEM_PLUS 0xBB For any country/region, the '+' keyっていう定義なのに、`+`キーが入力できないキーでこのキーコードが発生するケースあったのか。知らんかった……"
なかのん&マジックさんはTwitterを使っています: 「WindowsってShiftキーだけ、両方を離した時にしかWM_KEYUPが発行されないバグがあるんだ……Win7でも再現した。 / https://t.co/OFWbfje4Qj - keyup event with ShiftLeft/ShiftRight code sometimes not fired」 / Twitter
1566848 - keyup event with ShiftLeft/ShiftRight code sometimes not fired
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「全然違う話だけど、Microsoftさん、マウスホイールのメッセージに、モーメンタムかどうかの情報を足すようにしてくれませんかね。つまり、SendInputからの変更。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Ctel + wheelでズームを実装すると、惰性でホイールが回り続けているイベントを、後からCtrlキーを押したことで、意図しないズームが発生しちゃうんですわ。macOSはイベントから惰性かどうかを判断できるのでこういった不本意なズームを回避できる。」 / Twitter

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Nightlyをアップデートするたびにe10s (with sandbox)が動作しなくなるので調べたけど、Windows 10のGetMappedFileNameWがバグってる気がするんだ。たぶんCoWがらみな気がするだけど。 https://t.co/TZM2FEEhOp"
Makoto Kato ︎︎さんのツイート: "https://t.co/zZDcKsDro8 "またWindows On ARMでは、AArch64のネイティブコードからなるデスクトップアプリケーションが動作する" WDKみてると、なんかaarch64なデスクトップアプリ使えないようにしてる雰囲気あるって話でてるんだけど、こ… https://t.co/er1hwgIZKC"
Makoto Kato ︎︎さんのツイート: "WinRTの時だって、バイナリ的には署名チェックさえバイパスすれば動いたし (CSRSSにデバッガアタッチしてバイナリパッチしちゃえばだったはずだけど)、あれはホント愚策だったなぁと"
Makoto Kato ︎︎さんのツイート: "clang使った場合で、最新のWindows SDK使うとビルドエラーになるの、これね https://t.co/FPwttRPSeI"
clang can't compile wrl/implements.h - Developer Community
Makoto Kato ︎︎さんのツイート: "現在(過去も含めて)公開されているWindows SDKだとChakraCoreとか.NET Coreのaarch64版をビルドできないんだけど、彼らコントリビューター増やす気はさらさらない感じしてる"
Makoto Kato ︎︎さんのツイート: "https://t.co/A1Ny6xp2ne"
Makoto Kato ︎︎さんのツイート: "rustというかllvmのマトモなポートしない限り無理だけど"
Makoto Kato ︎︎さんのツイート: "Windows on arm用のイニシャルゴードはllvmに入ってるけどexception handlerのサポートが入ってないからrustはそままではポートできない。そもそもMicrosoftがehの仕様に関するドキュメント公開してない"
Makoto Kato ︎︎さんのツイート: "armasm64のehサポートに関しては必要なヘッダはバグ報告したんで最新のWindows SDKには入ってる"
Makoto Kato ︎︎さんのツイート: "armasm64のEHサポートに関してはcプリプロセッサ通さないとarmasm64だけではサポートほぼ不可という状況で、いろいろ面倒なこと増える"
Makoto Kato ︎︎さんのツイート: "そもそもMSはarm/aarch64のアセンブラを自社開発せずにArmからライセンス貰ったみたいで、いろいろ残念なこと多い"

@vyv03354

vyv03354さんのツイート: "@d_toybox OSVERSIONINFOとか、OPENFILENAMEとか、結構ありますよ。"
vyv03354さんのツイート: "@piro_or Win64にはファイルシステムリダイレクションというのがあって、32bitアプリがフルパスでSystem32を指定しても強制的にSysWOW64にリダイレクトされます。"
vyv03354さんのツイート: "爛 ←游ゴシックでは木偏、それ以外では火偏に見える不思議な漢字 とりあえずフィードバックは送った。https://t.co/otBZ51LvoT ネタ元はこちら https://t.co/WPawWoR3Ky #もずでぶ"
vyv03354さんのツイート: "爛︀ ←元ネタ通りにStandardized Variantを使えばTwitterにも投稿できるけど、Firefoxでしかうまく字形が変わらない"
vyv03354さんのツイート: "しかもどうやらTwitterがフォントを指定しているのでTwitter上では確認できない"

@unagix

uNagiさんのツイート: "Windows 10 IP 17063 の例のデフォルトロケール UTF-8 の件、有効にすると想像通りの動作になる。A 系の API が全て UTF-8 で I/O されてる。コマンドプロンプトは cp65001 になる。 https://t.co/E1t5YdPD8V"
uNagiさんのツイート: "メモ帳の読み書き時に選択できる" ANSI" は、A 系 API なので全て UTF-8 になる。だから Shift-JIS のファイルも UTF-8 で読もうとして化けてしまう。"
uNagiさんのツイート: "メモ帳で "UTF-8" を指定して保存しても、"ANSI" で保存しても、どちらも UTF-8 になるという奇妙な事が起きる。これがシステム全体で発生する事になるので、 A 系 API が一つでも残っているコードを保守している人はこの設定がいつデフォルトにされるか注視する必要が… https://t.co/hF5aShqkuu"
uNagiさんのツイート: "国内でよく見かけるのが ANSI API = cp932(SJISみなし) という間違った扱いをしているもので、そういうアプリは元から海外では正常動作していないのだけど、このオプションが有効の場合は国内でもダメという事になる。"
uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・ https://t.co/59CktY6zOU"
Unagiさんのツイート: "@syuu1228 Windows NT には昔からある、予約語の制限を回避するプレフィックス。¥¥.¥ というのもある。これ使うとドライブレター無しでアクセスするのもできた気がする。まとまった公式ページがあったはずだけど、この記法に名前がちゃんと付いてなくてググれない…"

Error Handling (Error Handling) - Win32 apps | Microsoft Docs

Unicode

その他

公的機関等

法務省 戸籍統一文字情報 トップ
文字情報基盤整備事業 | IPA 文字情報基盤整備事業に関するWebサイトです
MJ縮退マップ | 文字情報基盤整備事業
長年の懸案だった“外字問題”が解決へ、6万字を1万字に対応付ける「縮退マップ」が完成 | IT Leaders
MJ縮退マップとマイナンバー | yasuokaの日記 | スラド

Locale

最近の Python-dev

DSAS開発者の部屋:最近の Python-dev (2017-01)
DSAS開発者の部屋:最近のPython-dev (2017-05)
DSAS開発者の部屋:最近のPython-dev(2017-06)

Language code - Wikipedia
Locale (computer software) - Wikipedia
Codes for constructed languages - Wikipedia
List of HTTP header fields - Wikipedia
Country code - Wikipedia
ISO/IEC 9995 - Wikipedia

ascii

SODA Noriyukiさんのツイート: "*BSD系のascii(7) https://t.co/TzFY5Tqgtl が LF/FF じゃなく nl/np (newline/newpage) な件で、 Bell研からの伝統だよねー( https://t.co/gBQvXfjQTo )という話をしてた。 Linuxのman https://t.co/WtZTvdGgHE だとASCII規格通りでNPへの言及はないのね。LFはLineFeedじゃなくてnewlineとあるけど"
ascii(7) - NetBSD Manual Pages
unix-history-repo/ascii.7 at Research-V7-Snapshot-Development · dspinellis/unix-history-repo
ascii(7) - Linux manual page

革命の日々!

革命の日々! IEがEUCのJIS X 212をサポートしていないのは規格違反なのか
革命の日々! FirefoxのEUCの独自拡張のセンスが最低な件について
FrontPage - Legacy Encoding Project
革命の日々! プロジェクト「セーブ・ザ・鷗外」
革命の日々! レガシーエンコーディングなオフ会
革命の日々! それは典型的な波ダッシュ問題ではあるまいか

Man page of ASCII
第4回 UTF-8の冗長なエンコード:本当は怖い文字コードの話|gihyo.jp … 技術評論社
文字のチェック方式 - マイクロソフト系技術情報 Wiki
文字コードについて
中国語の文字コード
Kyoto University Research Information Repository: 日本・中国・台湾・香港・韓国の常用漢字と漢字コード
ISCIE2001.pdf
CP932変換表の問題が顕在化する例 - yanok.net
書家の第3水準漢字が文字化けするわけ - yanok.net
Java 9 でようやくResourceBundle のデフォルト文字コードが UTF-8に - yanok.net
本の虫: ASCII以前の世界
libiconv - GNU Project - Free Software Foundation (FSF)
【やじうまWatch】 ウェブサイトにおける文字コードの割合、UTF-8が90%超え。Shift_JISやEUC-JPは? - INTERNET Watch
Usage Statistics of Character Encodings for Websites, June 2018
Usage Statistics of UTF-8 for Websites, June 2018
Historical trends in the usage of character encodings, June 2018
なかのん&マジックさんのツイート: "へー。便利そう。 / "WTF-8 (Wobbly Transformation Format − 8-bit) is a superset of UTF-8 that encodes surrogate code points if they are not in a pair." https://t.co/uvxuX2KXX6"
The WTF-8 encoding

blog

その他

MySQL と寿司ビール問題 - かみぽわーる
Unicode の雪だるま - bkブログ
「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
文字コード考え方から理解するUnicodeとUTF-8の違い | ギークを目指して
プログラミング言語における文字コードの話 | ++C++; // 未確認飛行 C ブログ
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
kaya: 主な実装における EUC-JIS-2004, Shift_JIS-2004 から Unicode への変換結果の違い
特殊顔文字に使われている謎の文字よ、お前は一体何者なのか – たぬきフォント
Java とか Android (DEX) の MUTF-8 (Modified UTF-8) って何者よ?っていう話 - bearmini's blog
クメール文字とUnicode - Togetter
Unicode 12.0正式版が登場。日本語では小文字の「ゐ」「ゑ」「を」「ヰ」「ヱ」「ヲ」「ン」が追加。新元号が発表され次第、次の12.1で新元号キャラクタを追加 - Publickey
UTF-8小話 - Plan9日記
UTF-8とルーン文字 - Plan9日記
Wayback Machine
unicode-math を完全に理解したい話(1) - マクロツイーター
漢数字が数字順にソートされない理由を調べてみた - give IT a try

The Unicode Blog

The Unicode Blog: Unicode CLDR 35 alpha available for testing
The Unicode Blog: Announcing The Unicode® Standard, Version 12.0
The Unicode Blog: Adopt-A-Character Grant to Support Maya Inscriptional Hieroglyphs
The Unicode Blog: Unicode CLDR Version 35 Language/Locale Data Released
The Unicode Blog: CLDR Version 35.1 Language/Locale Data Released for Reiwa Era, Unicode 12.1
The Unicode Blog: New Unicode Working Group: Message Formatting
unicode-org/message-format-wg: Developing a standard for localizable message strings
The Unicode Blog: Unicode Locale Data v37α available for testing
The Unicode Blog: Announcing The Unicode® Standard, Version 13.0

Tociyuki::Diary

「ソフトウェア作法」40周年を過ぎて - Tociyuki::Diary
日本語 Wikipedia の深さ優先探索 - Tociyuki::Diary
UnicodeData Canonical Combining Class のダブル配列トライ - Tociyuki::Diary
Unicode East Asian Width 再び - Tociyuki::Diary
Unicode East Asian Width さらに - Tociyuki::Diary
Unicode の文字数カウント - Tociyuki::Diary
ucd::width 関数 (その1) - Tociyuki::Diary
ucd::width 関数 (その2) - Tociyuki::Diary
EastAsianWidth 対応 wcwidth - Tociyuki::Diary
UTF-8 エンコーディングのままでバッファ・ギャップ - Tociyuki::Diary
UTF-8 エンコーディングのままでバッファ・ギャップ その2 - Tociyuki::Diary

にせねこメモ

『ギリシャ文字・キリル文字・ラテン文字』 - にせねこメモ

ギリシア語

マクロン付きのギリシア文字の母音にアクセントや気息記号を付けて表示する - にせねこメモ
古典ギリシャ語会話表現集 - にせねこメモ

ロシア語

『ロシアの文字の歴史』 - にせねこメモ
ロシアらしい数字 - にせねこメモ

モンゴル語

ネット閲覧可能な(モンゴル文字による)モンゴル語資料 - にせねこメモ
モンゴル文字簡易翻字ブックマークレット - にせねこメモ
モンゴル文字とUnicode - にせねこメモ
Unicodeモンゴル文字フォント一覧 - にせねこメモ
現在のUnicodeモンゴル文字の問題点と最近の動き - にせねこメモ

中国語

簡体字フォントセミナー「中国の文字、いろいろと。」に行ってきた。 - にせねこメモ
繁体字フォントセミナー「台湾の文字、いろいろと。」に行ってきた。 - にせねこメモ

韓国語

ハングル書体セミナー「韓国の文字、いろいろと。」に行ってきた - にせねこメモ

ブラウザ上で文字列のUnicode Code Pointを調べる - にせねこメモ
イオニア数字変換TeXマクロ - にせねこメモ
文字のデザインに筆記具が与える影響 - にせねこメモ
変な文字化け - にせねこメモ
Adobe Illustrator CS6日本語版でタイ文字やアラビア文字を組む - にせねこメモ
Type& 2015「書体視認性:MIT AgeLab と Monotype の共同研究」を聴いてきました - にせねこメモ

yasuokaの日記

その他

「くゎ」と「か」の対立 | yasuokaの日記 | スラド
「だぢづでど」と「ざじずぜぞ」の対立 | yasuokaの日記 | スラド
法律における「碍」の1字 | yasuokaの日記 | スラド
島津製作所の「dzu」と標準式ローマ字 | yasuokaの日記 | スラド
常用國字標準字體表の「彞」とedukai-3.ttf | yasuokaの日記 | スラド
直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
Universal Dependenciesにおけるcompound:prtと直接構成鎖解析 | yasuokaの日記 | スラド

Unicode・ISO・JIS

Unicode 10.0.0がリリース | yasuokaの日記 | スラド
「⿰月兊」はUnicode 10.0のどこに行ったのか | yasuokaの日記 | スラド
U+337B「㍻」は、いつUnicodeに収録されたのか | yasuokaの日記 | スラド
ISO/IEC 10646:2017に収録されていない『新潮日本語漢字辞典』の漢字 | yasuokaの日記 | スラド
Adobe-Japan1-6にないJIS X 0212の漢字 | yasuokaの日記 | スラド
U+2D583は「出」の別体なのか | yasuokaの日記 | スラド
元号の合字を含むISO/IEC 10646:2017 Annex Aのコレクション | yasuokaの日記 | スラド
Unicode 13.0リリース | yasuokaの日記 | スラド

大漢和辞典

ISO/IEC 10646:2017に収録されていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
ISO/IEC 10646:2017に収録されているが文字情報基盤に含まれていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
大漢和番号14404は本当にU+2339Fなのか | yasuokaの日記 | スラド

登記統一文字

登記統一文字01009170を含む会社法人 | yasuokaの日記 | スラド
登記統一文字01054170を含む神社 | yasuokaの日記 | スラド
登記統一文字01019580を含む寺院 | yasuokaの日記 | スラド
登記統一文字01009670を含む神社 | yasuokaの日記 | スラド
登記統一文字01080960を含む神社 | yasuokaの日記 | スラド
登記統一文字01104650を含む会社法人 | yasuokaの日記 | スラド
法人番号公表サイトにおける登記統一文字用例 | yasuokaの日記 | スラド

戸籍統一文字

戸籍統一文字152850「はかた」がU+2D92Aへ | yasuokaの日記 | スラド
戸籍統一文字で重複している漢字 | yasuokaの日記 | スラド
「⿺辶鳥」は“ナベ”の異体字なのか | yasuokaの日記 | スラド
戸籍統一文字370600はU+2713Cではないのか | yasuokaの日記 | スラド

住基統一文字

住基統一文字B159を含む会社法人 | yasuokaの日記 | スラド
『住民基本台帳ネットワーク漢字辞典』の音義未詳字 | yasuokaの日記 | スラド
住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
Re: 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド

文字情報基盤

𡶌部神社の「𡶌」は、なぜ文字情報基盤に含まれていないのか | yasuokaの日記 | スラド
U+2B1E6「𫇦」とU+241FE「𤇾」は、どういう関係にあるのか | yasuokaの日記 | スラド
「野」を字母とする変体仮名 | yasuokaの日記 | スラド

登記ねっと 供託ねっと

「登記ねっと供託ねっと申請用総合ソフト」の外字コード | yasuokaの日記 | スラド
ソフトウェアのダウンロード | 登記・供託オンライン申請システム 登記ねっと 供託ねっと

法人

U+2C0B2「⿰木亜」を含む会社法人 | yasuokaの日記 | スラド
U+2D047を含む会社法人 | yasuokaの日記 | スラド
「⿰金鼡」を含む会社法人 | yasuokaの日記 | スラド
「⿲氵車斥」を含む寺院 | yasuokaの日記 | スラド
U+2E092「⿰示責」を含む神社 | yasuokaの日記 | スラド
「⿱目勿」を含む会社法人 | yasuokaの日記 | スラド
「𛂯𛀿𛀸゙」を含む会社法人 | yasuokaの日記 | スラド
「⿸屁月」を含む神社 | yasuokaの日記 | スラド

人名漢字

「胱」「腥」「腟」は人名用漢字なのか | yasuokaの日記 | スラド
氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
Re: 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
子の名を当用漢字に制限する戸籍法施行規則の施行 | yasuokaの日記 | スラド
「襄」は子の名づけに使えるか | yasuokaの日記 | スラド
戸籍と在留カードにおける「陳」と「陣」 | yasuokaの日記 | スラド
昭和9年4月5日民事甲第428号民事局長回答の射程は「千遥」の出生届に及ぶのか | yasuokaの日記 | スラド
昭和9年4月5日民事甲第428号民事局長回答とその実態 | yasuokaの日記 | スラド
在留カードの入国管理局外字とその変遷 | yasuokaの日記 | スラド

本の虫

本の虫: ㄘんㄘん
本の虫: C++0x本:求む、簡単なBMP外の文字

yanok.net

波ダッシュ問題はなぜ『文字コード技術入門』の第8章にあるのか - yanok.net
Unicode の嫌なところを触ってしまった Python - yanok.net
Unicode 10.0リリース、変体仮名を収録 - yanok.net
言語を示すのに国旗を使うのはよくない - yanok.net
「ユニコードは犯罪だからやめてください」の衝撃 - yanok.net
BOM つき UTF-8 へのその場しのぎの対処 - yanok.net
UTF-16 が単に Unicode と呼ばれることがある理由 - yanok.net

Python

DSAS開発者の部屋:最近のPython-dev(2017-12)

Ruby

Rubyist Magazine - Ruby M17N の設計と実装
最近のruby-core (2016年11月) | Money Forward Engineers' Blog
最近のruby-core (2016年7月) | Money Forward Engineers' Blog
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年2月) | Money Forward Engineers' Blog
UTS #18: Unicode Regular Expressions
Locale
最近のruby-core (2017年3月) | Money Forward Engineers' Blog

Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/RCyv4OefHq これ書いた人全くわかってないと思うんだけど、IVSはバリエーションがあるので、例えばAdobe-Japan-1-7対応なフォントがあったとしても、IPAフォントが採用してる汎用電子情報交換環境整備プログラムのHanyo-DenshiなフォントのIVSとは互換性がない」 / Twitter
Windows と日本語のテキストについて - Windows Blog for Japan
Makoto Kato ︎︎さんはTwitterを使っています 「なので、Windows側でHanyo-Denshi側のフォントもデフォルトで提供すべきだと思うんだ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「全く同じ字形であってもIVSのバリエーションが異なれば同じコードポイントにならんでしょ。」 / Twitter

News

UnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由 - INTERNET Watch Watch
Unicode 8に対応、「GNU C Library 2.23」が公開 | OSDN Magazine
Unicode 10、変体仮名と縦書きレイアウト導入へ | マイナビニュース
新絵文字56種類が追加された「Unicode 10.0」が発表される - GIGAZINE
変体仮名285文字や縦書きレイアウト仕様が追加された「Unicode 10.0」 -INTERNET Watch
ıɥɔıɐʇ ɐʇɐqɐʍɐʞさんのツイート: "そういえば今開催中のUnicode技術委員会で、新元号の合字の文字符号が U+32FF(ここしか空いてない)に確保されることになったらしいので、それである程度は備えられるかも。/https://t.co/nF9ou4TxCI / 新元号システム問題 https://t.co/w6xMtUelGC"
17429-sc2-n4577-japan-new-era.pdf
新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
「Qt 5.11」リリース、Unicode 10対応を強化 | OSDN Magazine
【山田祥平のRe:config.sys】さよならシフトJIS、主なしとて春な忘れそ - PC Watch
Unicode 12.1をサポートした「Glibc 2.30」リリース | OSDN Magazine

エンコード自動検出

Google Chrome 55.0.2845.0 canary で、ついにエンコーディング自動検出がデフォルトになって、エンコーディングメニューがなくな...
google/compact_enc_det: compact_enc_det - Compact Encoding Detection

ICU

ICU 55.1: Main Page
JVNVU#97322697: ICU4C ライブラリに複数の脆弱性
International Components for Unicode - Wikipedia
Downloading ICU - ICU - International Components for Unicode
ICU License - ICU 1.8.1 and later
ICU のライブラリサイズを削減する方法 - Qiita
小倉唯さんのツイート: "https://t.co/hR3900GqQl うおおおおおおおおおおおお, ABI 大崩壊わらうw"
Makoto Kato ︎︎さんのツイート: "Geckoの中のICU、59に上げるのはキャンセルになってます"
Rockridgeさんのツイート: "Fx56:文字の符号化処理を行うコンポーネントがuconvからRust言語ベースのencoding_rsに置き換えられた。参照:https://t.co/WFb7iNCLq2 / “1261841 - (encoding_rs)…” https://t.co/QGyHR8aExD"
Uconv - Wikipedia
uconv(1) - Linux man page
Makoto Kato ︎︎さんのツイート: "ICU 60.1って、Fuchsiaのサポート入ってるんだ"
Makoto Kato ︎︎さんのツイート: "https://t.co/kCtE4o40Gn icuもLinuxでUTF-8じゃないロケールサポートやめるぽいな"
PostgreSQL 10のICUコレーションとJIS X 4061 – yohgaki's blog
Makoto Kato ︎︎さんのツイート: "ICUのデータファイル、ECMA-402的には半分以上いらないので、BlinkとかGeckoとかがやってるようなデータ削減をnodejsもやるべきとは思う"
Makoto Kato ︎︎さんのツイート: "BlinkのAndroid版のICUデータ、通貨とかのローカライズ情報はGNPを元に削減してるのは、面白かった"
Rockridgeさんのツイート: "Firefoxでは、主にICUライブラリを通じて、Unicodeコンソーシアムが管理するCLDR(Common Locale Data Repository)によって提供されるロケールデータを利用している。 / “CLDR as…” https://t.co/QhO8R4vO1w"
CLDR as source of key internationalization data in Firefox: milestones achieved and next steps | Mozilla L10N
mattnさんのツイート: "昨日言ってた、Google Chrome の最新版が Windows7 で new Date が韓国標準時を返すバグ、ICU が原因なんだけど moriyoshi さんが詳細を送ってくれた事もあり解決しそう。 https://t.co/aZZ16PRsa3"
チェンジセット 41514 – Unicode ICU trac
Makoto Kato ︎︎さんのツイート: "ABI以外にもUnicode 10ベータのデータ使ってるとか、DateTimeのゾーン表記がGMTで書かれてたのにUTC表記になってるとか(これがなぜ変わったか調べてないからなんともいえないけど)ひどい有様です。… "
The Unicode Blog: ICU 64 Released

HarfBuzz

HarfBuzz - Wikipedia
HarfBuzz - Wikipedia
HarfBuzz – Y.A.M.A.P
Fadisさんのツイート: "これからは「〜文字まで」みたいな仕様があったらHarfBuzzをリンクするか https://t.co/gVGozYsCZ1"
HarfBuzz Manual: Clusters

GNU FriBidi

GNU FriBidi - Wikipedia
fribidi/fribidi: GNU FriBidi
fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm

Unicode

Unicode Terms of Use
Unicode Terms of Use
Technical Reports
Unicode Character Database
Index of /Public/PROGRAMS
Index of /Public
Unicode 9.0.0
UAX #24: Unicode Script Property
UAX #31: Unicode Identifier and Pattern Syntax
UAX #34: Unicode Named Character Sequences
UAX #38: Unicode Han Database (Unihan)
UAX #41: Common References for UAXs
UAX #42: Unicode Character Database in XML
UAX #44: Unicode Character Database
UAX #45: U-source Ideographs
UCS-2 ‐ 通信用語の基礎知識
Unicode ‐ 通信用語の基礎知識
ユニコード
Unicode―文字コード入門―
Tech Basics/Keyword:Unicode(ユニコード) - @IT
怖くないユニコードの話 - YouTube

JIS X 0221

JIS X 0221:2014とISO 10754:1984 | yasuokaの日記 | スラド
JIS X 0221 - Wikipedia
JIS X 0221:2014が出ています - yanok.net
国際符号化文字集合(USC)(JIS X 0221)が改訂 | カレントアウェアネス・ポータル
JIS X 0221:2014附属書JA(参考)日本文字部分レパートリ | yasuokaの日記 | スラド

絵文字

INTERNET Watch

「Unicode 9.0」が6月21日にリリース、72種類の絵文字を追加 -INTERNET Watch Watch
これからの絵文字の実装指針、UTR #51“Unicode Emoji”とはなにか - INTERNET Watch Watch
「Unicode 8.0」で肌の色の多様性に対応へ、“絵文字”に肌の色を変化させる符号を追加 -INTERNET Watch Watch
「Unicode 7.0」仕様公開、約250文字の絵文字を追加 -INTERNET Watch Watch
「Unicode 6.0」が策定、絵文字が国際標準に -INTERNET Watch Watch
Unicode、男女を切り替えられる絵文字を追加 -INTERNET Watch
「Unicode 10.0」への追加候補となる51種類の絵文字を発表 -INTERNET Watch

スラド

Unicode 9.0.0で追加される72種の絵文字 | スラド アップル
Unicode 9.0.0でライフルの絵文字が追加されなかったのはAppleとMicrosoftが反対したため? | スラド アップル
Unicodeの絵文字にスコットランド国旗が追加されない理由とは | スラド IT
iOS 10では拳銃の絵文字が水鉄砲の絵文字に置き換えられる | スラド アップル
絵文字のピストル、本物っぽいデザインとおもちゃっぽいデザインのどっちがいい? | スラド IT
Unicodeの絵文字のルーツ | yasuokaの日記 | スラド
キーマンズネットの考える絵文字とそのルーツ | yasuokaの日記 | スラド
J-PHONE SkyWalker絵文字とUnicode絵文字 | yasuokaの日記 | スラド

Wikipedia

UnicodeのEmojiの一覧 - Wikipedia
Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia

Twitter

Rockridgeさんのツイート: "Fx50:EmojiOneライブラリを取り込むことで、Windows XP/Vista/7およびLinux上で絵文字のサポートを強化。参照:https://t.co/ZDKMAOTZMA / “1231701 – Ship an…” https://t.co/jGCunzkZYt"
Rockridgeさんのツイート: "Windows版およびLinux版Firefox 50でカラー絵文字が正しく表示されるようになった。 / “Emoji for all Firefox users! | Blog: timdream” https://t.co/3zTq4D17Ur"
Rockridgeさんのツイート: "Fx59:絵文字用フォントの指定に対応し、通常文字と絵文字が混在しても絵文字が崩れないようにした。 / “1032671 - Add https://t.co/x39AiS2czz-list.* for Emoji” https://t.co/817tDG1ZM1"
Rockridgeさんのツイート: "Fx61:絵文字ライブラリがEmojiOneからTwitter Emoji(Twemoji)へと変更された。参照:https://t.co/mAgjkdO4nE / “1358240 - Replace EmojiOne wit…” https://t.co/lvlTa4XT6i"
Twitter Emoji (Twemoji)
twitter/twemoji: Twitter Emoji for Everyone
堀 正岳(Lifehacking.jp)さんのツイート: "台風の絵文字(U+1F300)は機種依存しているので環境や、使っているSNSによって表示は違うのですが、ツイッターとGoogle(Android)はなんと右巻きの渦になっています。現実の台風は北半球だと左巻きですので、注意しないといけませんね。… https://t.co/dIK3lSOlEk"
堀 正岳(Lifehacking.jp)さんのツイート: "iPhone上でもSafariでサイト上で見ると右巻き、アプリで見ると左巻きになっているところが面白い(笑)… "
堀 正岳(Lifehacking.jp)さんのツイート: "ツイートがのびているので付け加えておくと、もとのUnicodeは”Cyclone"に対応しておりこれは「低気圧」という一般的な名称をさしてます。だから右巻き・左巻きのどちらが正解ということはありません。でもふだんの経験と違うものがみえると驚くのと、表示環境しだいで違うというのは面白いですよね"
堀 正岳(Lifehacking.jp)さんのツイート: "「場所次第で台風・サイクロン・ハリケーンと呼ぶのでは?」という質問もあるかもしれませんがUnicodeはその3つを区別しているわけではなく、もし地域差を表示してるとしてもサイクロンは北インド洋を含むので右巻きか左巻きかは、言葉だけからはわからないんです..."
えいす8️⃣さんのツイート: "📛←日本人にはどう見ても幼稚園の名札だが、外人には何なのかさっぱり分からないらしく「燃えるトーフ」とか呼ばれている絵文字"
なかのん&マジックさんはTwitterを使っています: 「Windows 10でも、デスクトップアプリのpassword fieldと、UWPのそれは、絵文字の取り扱いが違うのか。前者はsurrogate pairだけ意識してて、後者は見た目の文字単位でハンドリングしてる。」 / Twitter
なかのん&マジックさんはTwitterを使っています: 「UWPのpassword fieldの動作が一番良いように思える。GTKのはUTF-16の一文字単位で編集できてしまうし(現在のGeckoも同じ)、macOSに至っては絵文字が混じってるとマトモに動作しなくなる。」 / Twitter
桃芭蕉実🍑🍌さんはTwitterを使っています: 「お寿司🍣の絵文字、見え方がスマフォとかによって違うんだね〜しらなかった〜 https://t.co/EReSX1551u」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「最近https://t.co/0cq48c17Uaの話を見ることなかったのですが、QID emojiってのを知って、まぁ呆れた https://t.co/cZuF21UHX4」 / Twitter
UTS #51 Addendum: Unicode Emoji QID
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「絵文字等のUTF16的にマルチバイトな文字をどうマスクするかで今年夏にちょっと格闘してみたんだけど、メチャクチャに難しいですな。確か、WindowsのUWPのパスワードフィールドの処理が一番綺麗だった気がするものの、細かいことは忘却の彼方。 https://t.co/y0KFfhi7HT」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox これ現在インストールされているフォントとかにも依存するので最適解はないですね。なんであんな仕様になったと今でも思ってる。(というと自分が仕様側に入れよと言われる話なんですが)」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@makoto_kato とりあえず、layoutがflushされてるかという例の問題と、やたらとあちこちにassertが仕込まれてて、クラスタ内やサロゲートペア間で何も起きないこと前提になってて、どんだけ直さないといけないのやらっていう感触でした。フォントはシステムデフォルトを強制するとかで緩和するしかないですかね……」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox Platformのバージョンによってインストールされているフォントが変わるので、レンダリング情報 (nsTextFrame) をみないと正しいマスクされる文字数がわからないんですよね。。。プラットフォーム固定だとどうにかなるんですが。。。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更だが、emojiの書記素(Grapheme Cluster?)判定をやらないと、こんなことになる。 それにしても、「親」絵文字と「子」絵文字が並ぶと「家族」絵文字にする仕様、誰得な仕様としか思えない(笑) https://t.co/wGg7RMVUiB https://t.co/so7v3SabmY https://t.co/uTk0td9Ixu」 / Twitter
書記素分割/Unicode カテゴリー判定 | ++C++; // 未確認飛行 C ブログ
🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu 合字の仕様ですね。そうしたくない場合はU+00A0(NBSP記号)を間に入れるルールになってた筈です。」 / Twitter

特集 : 絵文字が開いてしまった「パンドラの箱」 - CNET Japan
「Firefox 50」リリース、絵文字の独自サポートなどを導入 | OSDN Magazine
おう吐・ゾンビ・授乳などUnicodeに新しい絵文字69種類が追加される - GIGAZINE
“Emoji 5.0”をサポート、日本語対応も充実した「Windows 10」Build 16226 - 窓の杜
Unicode Emoji 11.0が公開〜157種の絵文字が2018年に仲間入り - iPhone Mania
絵文字を支える技術の紹介 - Qiita
「Unicode 11.0」に含まれる157の新しい絵文字をサポート ~「Windows 10 RS5/19H1」 - 窓の杜
定番のテキストエディター「秀丸エディタ」v8.85β7、絵文字の結合文字に対応 ほか - ダイジェストニュース - 窓の杜
「Windows 10 19H1」Build 18277が公開 ~“集中モード”や“アクション センター”が改善 - 窓の杜
結合文字を利用したカラー絵文字をサポート ~「秀丸エディタ」v8.85が正式版に - 窓の杜
栗田穣崇さん『ドコモの絵文字にうんちを入れたかったのですが、社内で大反対されまして…』 うんちの絵文字がUnicodeに登録されるまでの裏話 - Togetter
The Unicode Blog: Unicode Emoji 12.0 — final for 2019
絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット - (page 6) - CNET Japan
Windows 10プレビュー、絵文字の検索機能を追加 - PC Watch
“Emoji 12.0”をフルサポートした「Windows 10 20H1」Build 18845が“Skip Ahead”に - 窓の杜
「Windows 10 19H1」も“Emoji 12.0”に完全対応 ~Build 18348が“Fast”リングに - 窓の杜
The Unicode Blog: Emoji 12.0 Now Available for Adoption
The Unicode Blog: Unicode Technical Committee Considers Emoji Color Mechanism
The Unicode Blog: The Unicode Consortium Launches New Website in Celebration of World Emoji Day
iPhoneの絵文字一覧から「台湾国旗」が削除されてしまったと香港・マカオのユーザーが報告 - GIGAZINE
The Unicode Blog: The Most Frequent Emoji
Emoji Frequency - Unicode
The Unicode Blog: Emoji 12.1 release: 168 Emoji added
Windows 10プレビュー版で顔文字が呼び出し可能に - PC Watch

照合

Unicode照合アルゴリズム - Wikipedia
Unicode collation algorithm - Wikipedia
UTS #10: Unicode Collation Algorithm

互換漢字

CJK互換漢字 - Wikipedia
CJK Compatibility Ideographs - Wikipedia
CJK統合漢字 - Wikipedia
CJK Unified Ideographs - Wikipedia
Unicode CJK互換漢字 F900~FAFF - CyberLibrarian
Unicode CJK互換漢字補助 - CyberLibrarian
CJK互換漢字 ‐ 通信用語の基礎知識
日本の文字とUnicode 第4回 | 大修館書店 WEB国語教室
人名用漢字と互換漢字 | yasuokaの日記 | スラド
“情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」: 第2部 新常用漢字表と文字コード規格第5回 なぜUnicode正規化は生まれたか

異体字

ITpro

新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
新常用漢字が引き起こす文字コード問題 - 漢字1文字が最大8バイト、Unicodeの「IVS」とは?:ITpro
新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro

INTERNET Watch

渡邊の「邊」などの異体字の使い分け、MS Officeで可能に、IVSアドイン公開 -INTERNET Watch Watch
人名に使われる異体字など、IVS文字の入力を支援するソフト「IVSパレット」、イーストが発売 -INTERNET Watch

blog

IVDの2017-12-12版が公開 | yasuokaの日記 | スラド
Index of /ivd/data/2017-12-12
「崙の簡化字」のIVS | yasuokaの日記 | スラド
Windows標準のフォントだけで異体字(IVS)を扱う | 毛流麦花
Mac OS X 用異体字(異体字セレクタ Unicode IVS を含む)入力支援プラグイン及び TeX 系エディタ TeXShop 対応バイナリ - 技術考
IMEパッドでUnicodeの異体字セレクタを利用する―Office IME 2010を使いこなすを使いこなす―
日本語は1文字何バイト? ( ソフトウェア ) - アルファのブログ - Yahoo!ブログ

Twitter

Tsukasa #01さんはTwitterを使っています: "PanCJKV IVD Collection (unregistered) : https://t.co/jjnt5Enuqh"
Tsukasa #01さんはTwitterを使っています: "国ごとの字形の違いを表現するための IVD を Adobe がとうとう提案しようとしているのか。"
Tsukasa #01さんはTwitterを使っています: "OpenType の feature で国ごとの字形の違いを表現することは一応可能だとは思うけど、IVD を使うことでプレーンテキストの中でも同様のことができるようになるのか。"
vyv03354さんのツイート: "@makoto_kato IVS対応フォントでも通常IVSを単独の文字として収録していないので、ブラウザが認識していないとVSだけフォールバックが起きてうまく表示されません。フォントを1つしか使わない普通のアプリでは問題になりませんけど。"
Rockridgeさんのツイート: "Fx52:Windows版で、Webメールなどにおいて、IVS(Ideographic Variation Selector:漢字の異体字セレクタ)を用いた文字がバックスペースを2回押さないと消えない問題を修正。 / “8500…” https://t.co/uKAQekBADG"
ISO/IEC 10646:2017発行 | yasuokaの日記 | スラド
なぜ「⿸广帯」はISO/IEC 10646:2017から漏れてしまったのか | yasuokaの日記 | スラド
「⿺辶鳥」はISO/IEC 10646:2017に収録されたのか | yasuokaの日記 | スラド
楠 正憲さんのツイート: "この6万文字をWindowsやOffice、Mac、Linuxでもちゃんと扱えるところまできたのに自治体外字は百数十万文字も残ってるんですよね。マイナンバー対応で統合宛名の整備も進んだので、さすがに決着をつけたいな / “コンピ…” https://t.co/wCtbmA3lPQ"
ひめ@女体化したいさんのツイート: "どうせISO/IEC 10646:2017に関係するニュースでしたらこちらの岩手県大船渡市盛町字二本𭫚(にほんどう、拡張F U+2DADA)がオススメです https://t.co/iazheILI34"
Tsukasa #01 [要出典]さんのツイート: "あ、文字情報基盤周りだと、ISO/IEC 10646:2017 だけじゃなくて、IVD が 2017-12-12 版になったことも関連してるのかな (この版では、大漢和で重複収録されたものを "区別" するための IVS が追加されている。"
Tsukasa #01 [要出典]さんのツイート: "まぁそれはそうと、"全漢字" 使用可っての、だいぶ語弊があるよね。(ここまで書いて) 語弊があるどころか、登記統一文字で実際に複数の法人名に用例があるような字でも収録から外れてたり云々。"
Makoto Kato ︎︎さんのツイート: "IVSってフォントに依存するし、AdobeのセットとあのIPAが絡んでるセットは正規化してないから、グリフの形が全く同一でも同じコードになってないってところが好きじゃないんだけど、それ解決してるの?"
Makoto Kato ︎︎さんのツイート: "だから、IPAフォントじゃなくて、Noto CJKにあのIPAのIVSを移植しないと意味ない"

Standardized Variants
Ideographic Variation Database
Windows 8 の IVS 対応と IVS Add-in for Microsoft Office | マイクロソフト 公共機関向け
c - C言語でのUTF-8文字列の正確な長さを取得する - スタック・オーバーフロー
ダイナフォントのIVS(異体字切り替え)対応について教えてください。 | ダイナコムウェア株式会社
Unicode IVSとは | 異体字フィクサー | 製品情報 | 株式会社リンクス
IVSフォント利用ライブラリー|イースト株式会社
IVD/IVSとは | 文字情報基盤整備事業
IVS対応情報 | 文字情報基盤整備事業
異体字セレクタ - Wikipedia
異体字セレクター
IVD ‐ 通信用語の基礎知識
異体字セレクタセレクタ (α v0.5)

結合文字

Unicodeの特殊な文字 “結合文字列” – ものかの
サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
結合文字列をUnicode正規化で合成する方法の危険性 - Qiita
結合文字列を合成する安全な方法を考える - Qiita
macのファイル名のための安全なNFC正規化 - Qiita
ICU 結合文字かを判定する - Faith and Brave - C++で遊ぼう
文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする  - Qiita
Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
結合文字についてMacのおしい点 - yanok.net
「プログラマのための文字コード技術入門」EPUB版販売開始! - yanok.net
合字 - Wikipedia
Typographic ligature - Wikipedia
複雑なテキスト配置 - Wikipedia
Complex text layout - Wikipedia
結合文字 - Wikipedia
Combining character - Wikipedia
合成済み文字 - Wikipedia
Precomposed character - Wikipedia
図形素結合子 - Wikipedia
Combining Grapheme Joiner - Wikipedia
Unicode結合文字 難読化シェル芸

制御文字

ASCII

制御文字 - Wikipedia
ISO 2047 - Wikipedia
エスケープシーケンス - Wikipedia
エスケープ文字 - Wikipedia
改行コード - Wikipedia
キャリッジ・リターン - Wikipedia
キャレット記法 - Wikipedia
肯定応答 - Wikipedia
削除文字 - Wikipedia
シフトアウト・シフトイン - Wikipedia
スペース - Wikipedia
ソフトハイフン - Wikipedia
タブキー - Wikipedia
置換文字 - Wikipedia
テキスト終結文字 - Wikipedia
伝送終了文字 - Wikipedia
問い合わせ文字 - Wikipedia
バックスペースキー - Wikipedia
否定応答 - Wikipedia
ベル文字 - Wikipedia

一ノ瀬 いろはさんのツイート: "ゼロ幅接合子にゼロ幅非接合子・・・・・・ ウッ、アタマが!… "
ゼロ幅非接合子 - Wikipedia
Zero-width non-joiner - Wikipedia
ゼロ幅接合子 - Wikipedia
Zero-width joiner - Wikipedia
macOS 10.13/iOS 11のゼロ幅非接合子処理の不具合を利用しアプリをクラッシュさせる文字列が複数発見される。 | AAPL Ch.
2. スペースは" "だけじゃない的な話
jaco-js/SPACE_CHARS.ts at master · jaco-project/jaco-js
\sは本当に空白文字を網羅できているのか? - Panda Noir
新たな元号にZERO WIDTH JOINERは使えるのか | yasuokaの日記 | スラド
ノーブレークスペース - Wikipedia
単語結合子 - Wikipedia
Word joiner - Wikipedia
ゼロ幅スペース - Wikipedia
Zero-width space - Wikipedia
Thin space - Wikipedia
図形間隔 - Wikipedia
Figure space - Wikipedia

正規化

Unicode正規化 - Wikipedia
Unicodeの等価性 - Wikipedia
Unicode equivalence - Wikipedia
Unicodeの互換文字 - Wikipedia
Unicode compatibility characters - Wikipedia
ダイアクリティカルマーク - Wikipedia
Diacritic - Wikipedia
Unicode正規化
Elasticsearchでの文字列の正規化 - Carpe Diem
IBM Knowledge Center - エンコーディングと正規化
ユニコード
UAX #15: Unicode Normalization Forms
Unicode正規化 用語の混乱について 第4.2版 – ものかの
HFS+のエンコーディングとUnicode正規化 第3版 | ものかの
HFS+のテキストエンコーディング – ものかの
普通のUnicodeはNFCなのか – ものかの
本の虫: Linus Torvalds、HFS+に激怒
Taku Kudoさんのツイート: "NFKC 正規化といっても、Unicode Version が異なると結果が変わることがある(極めてレアだけど)。正規化を完全に自己完結モジュールにしたければ、Unicode Versionもモデルに含めないといけない。"
Kazuho Okuさんのツイート: "しかし「NKDで正規化したハッシュテーブル」みたいなやつ(ファイルシステムとか)、文字が追加されたらNKDの定義がかわるわけだけど、いったいどういう動作するのかな。未定義文字は登録できない、かつ、定義済の文字についてはNKDの定義がかわらない、みたいな規則にはしてないだろうし"
macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき
にせねこさんのツイート: "現在のTwitterでは投稿時にUnicode正規化がなされるらしく、互換漢字の旧字は対応する新字に置き換えられてしまうようです。 https://t.co/0CrCRXA9TM… "
TwitterにUnicode正規化が導入された時刻の推定 by zeeksphere - Togetter

東アジアの文字幅

UAX #11: East Asian Width
東アジアの文字幅 - Wikipedia
和字間隔 - Wikipedia

書記素クラスタ

Shiro Kawaiさんのツイート: "#tcfm 12回 https://t.co/orkUFymQiq Grapheme clusterを構成するコードポイント数って上限無いんじゃなかったっけ。文字数で入力制限かけるようなコードだとやばそうだな。"
Jun Mukaiさんのツイート: "https://t.co/mIq2d78OKz GB9とGB11のルールの組み合わせによりいくらでも長いgrapheme clusterはつくれます… "
UAX #29: Unicode Text Segmentation
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
Perl 5.26 & Unicode 9.0 で変わる書記素クラスタ(grapheme Cluster)のお話 - Shogo's Blog
Python でタイ文字やアラビア文字の個数をうまく数える - Qiita
UAX #29: Unicode Text Segmentation

サロゲートペア

サロゲートペア入門:CodeZine(コードジン)
JavaScriptでのサロゲートペア文字列のメモ - Qiita
サロゲート・ペアのトラブルはいつまで続くか - yanok.net
Unicodeサポートの現状 - yanok.net

双方向テキスト

UAX #9: Unicode Bidirectional Algorithm
双方向テキスト - Wikipedia
Bi-directional text - Wikipedia
bidiフォーマット文字も追加:Unicode標準6.3が公開、日中韓の互換表意文字改善 - @IT
七誌さんはTwitterを使っています: 「Windows 2000の頃からWin32の標準TextBoxで右クリックするとメニューにRLM等のUnicode制御文字関連項目があるのは知っていたけど、初めて使った。 Wikipediaの例をコピペして制御文字を表示すると存在が確認できる。バイナリダンプすると対象文字(!)の後にある。 https://t.co/UbIAZG3oj0 https://t.co/KX29zYXXHz」 / Twitter
Right-to-left mark - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「牛耕式」を知っている人少なそう、、、牛耕式対応BiDiとかあったらすごいな。 https://t.co/o0QRy67YAk」 / Twitter
中村 実さんはTwitterを使っています 「古代ギリシャ語を牛耕式で書く場合、右から左の行と左から右の行では文字の左右が逆、つまり鏡文字になったそうだが、現代のエディッタ&amp;フォントで表示できるのかしら?」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみにRustは1年以上前に文字列の端を取り除くメソッドの一種であるtrim_left/trim_rightを非推奨にしてtrim_start/trim_endにしていますね。これは右から左に書記する体系では混乱のもとだからです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえは、IPMsgのログビューアは、一応アラビア語などbidi表示されるのだけど、範囲選択で馬脚を現してしまう、、、本当ローカライズは色々面倒。」 / Twitter

行分割

- UAX #14 Unicode 行分割アルゴリズム - metacpan.org
UAX #14: Unicode Line Breaking Algorithm
UAX #29: Unicode Text Segmentation
Qt in depth: Qt の禁則処理 - Qt Japanese Blog
libunibreak
adah1972/libunibreak

Wikipedia

その他

U-PRESS - Wikipedia
Template:文字コード - Wikipedia
Template:Character encodings - Wikipedia, the free encyclopedia
Character encoding - Wikipedia, the free encyclopedia

文字

Unicodeにおけるラテン文字 - Wikipedia
Latin script in Unicode - Wikipedia
拡張漢字 - Wikipedia
香港増補字符集 - Wikipedia
Hong Kong Supplementary Character Set - Wikipedia
西夏文字 - Wikipedia
Tangut script - Wikipedia
バムン文字 - Wikipedia
Bamum script - Wikipedia
たいと - Wikipedia
Taito (kanji) - Wikipedia
ノーティカルスター - Wikipedia
Nautical star - Wikipedia
蘇州号碼 - Wikipedia
Suzhou numerals - Wikipedia
カシーダ - Wikipedia
Kashida - Wikipedia

Unicode - Wikipedia
Unicode - Wikipedia
ISO/IEC 10646 - Wikipedia
Universal Coded Character Set - Wikipedia
DIS 10646 - Wikipedia
ユニコードコンソーシアム - Wikipedia
Unicode Consortium - Wikipedia
Ideographic Rapporteur Group - Wikipedia
Ideographic Rapporteur Group - Wikipedia
Common Locale Data Repository - Wikipedia
Common Locale Data Repository - Wikipedia
Unicode一覧 - Wikipedia
List of Unicode characters - Wikipedia
Unicode一覧表 - Wikipedia
Unicode文字のマッピング - Wikipedia
Universal Character Set characters - Wikipedia
文字符号化方式 - Wikipedia
UTF-8 - Wikipedia
UTF-8 - Wikipedia
ホモグラフ攻撃 - Wikipedia
IDN homograph attack - Wikipedia
バイトオーダーマーク - Wikipedia
Byte order mark - Wikipedia

Twitter

その他

合字

KIMATA RobertHisasiさんのツイート: "日本語の文中で全く読めない文字「ゟ」に出くわして、「より」の合字があることを知る"
KIMATA RobertHisasiさんのツイート: "ひらがなの合字とカタカナの合字、UNICODEで定義されているのはここらへん参照らしい https://t.co/PSgHt1RbcO https://t.co/zLCBg9u89L 濁点、半濁点以外の合字だと平仮名の「ゟ」(より)と片仮名の「ヿ」(コト)がある模様。なお、「〼」(ます)は枡記号であって仮名ではないらしい。そうなんだ"
The Unicode Standard, Version 12.0
The Unicode Standard, Version 12.0
Shirouzu Hiroaki(白水啓章)さんのツイート: "「ゟ」は、「より」のひらがな合字、「合略仮名」と。… "

OS作れないマンさんのツイート: "wchar_tがUnicodeだと言われるともやもやする。"
なぎせ ゆうきさんのツイート: "ユーザー「ちゃんと文字数数えてくださいよ!」 プログラマ「では文字の数え方を定義して下さい。"👎"これは?」 ユ「1文字」 プ「サロゲートペアは1文字と。"・ิ"これは?」 ユ「1文字」 プ「合字は1文字と。"フ゜"これは?」 ユ「2文字……?」"
Fadisさんのツイート: "Unicodeへの絵文字の追加によって、表音文字を使ってきた文化圏が表意文字をカジュアルに使い始めた事は遠い未来から文字の歴史を見ると大きな事件になっているのかもしれない"
渋川よしきさんのツイート: "UTF-8は最大6バイトでは?「絵文字を入力する」ユースケース対応でIME対応が進むことも期待できる。 : 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note(ノート) https://t.co/nzV61y7j5Y"
kamimuraさんのツイート: "@shibu_jp @ymotongpoo 自身では単純に、utf-8の可変長でもほとんどの文字が6バイト(今では4バイト)になる、後方互換気にしない、いずれ2~6(4)バイトの大きさは気にするほどでもなくなる、と都合よく仮定して文字をUTF-32で実装してみたり。 https://t.co/KWo9s6Xqam… https://t.co/CAPAA5GLsz"
Shiro Kawaiさんのツイート: "@tenpoku1000 @mkamimura @rui314 同意。「文字」というのはどうコード化しても前後の文脈に依存する場合が出るので、文字列=互いに独立した文字オブジェクトのランダムアクセス列、という道は幸せにはなれないと考えます。SchemeもR6RS前に大きな議論があって、結局言語上の文字=コードポイントと割り切り意味的な文字はア… https://t.co/m04MNNXdGt"
鹿野壮(かのたけし)さんのツイート: "Google Chromeで絵文字のサイズを257px以上にすると、消えるよ。 (FirefoxやSafariでは消えない) #跡部王国 https://t.co/8lhNaJ9Fly"
mashabowさんのツイート: "新元号の組文字、「BMPに符号位置確保しといて」って要求が日本NBから出てた https://t.co/OsFnV1JWBT"
17429-sc2-n4577-japan-new-era.pdf
Ken Lunde (小林劍󠄁)さんのツイート: "This is the second—and likely final—draft of the new figure for Section 18.2, “Ideographic Description Characters,” of the #Unicode11 Core S… https://t.co/YEnqKjnYCq"
Kazuhiro Kazamaさんのツイート: "JavaやJavaScriptの国際化に携わってきたNorbert Lindenbergが日本語の勉強に来日した時に「日本語は難しい」と嘆いていたのですが,新たに日本語にハングルの要素を取り入れた"Niji script"を考えたそうです.ぜひ見てあげてください. https://t.co/5pJ1tSPZKq"
The Niji script
Masaki Haraさんのツイート: "WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。"
Masaki Haraさんのツイート: "https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。"
Hiroyuki Komatsuさんのツイート: "1970-1980 年代のコンピューターで使われていた画像描画用の文字が、ユニコードに採択されました。 古いコンピューター風の演出や、エミュレーター用途だけでなく、軽いツールのアイコンとしても使えそうです。顔文字の表現の幅も広がりますね。 僕の好きな MSX の命令は VPOKE でした。… https://t.co/ZrvdDhMVrc"
The Unicode Consortiumさんのツイート: "214 characters from legacy computers and teletext that were proposed by @DougEwell, @BeckieRGB, and others in the “Terminals Working Group” in L2/19-025 were just accepted at #UTC158 for a future version of #Unicode → https://t.co/BNVgHvH2XQ… https://t.co/iI2Zo54TZO"
島鉄雄さんはTwitterを使っています: 「「𩸽」(ほっけ)という漢字が UTF-8 だと 4 byte になる知見を得た。 4 byte 文字も含めてちゃんと UTF-8 に対応しているか確認する時と、居酒屋で取り敢えずツマミを頼む時にほっけが使える。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「全角スペースが紛れてsyntax error、というツイートをちらほらみかけるんだけど言語仕様でUnicode許すならカテゴリZsを空白扱いにすればいいのに」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています 「Unicode 13.0 がもうすぐ公開か。……このバージョンで、久しぶりに新しい面が使われる。そう、漢字のために第2面、6.5万字強を割り当てたにも関わらずほぼ使い果たし、またもや漢字専用に割り当てられた第3面が今回正式デビューすることになるのだ。」 / Twitter
ドッグさんはTwitterを使っています 「unicode-org 公式の i18n ライブラリ ICU4X が ICU4C や ICU4J での経験を生かして新たに実装されてる.実装は Rust .ECMA-402 互換の API を提供し,(多分 C ABI を通じて)複数のプラットフォームや言語で使えるようにするらしい | 'unicode-org/icu4x' https://t.co/GiILG5jWFv」 / Twitter
unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
ドッグさんはTwitterを使っています 「今のところ,対応予定のプラットフォームはブラウザ, iOS, Android, WearOS, WatchOS, Flutter, Fuchsia で,対応予定の言語は Rust, JavaScript, Objective-C, Java, Dart, C++.ブラウザ対応は Wasm を使うのか」 / Twitter

UTF-8(Windows)

Hideyuki Tanakaさんのツイート: "BOMってバイトオーダー示すためのものなのになんでバイトストリームであるUTF-8にBOMをつけてもいいような仕様にしたのか、Unicodeコンソーシアムの考えることはホンマわからん。(´・_・`)"
なかのん&マジックさんのツイート: "charsetをHTTPヘッダとかで指定できないローカルファイル向けじゃないのかなぁ。昔、HTMLエディタを自作してたけど、一番困ったのは、読み込んだファイルがASCII文字しかない場合に、どのエンコーディングを前提とするかって事。新しく非ASCII文字を入力して保存する場合、さて、どうする?ってなる。"
なかのん&マジックさんのツイート: "正直、なんで、UTF-8のBOMがそんなにうざがられてるのか理解できないんだよな。一部のアプリが適切にそれを無視できていないなら、悪いのはそのアプリの方なんで。"
なかのん&マジックさんのツイート: "テキストエディタがCRLFか、LFのみにしか対応してなかったら、そのテキストエディタは使えないって思うでしょ?"
なかのん&マジックさんのツイート: "逆に言えば、なんで未だにローカルファイルに文字コード情報がファイルシステムとかで記録・提供されないのよって思う。"
なかのん&マジックさんのツイート: "そもそも、U+FEFFは"ZERO WIDTH NO-BREAK SPACE"なので、これをBOMとか呼んでるのがそもそもどうなのって感じもする。昔、ブラウザの文字化け回避に、HTMLに<!-- あ -->とか入れてたハックみたいなもんよね、あれ。(「あ」だったかどうかちょっと自信無いけど)"
なかのん&マジックさんのツイート: "なので、あれを入れてる時点でASCIIなファイルではないので、これをUTF-8非対応のアプリに読み込ませるのは人の愚行なわけで。"
なかのん&マジックさんのツイート: "今どき、まともなテキストエディタならBOMを標準で入れたりしないだろうし、大抵のUTF-8 awareなアプリならそれを無視するだろうしで、どういうシナリオで問題になるのかよく分からない。"
KIMATA RobertHisasiさんのツイート: "Windows 標準及びごく少数の許可されたソフトウェアのみで作業する必要があり、しかも、BOMなしUTF8が必要だったため、メモ帳でJScriptファイル書いて、ADODBオブジェクトでBOM付きUTF8ファイルとして保存した上でバイナリとして読みだしてBOM分を飛ばしてから保存と言う作業をしたことがあり(笑)… https://t.co/mHP1FbgI78"
一ノ瀬 いろはさんのツイート: "notepad.exe が意図的に入れようとしなくても勝手に入れるぐらい。… "
一ノ瀬 いろはさんのツイート: "シェルスクリプトなどで使われる shebang の扱いと PHP ぐらいかな?… "
一ノ瀬 いろはさんのツイート: "どっちも書くのはツラいですね。 しかしnotepad.exeしか与えられない環境というのは意外と多く。… "
なかのん&マジックさんのツイート: "メモリ4GBを基本的人権とか言う前に、もっと大切なことがある気がしてきますな……"
なかのん&マジックさんのツイート: "とりあえず、みんな使っていないであろうメモ帳に変更があったからといって、なんでみんな反応したりするのかよく分からん。"
Piro/Linuxコマンド操作漫画連載中さんのツイート: "法人サポートではこのファイルをこれこれこのように編集して下さいと案内する事がありますが、そこでBOMを強制的に付与する物が標準的に使われてしまうと、恐らく要らぬトラブルが増える事が予想されます。… "
村上真雄 MURAKAMI Shinyuさんのツイート: "Windows 10 のコントロールパネルの地域の設定で「ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックを入れると、今までデフォルトでShift JISだったもの(メモ帳をはじめ…)がUTF-8(BOM無し)になってくれてありがたいです。(それで不具合出る古い日本語アプリは捨てよう)… https://t.co/flgTiuKVCN"
村上真雄 MURAKAMI Shinyuさんのツイート: "この設定をすると「メモ帳」の「名前を付けて保存」で「文字コード: ANSI」(デフォルト)だとBOM無しのUTF-8、「文字コード: UTF-8」だとBOM付きのUTF-8のファイルになります。"
村上真雄 MURAKAMI Shinyuさんのツイート: "Windows用語の「ANSI」は、ANSI(米国国家規格協会)の標準規格じゃないのに、誤った名前で使われ続けているらしい: https://t.co/RvWOzy3rZa そのあたりの謎なWindows用語も直してほしいものです。"
Windows code page - Wikipedia
なかのん&マジックさんのツイート: "あの設定を変更すると、壊れるアプリは多々ありそう……古いアプリというより、古くからあるアプリの互換性が心配。特にインストーラとか、メンテがそこまで活発じゃなさそうな部分。"
uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・… "
なかのん&マジックさんのツイート: "あー、Unicodeアプリ以外全滅ですか。さすがに使えないですね……単純に古い開発環境で作ってるだけの新しいアプリも全滅しちゃいますね。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「WinNT系カーネルもそうで、W系WinAPIは全てUTF-16(昔はUCS-2のLE表現)。 UTF8系WinAPIを用意すべきなのに、A系APIをOSコードページ指定(システムグローバル)を65001にすることで、UTF-8利用可にするという頭の悪い方向で頭が痛い… https://t.co/EZyfCcKfgj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「1903からアプリ毎のUTF-8設定できるのね。知らなかった。 ただ、WIN32_FIND_DATAA など cFileName が MAX_PATH byte しか無いため、非ASCIIで87文字以上の長いファイル名が格納できないという、MBCS版(SJIS129文字まで)より、さらに制限のキツいアプリしか作れない。 https://t.co/1AnPmGpEfB」 / Twitter
K.TakataさんはTwitterを使っています: 「manifestでアプリ単位でUTF-8に切り替えできるようになったので十分じゃないのかな。 https://t.co/V0T47xXIgI UTF-8なAPIだけを用意してもCRTが使えないのであまり意味がないし https://t.co/kqfXMGhXRx」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それと、IPMsg で実際に W系APIを UTF-8 API的なラッパーを用意して、UTF-8で動くコードを書いてる経験からすると、CRTは(UTF-8明示対応が理想だけど)実はmbcs系を明示的に使わず、strXXXみたいなASCII用関数を使う限り、ほぼ問題ない。(UTF-8はASCII系との互換性が高い) https://t.co/lvFt3kI1iA」 / Twitter
ipmsg/tapi32u8.h at 733f2515b34f7a5f84342448540b1a61d9f1dd0b · shirouzu/ipmsg
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まずいのは mbsstr とか MBCS版CString のような MBCS前提に書かれたライブラリ。たとえば、VC6 の CString Find に UTF-8を食わせると破綻した経験。 (なお、VS2005のCStringだと leadbyte 終端時の \0飛び越しは無くなっていた) https://t.co/bCkJtweS6V」 / Twitter
私的メモ(2004年01月版)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば「アプリ毎コードページ設定化は無理?」と思っていたのだけど、意外と大丈夫だったのね。 コモンダイアログ等のDLLはMSさんがUTF-8対応したのだろうけど、それ以外で未対応DLLを食うパターンが無いかの確認はアプリ側でやれよ、ということかな。 https://t.co/fvAxXRJEcQ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、アプリ毎の ANSI API の MBCS/UTF8解釈切り替えは、DLLの存在を考えると、たぶん無理。」 / Twitter

@rockridge07

Rockridgeさんのツイート: "Fx42:Unicode v8.0をサポート。参照:https://t.co/hR5TaueMuf / “1183209 – update Unicode character data to version 8” https://t.co/3lbspBIwRe"
Rockridgeさんのツイート: "Fx53:Unicode v9.0をサポート。参照:https://t.co/5eJdHuOEmL / “1281448 – update Unicode character data to version 9.0” https://t.co/QtHgUt197u"
Rockridgeさんのツイート: "Fx56:Unicode v10.0をサポート。参照:https://t.co/XCqHzGprAP / “1376834 - Update Unicode data to release 10.0” https://t.co/SyxYcNNjNa"

@d_toybox

なかのん&マジックさんのツイート: "これ、Unicodeが悪いかのような書き方してるけど、欧米の言語で考えればUnicodeのアプローチ正しいでしょ? 欧米の言語ごとに同じアルファベット定義させる気? lang属性はそういう意味で必要なのよ。 / 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? https://t.co/8eoYzLWlr0"
1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? (1)
なかのん&マジックさんのツイート: "あと、ページ全体のlang属性もきちんと指定しておかないと、例えば英語の設定しかしてないブラウザで漢字交じりのUTF-8なページを表示した時に、日中韓どのフォントで表示すれば適当なのかはヒントが他に無いのよね。実際にこういうトラブルで定期的にバグとしてFirefox側に報告来てたりするのよ。"
なかのん&マジックさんのツイート: "Firefox的にはユーザ自身が設定の言語の所に、自分の使えるCJKの言語を追加して優先順位を適切にしておくと、それを優先するよって形にはなってるんだけど、まあ、英語版のNightly使ってる中国系の人からの報告が常にやってくる。"
なかのん&マジックさんのツイート: "ちなみにGeckoは歴史の長いエンジンなので、過去からの互換性のために最後までヒントが無かったときのフォールバックで日本語が最初に来るので日本人は中々見かけない問題ではある。他のエンジンはどうしてるのか知らない。"
なかのん&マジックさんのツイート: "ブラウザの実装やってる側からするとこの記事とか本当にアホかって思う。検索エンジンの方だけ向いて、ユーザの方を向かずにWeb作ってるからこう判断しちゃうんだろうな。 / Google「言語指定にlangは使うな」/公式発言 https://t.co/xFuK2b8j6L"
Google「言語指定にlangは使うな」/公式発言
なかのん&マジックさんのツイート: "Unicodeのコードテーブルで#(U+FF03)の定義を確認したけど、FULLWIDTH NUMBER SIGNと、<wide># だけだし、# (U+0023)の方もNUMBER SIGN、pound sign、hash、crosshatch、octothorpeだけで、music sharpはU+266Fと案内してるよなぁ。"
なかのん&マジックさんのツイート: "UTF-16とかBOMは間違ってないと思うけどなぁ。少なくとも、処理する上でUTF-8は無いわーって思う。伝送にはUTF-8以外に無いわーだけど。"
なかのん&マジックさんのツイート: "'EXCLAMATION QUESTION MARK' (U+2049) / 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ https://t.co/R9KQ6G3cul"
「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ
Yuzuru Suzukiさんのツイート: "「々」が漢字ではなく記号扱いだからバリデーション通らない超基本のやつだ。… "
Atsushi Sasakiさんのツイート: "【悲報】ゆうちょPayでは「佐々木」という姓が名前として入力できない。なんだこれ日本に佐々木姓が何人いると思ってんだ……… "

@makoto_kato

Makoto Kato ︎︎さんのツイート: "emojiはUTF-32は解決できるかもしれないけど、IVSは解決できないし、クラスタは解決できないので、あのruiさんのエントリになるほどと思ってる人はunicodeのスペック読み直せ"
Makoto Kato ︎︎さんのツイート: "個人的にはJPって絵文字並べると日本の国旗ができるスペック、あれどうなのよだし、そのタイミングで文句言えなかったのは自分の守備範囲のせいかも"
Makoto Kato ︎︎さんのツイート: "元号が増えるとICUのアップデートが必要"
Makoto Kato ︎︎さんのツイート: "なので、ICUを使ってるコードはすべてアップデートしないといけないんですが、誰が調査するんですかねー。(そもそもそのアプリで日本の元号表示したりするのかは置いておいて)"
Makoto Kato ︎︎さんのツイート: "NEX久々に乗ったけどまだdouble byte言ってる。そもそもIDNとかあるのに何言ってるんだろ。作ったNTT Com?の人がおそらく40代以上なんだろうな… "
Makoto Kato ︎︎さんのツイート: "triple bytesならいいのかといつも突っ込みたくなるやつ"

@kazuho

Kazuho Okuさんのツイート: "今までマルチバイト対応が少なかったのを欧米圏の人たちの他文化への理解の欠如のせいにするツイートが散見されるけど、彼らからしてみれば、対応しようにも漢字読めないから正しい表示にできているのか判断しようがなかったんですよ。絵文字が流行るまでは。"
Kazuho Okuさんのツイート: "アラビア語の表示が正しくできてるかデバッグしたことのある人だけが、英語圏のプログラマに斧を投げなさいって感じ"
Kazuho Okuさんのツイート: "いっタイなんて書いてあるのか、わかりませんからねぇ https://t.co/Iexqryl8Xi"
Kazuho Okuさんのツイート: "実際、ASCII+EUC/ShiftJIS自体に発生した様々な問題をユニコード(UCS2)で解決しようというのはアメリカ主導の提案だったわけだし、彼らにとっては、文化的無理解からやりたくなかったのではなく商業的理由でやりたかった話"

@rui314

絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note
Rui Ueyamaさんのツイート: "欧米の人たちはマルチバイト文字圏の苦労がわかってないし、わかっていても意図的に無視してきた、みたいなこと、いわないほうがいいと思いますよ。実際に払われてきた苦労をわかってないのはそういう人たちのほうで、しかも僕も含めた開発者を人種差別的な意味まで含みながら侮辱しているだけなので。"
Rui Ueyamaさんのツイート: "UTF-8の認識が15年前くらいからアップデートされていないひとがわりといるのかも? Unicodeは2^32とかではなく最大でも1,114,112文字に制限されているので最長でも4バイトだし、冗長なエンコーディングは禁止されているのでそういうのは単に不正なバイト列。"
Rui Ueyamaさんのツイート: "@anohana @tenpoku1000 @mkamimura そうですね。それと、ほとんどのデータや文章は最初から順番に読んでいかないと意味がわからないので(HTMLや自然言語の文を途中から読んでパーズしたりできない)、n文字目にO(1)でシークできるというのは実際はほとんどメリットないと思います。"

@a4lg

Tsukasa #01 [要出典]さんのツイート: "ある資料の収録字を調べる → Unicode 中には無い → IDS で検索 → 中国国家図書館が、各地方志の電子化を行う過程で 4000 字以上の漢字を IRG に提出し、――その多くが今も未収録なことを発見する (IRG N1199 等)。"
Tsukasa #01 [要出典]さんのツイート: "奇妙な字がたくさん。まだ Unicode に登録されていない漢字が多いという事実に圧倒される。 https://t.co/m5KhzR53GP (提案[この時点では正式な proposal ではない]) https://t.co/2fUdm0vutW (グリフ一覧)… https://t.co/xGe2XEzdey"
Tsukasa #01 [要出典]さんのツイート: "念のため強調しておくと、Unicode 登録準備が進められているものを含めると、9万以上の漢字が Unicode (と、おそらく 2 年以内にそこに収録されるワーキングセット) に収録されているのだ。そこに漏れているものがまだまだ多いということは、………いやぁ、おそろしいねぇ。"
Tsukasa #01 [要出典]さんのツイート: "@wtnelson @sarasvati635 Yes, I agree that. The only (and the biggest) problem is, this ideograph got too famous (about its stroke count) to reject. It feels more li… https://t.co/J8pJeS9nog"
William T.さんのツイート: "@sarasvati635 @a4lg I am angry about UK-02960 「⿱䨺龘」 UK “additional evidence” is 和製漢字の辞典 that says: 存在未確認 UK says that UCS "does not encode idiosyncratic, pers… https://t.co/x0Mc38nVJ9"
Tsukasa #01 [要出典]さんのツイート: "@ZawemonK "単なるデマ" として潰すタイミングを逸した感 (デマだったとしても、それを前提として載せてしまっているものも笹原氏の本含めてありますし……)。"
Tsukasa #01 [要出典]さんのツイート: "oO( というわけで、それこそ 龍*n とか 雷*n の自称古文とかは広がらないうちに潰………れてるのかな。まぁ今はあまり広がってないが、流石にこれをエンコードしようっていうのなら強く反対。 )"
Tsukasa #01 [要出典]さんのツイート: "@ZawemonK これ単独ではないでしょうが、間違いなくひとつ挙げられるのは、今昔文字鏡等の宣伝があるかと。"ちくわ" "慶應" とかもその類ですし。"

@tanakh

Hideyuki Tanakaさんのツイート: "⿸ こんな文字とかあったんすね(´・_・`)"
Hideyuki Tanakaさんのツイート: "漢字構成記述文字なんてものが定義されてたのか(´・_・`)"

@ohashimasaki

Masaki Ohashiさんのツイート: "結局のところ、入力チェックを設けるよりも、所定の文字に関してだけ自動的に置換をするようにしといたほうがはるかに簡単だしスムーズだよね。どうせ0-9A-Za-zとカタカナと一部の記号だけなんだから…「全角」とか「半角」とかで決めるから意味が分からなくなる。"
Masaki Ohashiさんのツイート: "もし「全角」「半角」をチェックしたいなら、自分または顧客が「全角」「半角」と考える文字の範囲をあらかじめ決めておかないとチェックしようがないけど、そもそも意味あるのかw たいていは顧客の社内文書のスタイルに起因するものなんだろうけど。とくに「全角」限定は悩ましい。"

@anohana

Shiro Kawaiさんのツイート: "論文のアルゴリズム実装してみる時は、最近ではギリシャ文字とかあまり抵抗無く使うなあ。 上付き下付き文字を ^+ とか _1 とか書くのがいまいち、と思ってたんだけど、考えてみたらUnicodeにあるから使えばいいのか。U+2070 ~ U+209Cあたり。… https://t.co/W8RwPhGeG1"
Shiro Kawaiさんのツイート: "SchemeはUnicodeの一般カテゴリで識別子を定義してて、全角数字はNdなので最初の文字としては使えない(2文字目以降は可)。が、Gaucheは今のところ「数字として解釈できないシンボルっぽいやつはシンボルでいいや」という昔のLispのユルさを引きずってる。 gosh> (define 1 2) |1| gosh> (+ 1 1) 4… https://t.co/UdfDqGRZHG"
Shiro Kawaiさんのツイート: "これはやっぱりあんまりなのでそのうち変えるかも。"

decodeunicode.org
📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
文字コードDB
FileFormat.Info · The Digital Rosetta Stone
Unicode 13.0.0

GUI

レンダリング

その他

その他

革命の日々! Windows VistaのIE7で文字サイズ変更が記憶されない。
MozillaはQuantumプロジェクトで過去と訣別し、未来に賭ける - Mozilla Flux
いまどきのデスクトップ処理系 - Backnumbers: Steps to Phantasien
動画上にコメントを表示する"弾幕"の仕様 - ASnoKaze blog
#html_modules_study アウトラインメモ | Web Scratch
The WHATWG Blog — The state of fieldset interoperability
Proposal for promotable IFRAME - WICG
縦書きWeb普及委員会
FAQ | たてよこWebアワード
カクヨムでの縦組み表示の実装と、縦書きWebの将来に向けて (builderscon tokyo 2018) - Hatena Developer Blog
WEB+DB PRESS の連載はなんとか打ち切りにならず続行中 - Backnumbers: Steps to Phantasien
Blog Title - 第二回部会 - Part 1 (概要)
John Resig - Selectors that People Actually Use
🐛よくハマったFlexboxのバグまとめ|たかもそ|note
Vanilla JSの108の一般的なDOMタスク:HTML DOMプロジェクト
Crank: レンダリングを備えた新しいフロントエンドフレームワーク - 作者のBrian Kim氏に聞く
Brahmos -- コンカレントレンダリングを備えた、コンパクトなReact風UIフレームワーク
開発者向けの強力なブラウザであるPolypaneの作成者へのインタビュー

won't fix

won't fix: Adobeが行っている各ブラウザへのコントリビューション
won't fix: Twitterの仕様の認識間違いに対してのMozillaの反論
won't fix: safe-area-insets が本当に使われているとは思えない
won't fix: WebKitとBlinkのスタンスの違い

blog.jxck.io

Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
ブラウザで何が起こっているのかを知る Reporting API と ReportingObserver | blog.jxck.io
img の srcset 指定時に選択される画像 | blog.jxck.io
Scroll To Text Fragment と :~:text | blog.jxck.io
Font Display プロパティを用いた FOIT/FOUT 最適化 | blog.jxck.io
CSS Rhythmic Sizing で Vertical Rhythm | blog.jxck.io

mizchi's blog

この DOM がすごい2018: worker-dom - mizchi's blog
worker-dom-code-reading.md
SPA が、ウェブ開発のベストプラクティスになる時代 - mizchi's blog
実践: React Hooks - mizchi's blog
WebComponents: ReactNative.View のような CSS の既定値を持つだけの x-view を作ってみる - mizchi's blog
React Hooks をどう使っていくか - mizchi's blog
「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
WEB+DB PRESS Vol.106 で仮想DOMアルゴリズムについて書かせていただきました - mizchi's blog
GUI環境でWeb の UIを構築する開発ツールを作りたい - mizchi's blog

水底の血

メモ:CSS Basic User Interface Module Level 3 (CSS3 UI)は勧告案へ - 水底の血
メモ:`scrollbar-*-color`プロパティが標準化への一歩 - 水底の血
CSS Snapshot 2017が発行されました - 水底の血
CSSワーキンググループの示す2015年時点のCSS仕様群の姿 - 水底の血
(メモ)CSS1、CSS 2.0がSuperseded Recommendationへ - 水底の血
`appearance`プロパティはブラウザーでサポートされません - 水底の血
HTML文書は文字エンコーディングUTF-8でなければなりません - 水底の血

Shiki’s Weblog

Shiki’s Weblog: ESウェブブラウザ通信 - HTTPリクエストの並行処理
Shiki’s Weblog: ESウェブブラウザ通信 - CSS 2.1 Test Suite #13

レンダラーの提案

React Native

React Nativeとネイティブアプリでの開発の違いとは | TechAcademyマガジン
React Nativeを用いた初めてのiOSアプリ開発 : 選んだ理由と、開発で学んだこと | プログラミング | POSTD
React Native開発のつらい点まとめ – MMiyauchi Blog
React Nativeとは何なのか - Qiita

やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog
なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
Performance Calendar » React’s diff algorithm
Reconciliation - React
Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log
Facebook の決断:MVCはスケールしない。ならば Flux だ。
Fluxアーキテクチャの覚え書きを書いた - saneyuki_s log

Adwaysエンジニアブログ

React NativeのレイアウトエンジンYogaの仕組み [前編] - Adwaysエンジニアブログ
React NativeのレイアウトエンジンYogaの仕組み [後編] - Adwaysエンジニアブログ
React NativeのレイアウトエンジンYogaの仕組み [続編] - Adwaysエンジニアブログ
CSS Flexible Box Layout Module Level 1
CSS Flexible Box Layout Module Level 1

ゆっくりと…

ブラウザ動作の理解-レンダリングツリーの構築と描画のタイミング | ゆっくりと…
ブラウザ動作の理解-リフローとリペイント及びその最適化 | ゆっくりと…
ブラウザ動作の理解-レンダリングの負荷を測る | ゆっくりと…

フロントエンドBlog

BackstopJSを使ったCSSのリファクタリング | フロントエンドBlog | ミツエーリンクス
webpack 4とmini-css-extract-pluginを使ってCSSを別ファイルに書き出す方法 | フロントエンドBlog | ミツエーリンクス
BabelとPostCSS、ESLintとstylelintの設定をpackage.jsonに詰め込んでみる | フロントエンドBlog | ミツエーリンクス
Shadow DOM と CSS Containment によって実現されたCSSのスコープの概念 | フロントエンドBlog | ミツエーリンクス
新たなCSS設計思想 MOCSS の登場 | フロントエンドBlog | ミツエーリンクス
IE9サポート終了・CSS Flexible Box Layout Moduleの利用拡大 | フロントエンドBlog | ミツエーリンクス
「Can I use...」にCSSのtext-orientationプロパティが掲載されるようになりました | フロントエンドBlog | ミツエーリンクス
CSS Template Layout Moduleの面影を追う | フロントエンドBlog | ミツエーリンクス
Google Chrome 61で追加されたscroll-behaviorを考える | フロントエンドBlog | ミツエーリンクス
scroll-behavior - CSS | MDN
3ステップでCSS設計のプロセスを振り返る | フロントエンドBlog | ミツエーリンクス
CSS Paint APIの使いどころ | フロントエンドBlog | ミツエーリンクス
clip-pathを使ってWebページの表現方法を増やそう! | フロントエンドBlog | ミツエーリンクス
CSSが効かない!?fieldset要素でも簡単にテーブルレイアウトを実現できるdisplay: contents; | フロントエンドBlog | ミツエーリンクス
記述次第でAutoprefixerいらず?!CSS Grid LayoutのIE11対応方法と未サポートブラウザのフォールバック例 | フロントエンドBlog | ミツエーリンクス
CSS Painting APIが勧告候補になりました。 | フロントエンドBlog | ミツエーリンクス
サイトにCSSだけで魔法陣を散りばめて新しい表現を模索してみる(前編) | フロントエンドBlog | ミツエーリンクス
第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話 | フロントエンドBlog | ミツエーリンクス
第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話の余談 | フロントエンドBlog | ミツエーリンクス
CSS Working Group の Editor's Drafts に見るCSSの未来 | フロントエンドBlog | ミツエーリンクス
CSSとJavaScriptで円の中に文字を収める | フロントエンドBlog | ミツエーリンクス
JavaScriptで操作するCSS TransitionとCSSOMの関係 | フロントエンドBlog | ミツエーリンクス
VS CodeとMJMLでレスポンシブなHTMLメールを作成する | フロントエンドBlog | ミツエーリンクス
HTMLメールにカウントダウンを組み込む | フロントエンドBlog | ミツエーリンクス

HTML5Experts.jp

モバイルWebのUIを速くする基本テクニックがわかる──Google I/O 2016 High Performance Web UI | HTML5Experts.jp
「Web Componentsが来る!CSS設計はどうなる?」―CSSのエキスパートに聞いてみた! | HTML5Experts.jp
これからのCSSはmargin禁止!?CSSグリッドレイアウトやコンポーネント指向なCSSについて、矢倉さんに聞いてきた! | HTML5Experts.jp
CSSでバーティカルリズムを実現しよう!line-height-stepを使ってみる | HTML5Experts.jp

本の虫

本の虫: ベンダープレフィクスはクソミソのゲロゲロ
本の虫: ブラウザは須く一部のCSS3 rubyを実装すべし
本の虫: CSS3のプロパティ、text-combine

技術評論社

第586回 waifu2xで画像をきれいに拡大する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
BootstrapでレスポンシブなWebサイト制作:連載|gihyo.jp … 技術評論社

Publickey

W3CとIDPFが正式統合。Web技術と出版技術を融合する将来に向け、ロードマップ作成に着手 - Publickey
Webで縦書きなどを実現する「CSS Writing Modes Level 3」、ついにW3Cの「勧告」に - Publickey
Angular 9正式版リリース。高速かつ軽量なレンダリングエンジン「Ivy」がデフォルトに - Publickey

ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks
Layout、Paintingとは何か?レンダリングから学ぶWebサイトのパフォーマンス | Dress Cording
[フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET
Webエンジニアが知っておくべきブラウザレンダリングの仕組み | 学生エンジニアのプログラミング
2017-09-26のJS: Chrome 62 Beta、Safari 11.0、モダンブラウザのレンダリングパイプライン - JSer.info
A Short Walkthrough of WebRender 2 — Hacking With Caffeine
A Quick Overview of Chrome's Rendering Path — Hacking With Caffeine
Mus and Compositing
Notes from FOSDEM 2017 · Anjana Sofia Vakil
LayoutNG - Google ドキュメント
Building a faster browser: Behind the scenes improvements in Microsoft Edge | Microsoft Edge Web Summit 2017 | Channel 9
LibDOM | DOM Library
Cacheability of render critical resources - Analysis - Discuss - HTTP Archive
How JavaScript works: the rendering engine and tips to optimize its performance

HTML

DTD

Document Type Definition - Wikipedia
Document type definition - Wikipedia
SGML実体 - Wikipedia
SGML entity - Wikipedia
HTMLのDTDを読んでみよう
SGML,XML,HTML
HTMLの基本構造 - 仕様書に見るHTML(1)
HTML 4 Document Type Definition
DTDを読む
DTDの読み方
IBM Knowledge Center - DTD を読む
ごくごく簡単なDTDの説明
Designing document type definition (DTD) in SGML/XML
5分でわかる!XML超入門 第01回 何はともあれXMLって何? | サイバーテック

RFC 2854

RFC 2854 - The 'text/html' Media Type
RFC 2854

HTML 2.x

HTML 2.x ‐ 通信用語の基礎知識
https://tools.ietf.org/rfc/rfc2070.txt
rfc2070J.html
jbpe.tripod.com/rfcj/rfc2070.j.sjis.txt
RFC 2070
HTML 2.x
jbpe.tripod.com/rfcj/rfc2070.je.sjis.txt

HTML 2.0

クライアントサイドイメージマップ

https://tools.ietf.org/rfc/rfc1980.txt
[RFC1980] HTML 拡張提案: クライアントサイドイメージマップ
RFC 1980

HTML Tables

https://tools.ietf.org/rfc/rfc1942.txt
RFC 1942

Form-based File Upload

https://tools.ietf.org/rfc/rfc1867.txt
jbpe.tripod.com/rfcj/rfc1867.je.sjis.txt
RFC 1867

HTML 2.0 ‐ 通信用語の基礎知識
https://tools.ietf.org/rfc/rfc1866.txt
Hypertext Markup Language - 2.0−目次
RFC 1866 - The 'text/html' Media Type
RFC 1866
www.age.ne.jp/x/sf/HT/HTML/RFC1866J-1_0.TXT

HTML のクワイン

ドッグさんはTwitterを使っています 「HTML のクワインだと… | 'This page is a truly naked, brutalist html quine.' https://t.co/a45MiEWwGm」 / Twitter
This page is a truly naked, brutalist html quine.
ドッグさんはTwitterを使っています 「もちろん JavaScript は使ってない.なるほど,CSS の content を&lt;del&gt;悪用&lt;/del&gt;利用するのか.思いつかなかったなぁ」 / Twitter

HyperText Markup Language - Wikipedia
HTML - Wikipedia
文字参照 - Wikipedia
GoogleがHTML5構文解析ライブラリGumboをオープンソース化
google/gumbo-parser
kovidgoyal/html5-parser: Fast C based HTML 5 parsing for python
www.asahi-net.or.jp/~jy3K-sm/i_net/books-good.txt
のけぞる本・一般編 - 文法の部
特殊記号のキャラクタ エンティティとBIDIテキスト
HyperText Markup Language - Wikipedia
あやしい本
Another HTML-lint 5
zserge/webview: Tiny cross-platform webview library for C/C++/Golang
HTMLの過去・現在・未来 -- ごく簡単なHTMLの説明
新しいHTMLタグportal、Portals機能で変わるWebの遷移体験! CDS2019で紹介されたヤフーの実装例 #UIUX - Yahoo! JAPAN Tech Blog
BlinkとWebKitの違い(大雑把) - saneyuki_s log
低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|若手Webエンジニアのキャリアを考える!
電子情報学特論:Chromiumのアーキテクチャを解き明かす - Google スライド
本の虫: 続pre要素の改行
普通のHTMLの書き方
HTMLの歴史
Semantic HTML - Google 検索
まずはここから!HTMLの書き方【初心者向け】 | TechAcademyマガジン

CSS

その他

CSS | MDN
CSSの基本-HTMLクイックリファレンス
クリック・タッチを無効化するCSS「pointer-events: none;」がお手軽で便利 - Yahoo! JAPAN Tech Blog
その CSS の word-break: break-all は必要ですか - yanok.net
文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA
-ms-high-contrast を CSS ハックに使ってはいけない、ただひとつの理由 / JeffreyFrancesco.org
5年ぶりのメジャーアップデートとなる「Bootstrap 4」リリース | OSDN Magazine
CSSで縦書きのサイトを表彰、「たてよこWebアワード 2017」の受賞作発表 - INTERNET Watch
CSS3 で縦書き+四分空け組 - にせねこメモ
私のゴールは世界中の言語でCSSを使えるようにすること EPUB3で縦書きを実現した、fantasai(エリカ・エテマッド)に聞く
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。(2)
CSS フレームワークを使いたくない - ジンジャー研究室
DITA_Festa_2017_DSSSLprint.pdf
君は真に理解しているか?z-indexとスタッキングコンテキストの関係 - ICS MEDIA
IonicがShadow Partsでカスタマイズを改善
CSS Layout API で Masonry Layout | blog.jxck.io

Acid1

Acid1 - Wikipedia
display/box/float/clear test
CSS1 Test Suite: 5.5.26 clear
sec5526c.gif (531×501)
Shiki’s Weblog: ESウェブブラウザ通信 - Acid1テスト
CSS1 Test Suite
CSS1 テストスイート

Twitter

渋川よしきさんのツイート: "CSS難しいなぁっていつも思うんだけど、例えば、特定の要素を右寄せにするときに、その親側にも手を加える必要がある、というのに気づくのに時間がかかったり、やりたいことの実現のための影響範囲とかのイメージが直感的につかないのが原因だろうな、というのは想像がついている。"
shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
ドッグさんのツイート: "Mozilla が Firefox の CSS プロパティ適用部分を Rust で書き直して分かったことの要約.実際のセキュリティバグなどの実例付きで分かりやすい | 'Implications of Rewriting a Browser Component in Rust' https://t.co/lstcxb5nI2"
Implications of Rewriting a Browser Component in Rust - Mozilla Hacks - the Web developer blog
ドッグさんのツイート: "Rust の静的なメモリ安全性のチェックや整数オーバーフロー,未初期化変数チェック,標準で提供されるより良いデータ構造などで(by design で)セキュリティリスクは減るのは間違いないけど,やはりロジックによるリグレッションバグは入ってしまうという話で,まあそれはそうだろうなぁ"
ドッグさんのツイート: "データ競合とか並列処理周りのバグがどうだったのかは気になるけど,Mozilla は以前 CSS プロパティ適用の C++ コードを並列にしようとして失敗してるので,そこは C++ との比較はできないのかな"
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Inactive CSS、「なぜその指定が反映されないのか」を教えてくれるWeb Inspectorの新機能。これにかかると自分がいかにてきとうに「とりあえず全部書いとけ」でプロパティを書き連ねてるかがバレてしまう……」 / Twitter
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Webのレイアウトの歴史、HTMLべた書きからtableを経てCSS float、その先のflexboxまで来たけど、いずれも「そこに置かれる物」が基準のレイアウト手法だった。CSS gridは「入れ物」基準でレイアウトを決める。なるほど、そう考えると理解しやすくなる気がする。」 / Twitter
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「グリッドレイアウトのためだけにdivにphysicalな名前を付けなくてもよくなるの、福音だ……べつにできることは変わらなくても、自分がああいう汚いコード書かなくてよくなるのは嬉しい」 / Twitter
ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「予期せぬ横スクロールが発生した時は、 * { outline: 2px solid red; } のCSSがオススメ。 どの要素がはみ出ているか、視覚的に分かりやすくなります。 #CSS https://t.co/7tmefEDCvx」 / Twitter
ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「補足として、わざわざCSSに記述して更新しなくても、デベロッパーツールでCSSを追記すればその場で分かります。」 / Twitter

Cascading Style Sheets, level 1
カスケーディングスタイルシート第1水準
Cascading Style Sheets, level 1
CSS1 Table of Contents
全文翻訳 Cascading Style Sheets, level 1
REC-CSS1 邦訳
REC-CSS1 邦訳
Cascading Style Sheets, level 1(jp)
LibCSS | CSS Library
Katana-parser by hackers-painters
hackers-painters/katana-parser: A CSS parsing library in pure C99
Shiki’s Weblog: ESウェブブラウザ通信 - escort バージョン 0.3.1 公開
Shiki’s Weblog: ESウェブブラウザ通信 - CSSの実装のバグを見つけてから直すまでの手順
CSSパーサを作ってみた(簡易版) - jsdo.it - Share JavaScript, HTML5 and CSS
CSS文法の基礎 | CSS入門編
少し高度なCSS文法: 子孫セレクタ | CSS中級編
構文 - CSS | MDN
@charset - CSS | MDN
W3C CSS 検証サービス
CSS Injection (+ Recursive Import) の原理と攻撃手法およびその実装について - Szarny.io
Multiple-column Layout and column-span in Firefox 71 - Mozilla Hacks - the Web developer blog
Microsoft、折りたたみ式・2画面デバイス向けの新しいJavaScript/CSS機能を発表 - 窓の杜

CSS Houdini

CSS Paint API

Houdini Paint API | blog.jxck.io
CSS Paint APIでJavaScriptからCSS用のグラフィックを動的に生成する
どんな背景でも自由に描ける! CSS Paint APIの使い方 - ICS MEDIA

CSS Layout API

なかのん&マジックさんのツイート: "え、DOMでaccsessibleにしちゃうの? / CSS Layout API Level 1 https://t.co/qnN6yFn8IA"
CSS Layout API Level 1

スライド

CSSの嫌なところを解決できる(かも)。そう、CSS Houdiniならね 20170825 we are_javascripters@1…
Webと出版と、CSSの未来の話
Houdini: Abracadabra CSS // Speaker Deck
HoudiniによるCSS錬金術 - Speaker Deck

blog

CSS Houdiniを味見する | Kabuku Developers Blog
CSS Houdini をつかってキミだけの最強レイアウトを組み立てよう! - めろたんのアレ
CSS Houdini / CSS Working Groupミーティングに参加しました
未来のCSSを先取るHoudiniとは?それは魔法である! - Mercari Engineering Blog
Houdini、それはCSSの進化を促すプロジェクト - The future starts today
Houdini – CSS の秘密を解き明かすもの  |  Web  |  Google Developers

GitHub

Home · w3c/css-houdini-drafts Wiki
w3c/css-houdini-drafts: Mirror of https://hg.css-houdini.org/drafts

Twitter

Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について。Worklets/CSS Painting API/CSS Layout API/CSS Typed OM/CSS Properties and Valuesなど。 https://t.co/iAfHIEU9cW"
DasSur.ma – New ways to make your web app jank with Houdini – An introduction

CSS/Houdini - MozillaWiki
CSS-TAG Houdini Editor Drafts
Houdini Spellbook
CSSのHoudiniとは何者か - Qiita

事前レンダリング

事前レンダリングでウェブページの表示時間を高速化 | 海外SEO情報ブログ
事前レンダリングでページ遷移した時の表示速度を爆速にする | TechMemo
ワードプレスに prerender を設定して事前レンダリングで高速化 | q-Az
ウェブサイトで事前レンダリングする方法: 小粋空間
事前レンダリング
Web サイトの事前レンダリング
キャッシュと事前レンダリングの比較
IBM Knowledge Center

高速化

Mozilla

Project Fission

なかのん&マジックさんのツイート: "FirefoxもFissionが入ると「コア数が正義」になるので、今、価格を理由にコア数を諦めるのはおすすめできないですね。デモによるとCNNのトップページのロードでcontent processが14個も作られていた。どんだけ今のWebは汚れているんだ……"
なかのん&マジックさんのツイート: "もちろんドメインごとにcontent processが分けられるという話なので、ニュースサイトを開く度にそれだけのプロセスが生成されるわけではないですよ。"
なかのん&マジックさんのツイート: "あと、それぞれがフル稼働するわけでもないです。例えば広告の<iframe>とか。ただ、メモリはどうしても消費量爆上がりでしょうね。content process一個あたりの基本使用量は割とがんばって半減してるとはいえ。"
なかのん&マジックさんのツイート: "詳しくはこの辺にリストアップされてるbugを参照。 https://t.co/0CHir4KNki"
Project Fission - MozillaWiki

Quantum - MozillaWiki
ドキュメント翻訳 | Mozilla Developer Street (modest)
Mozilla Flux
Servo parallelism
三世代のFirefox ESRを比較する - Mozilla Flux
Gecko:DisplayListBasedInvalidation - MozillaWiki
Windows版Firefox 53でQuantumプロジェクトの成果が初披露 - Mozilla Flux
Mozilla、「Firefox」向け次世代Webエンジン“Quantum”を発表。2017年中にリリース - 窓の杜
「Firefox 53」が安定版に ~Project Quantumの成果を初導入、コンパクトテーマを追加 - 窓の杜
「Firefox 53」がリリース、次世代ブラウザエンジンQuantumの成果を導入 | OSDN Magazine
Firefox 55/56では極端に多くのタブを開いた状態でも高速な起動が可能に | スラド IT
たった15秒で1600以上のタブを起動可能でメモリ使用も劇的に改善、Firefoxの弱点を解消する「Quantum Flow」の効果が明らかに - GIGAZINE
Rockridgeさんのツイート: "Mozillaの研究によれば、Webページを表示する際の体感パフォーマンスを改善するためには、DOMContentLoadedにフォーカスするのがよい。 / “Test Pilot graduation report: Puls…” https://t.co/iMa4ogTWGw"
Rockridgeさんのツイート: "Firefox Nightly 58にRetained Display Listsがデフォルト無効で投入される予定。再計算の対象をディスプレイリスト全体ではなく変更された部分に限定して、描画処理を高速化する。参照:… https://t.co/BdKAvlB2wL"
Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
間もなくリリースの「Firefox 58」はますます高速化--Mozillaのエンジニアが説明 - CNET Japan
Makoto Kato ︎︎さんのツイート: "Quantum Renderまだ入ってないんだけど、何言ってるのかな?。OMTPは別のお話 https://t.co/10Cdj1AwbL"
Rockridgeさんのツイート: "さすがに間違いが多すぎる。OMTPは「画像処理の改善」ではないし、Quantum Renderがリリース版で有効化されたことはない。ブックマーク機能の改善はフォルダの管理機能を追加したことなのに、そこに言及がない。 / “「Fi…” https://t.co/TQnvCbS8av"
Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
「Firefox 58」公開、WebAssemblyやGecko強化によりさらに高速に | OSDN Magazine
Firefox QuantumのOff Main Thread Painting(OMTP)とRetained Display Listsについて - Mozilla Flux
「Firefox」v58.0.2が公開 ~クラッシュ問題などを修正したメンテナンスリリース - 窓の杜
Rockridgeさんのツイート: "Fx59:MacOS版でもOMTPが有効化された。 / “1422392 - Implement the first round of OMTP for tiled painted layers” https://t.co/ZJCfjnpP4Z"
Rockridgeさんのツイート: "Fx59:小さなディスプレイリストの構築処理を最適化。 / “1344971 - Optimize various small display list building tasks” https://t.co/wO7DplGV4b"
Rockridgeさんのツイート: "Fx59:Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みが実装された。 / “1425056 - Implement parallel painting with…” https://t.co/w0R8BkajXS"
Firefox 61でRetained Display Listsが段階的に有効化 - Mozilla Flux
「Firefox 61」正式版リリース、タブウォーミングの導入によりタブ切り替え後の応答速度が高速化 - GIGAZINE

Google

Google Developers Japan: Chrome のレンダリング パイプラインにおけるパフォーマンス向上について
Google、「Google Chrome」のレンダリングを改善 ~その手法をブログで解説 - 窓の杜

Apple

Overview of WebKit’s CSS JIT Compiler | WebKit
Gave a Talk About CSS JIT - Constellation Scorpius
CSS JIT: Just-in-Time Compiled CSS Selectors in WebKit // Speaker Deck
WebKit CSS JIT Internals - Constellation Scorpius
CSS JIT: Optimizing CSS Selector Matching with Just-in-Time Compilation // Speaker Deck
melancholic afternoon

x86/x64最適化勉強会7 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
この1年、Webのパフォーマンスで変わったことは?──HTML5 Conference 2016 | HTML5Experts.jp
MIT研究者ら、Webページ読み込み時間を34%削減するアルゴリズム発表 | マイナビニュース
CSSセレクターマッチングのコスト - Unreviewed
ブラウザエンジン先端観測会 アウトラインメモ | Web Scratch
眼力 玉壱號さんのツイート: "@anatoo #lisp で言う所の intern かな。同一の文字列は実体を1個に縮約すると… #browser_gazer"

パフォーマンスの最適化 | Web Fundamentals - Google Developers

クリティカル レンダリング パス

クリティカル レンダリング パス | Web Fundamentals - Google Developers
オブジェクト モデルの構築  |  Web  |  Google Developers
レンダリング ツリーの構築、レイアウト、ペイント  |  Web  |  Google Developers
レンダリング ブロック CSS  |  Web  |  Google Developers
JavaScript を使用してインタラクティブにする  |  Web  |  Google Developers
クリティカル レンダリング パスの測定  |  Web  |  Google Developers
クリティカル レンダリング パスのパフォーマンスを分析する  |  Web  |  Google Developers
クリティカル レンダリング パスの最適化  |  Web  |  Google Developers
PageSpeed ルールおよび推奨事項  |  Web  |  Google Developers

レンダリング パフォーマンス

レンダリング パフォーマンス  |  Web  |  Google Developers
JavaScript 実行の最適化  |  Web  |  Google Developers
スタイル計算のスコープと複雑さの軽減  |  Web  |  Google Developers
大きく複雑なレイアウトとレイアウト スラッシングの回避  |  Web  |  Google Developers
ペイントの複雑さの簡略化とペイントエリアの縮小  |  Web  |  Google Developers
コンポジタ専用プロパティの優先使用、およびレイヤー数の管理  |  Web  |  Google Developers
入力ハンドラのデバウンス  |  Web  |  Google Developers

2D

Web

AVIF

AV1 Still Image File Format (AVIF)
AOMediaCodec/av1-avif: AV1 Still Image File Format Specification - proposed ISO-BMFF/HEIF derivative
fg118942さんのツイート: "あとAVIFを試していて気づいたこと libaomは画像が大きいとメモリの消費量が4、5GBくらいいくこともあるので辛い rav1eはlibaomよりメモリの消費量が少なくて、多いときでも150MBくらいしかいかないが画質はlibaomより少しだけ落ちてBPGと同程度"
fg118942さんのツイート: "libaomは縦横が2の倍数ならどんな画像も変換できるっぽいけどrav1eは正常にデコード出来ないファイルを出力することがある(一般的ではない解像度に対応してない?) あとはやっぱり変換速度が遅くて画像1枚に1分くらいかかったりするのでハードウェアとかで高速に変換できないと厳しい"
Addy OsmaniさんはTwitterを使っています 「AVIF is an image format that compresses to a smaller size than WebP or JPEG https://t.co/MDDdL8tw8S It's in Chrome 85, behind a flag in Firefox &amp; can be a progressive enhancement! https://t.co/jqADQK6jTd」 / Twitter
How to Use AVIF: The New Next-Gen Image Compression Format — Lightspeed

JPEG

ISO

Exif

Exchangeable image file format - Wikipedia
Exif - Wikipedia
JEITA / AV電子機器部門
CIPA、「Exif 2.3」「DCF 2.0」を公開 - デジカメ Watch Watch
ディジタルスチルカメラ用
DC-010-2017_E.pdf
The libexif C EXIF library
libexif-0.6.21
ブラウザーと画像のEXIFのお話 - Pastalablog in はてな
Google Developers Japan: ExifInterface Support Library が登場
EXIF仕様 解説
DSAS開発者の部屋:Exif データにアクセスするコードを自作してみる
けんしのページ - Exifファイルフォーマット -
Exif 2.3 タグ - Vieas Web
EXIFの読み方 - cagylogic
Exifについて
Exifの回転情報をピクセル情報に反映する - Qiita
<img>で貼った画像がブラウザによって90度回転して表示される? - Qiita
目次
マルチピクチャフォーマット
Microsoft Word - DC-006_J_T1.doc
第553回 Ubuntuで写真のメタデータを扱う方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
画像認識システムの落とし穴となる「ExifのOrientation属性」とは? - GIGAZINE

libjpeg

libjpeg - Wikipedia
libjpeg - Wikipedia, the free encyclopedia
Independent JPEG Group
libjpeg-8d
libjpeg-turbo | Main / libjpeg-turbo
libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
libjpeg-turbo download | SourceForge.net
libjpeg-turbo-1.4.2
NASM-2.12.01

Guetzli

Google、より高画質で小サイズを実現するJPEGエンコーダをオープンソースで公開 - PC Watch
google/guetzli: Perceptual JPEG encoder
JPEGを「libjpeg」よりも20~30%小さく ~Google、新エンコーダー「Guetzli」を発表 - 窓の杜
Google、JPEGを35%縮小する新エンコーダ「Guetzli」発表。画質は同じでファイルサイズ削減 - Engadget 日本版
JPEG エンコーダ Guetzli 使用上の注意 (前編) - Qiita
Google、ファイルサイズを35%削減できるという新JPEGエンコーダー「Guetzli」を公開 | OSDN Magazine
GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINE

Lepton

DropboxがJPEG画像をロスレス圧縮できるツールを公開、平均22%サイズを縮小できると主張 | スラド オープンソース
米Dropbox、JPEGファイルをロスレス圧縮できる画像圧縮アルゴリズム「Lepton」をオープンソースで公開 | OSDN Magazine
dropbox/lepton: Lepton is a tool and file format for losslessly compressing JPEGs by an average of 22%.

Twitter

渋川よしきさんのツイート: "libjpeg-turbo氏〜 実際ベンチマーク取ってみると、画像の読み込みはPNGよりもJPEGの方が圧倒的に早いんだよな。 https://t.co/SgEIKuevyu"
渋川よしきさんのツイート: "不可逆ではあるけど、品質100にしたJPEGのほうが、PNGとかよりも読み込み早くてサイズ小さい。"
渋川よしきさんのツイート: "libjpeg-turboのハフマン符号量子化部分だけ取り出せば、SSE最適化された復元コードが利用できるのでは。"
Kazuho Okuさんのツイート: "JPEGファイルを可逆圧縮!モデルをうまく作るようにすればこんなに縮むのか / “Lepton image compression: saving 22% losslessly from images at 15MB/s | D…” https://t.co/OtNsJNUpSE"
Lepton image compression: saving 22% losslessly from images at 15MB/s | Dropbox Tech Blog
Kazuho Okuさんのツイート: ".@methane はい。leptonは可逆な画像圧縮アルゴリズムで、JPEGデータに適用した場合、22%ほど小さくなる、と書いてありますね"
Kazuho Okuさんのツイート: "JPEGのDCT以降みて、計算コストかけていいならもっと高度な圧縮できそうだなって思った人は多いと思う(僕もその一人)けど、22%も縮むと予測してた人は少なそうだと思ってる"
七誌さんのツイート: "球面から切り出した平面に球面調和関数を適用すると離散コサイン変換になるんじゃないかと思ったら、そのものズバリの講義資料があった!良い。 【PDF】 https://t.co/OQFCxePwhE"
Rockridgeさんのツイート: "Fx50:PNG/JPEG画像のデコーダもStreamingLexerベースのものに切り替えられた。参照:https://t.co/3TYhswQ4q1 / “1282566 – Use StreamingLexer in th…” https://t.co/s32hrO6lJF"
七誌さんのツイート: "メタデータだけいじって回転させたJPEG画像は、HTMLにimg srcで埋め込まれていてもブラウザが回転して表示してくれないっぽい。画像単独だと回転して表示される。"
dynamis (でゅなみす@もじら)さんのツイート: "JPEGのデコードをまるっとGPU側に投げることでGPU I/Oを70%削減、CPUデコード処理時間を30%削減させた新しいJPEGデコーダ実装 https://t.co/F7zbShPN1O とそのLinux Confでの講演 https://t.co/b4ZePbvqRS"
Fadisさんのツイート: "Chromeさん、 V4L2から使えるハードウェアjpegデコーダがある場合はWebページに表示するjpeg画像をハードウェアでデコードするのか…"
Fadisさんのツイート: "で、今回の変更でjpegのエンコードもハードウェアで出来るようになりました、と https://t.co/axF3BdLNUU"
Chrome Working On JPEG Encode Accelerator With VA-API/V4L2 Support - Phoronix

JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ | コラム | マイナビニュース
JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ (11) JPEG新規格の策定、企業の参加は? | マイナビニュース
【連載】JPEGはなぜここまで普及したのか? ~専門家に聞いてきた~ | マイナビニュース
高速なJPEG圧縮ライブラリ「Libjpeg-Turbo 1.5」リリース | OSDN Magazine
mozilla/mozjpeg: Improved JPEG encoder.
週刊 JPEGデコーダをつくる #2 デジタル画像の基礎 - Qiita
画像圧縮でSEO「容量7割減で画質そのまま」 ページスピード向上を実現する「SmartJPEG」とは? - INTERNET Watch
OPTPiX Cloud SmartJPEG (スマートジェイペグ) | ウェブテクノロジ
GuetzliとMozjpegは、どっちが高性能か。 - Qiita
プログレッシブJPEGとHTTP Rangeリクエストで遅延ロードを改善する
JPEG画像の「中身」は一体どうなっているのか? - GIGAZINE

PNG

APNG

Animated Portable Network Graphics - Wikipedia
APNG - Wikipedia
「アニメーションPNG(APNG)」がGoogle ChromeのベースであるChromiumでサポート開始 - GIGAZINE
ChromiumでAPNG(アニメーションPNG)の表示をサポート -INTERNET Watch
「Google Chrome 59」が正式版に 〜ヘッドレスモード、APNG、フルページ撮影に対応 - 窓の杜
Twitterが動画ファイル形式「APNG」のサポートを停止、てんかん患者の発作を引き起こすため - GIGAZINE

libpng - Wikipedia
libpng - Wikipedia, the free encyclopedia
libpng Home Page
libpng-1.6.21
Rockridgeさんのツイート: "Fx51:搭載しているlibpngのSSE2命令最適化を有効にし、PNG画像の処理を高速化した。 / “1276127 – Enable SSE optimization in the in-tree libpng” https://t.co/VuueMHhifr"
OS作れないマンさんのツイート: "Windows 10 のフォトっていう機能がデフォルトの画像ビューアになってるわけだけど、背景色が黒な所為でモノクロで透過背景のPNGが全く見えなくなる。使い悪すぎでは?"
OS作れないマンさんのツイート: "透過PNGははてなブログでも使い勝手が悪い(画像アップロード後の画像一覧のサムネイル画面で背景が黒くなってしまう)ので、白背景に戻そう。なんか負けた気分。"
Rockridgeさんのツイート: "Fx55:PNG形式のファイルについて幅チェックを行い、膨大なメモリを確保しようとする問題が起きないようにした。限度に抵触する画像は表示されないようだ。 / “1368407 - Small PNG image hangs br…” https://t.co/IbfU8aSSY2"

GIF

Graphics Interchange Format - Wikipedia
GIF - Wikipedia, the free encyclopedia
GIFアニメーション - Wikipedia
giflibのインストール: マルチメディアファイルフォーマット
Introduction to GIFLIB
The GIFLIB project
GIFLIB download | SourceForge.net
giflib-5.1.4
Rockridgeさんのツイート: "Fx50:GIF画像のデコーダがStreamingLexerベースのものにリファクタリングされた。 / “1204392 – Use StreamingLexer in the GIF decoder” https://t.co/Yy1OD9jBZK"
Rockridgeさんのツイート: "Fx51:Windows版でアニメーションGIFを対象にコンテキストメニューから「画像をコピー」すると、アニメーション状態を保ったままクリップボードにコピーできるようになった。 / “664717 – "copy image" …” https://t.co/m875T7b64u"

WebP

Twitter

Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: WebP image support https://t.co/0xnMDKiirW"
なかのん&マジックさんのツイート: "web-compatでの実装とのことだけど、実際問題、Jpegに比べてなにかうまみはあるんだろうか……"
Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示をサポート。デフォルト無効。 / “1294490 – (WebP) Implement experimental WebP image support” https://t.co/RDRQkbp0J0"
Makoto Kato ︎︎さんのツイート: "WebPをサポートしないとWebCompat的な問題が発生してるのは、https://t.co/3E3OedCr68 の See Alsoのところに貼られているhttps://t.co/Kw9PJXX0TT の issueリンク集を見ればわかる。H264と一緒でどうにもならないことは多々ある"
1294490 - (WebP) Implement WebP image support
なかのん&マジックさんのツイート: "「Chromeで動けば良いんでしょ?」の実例だ。ってか、Safariすら捨ててるのか? / "WebP 画像しか配信せず正しく表示されないサイトの数が増え続けていることから、Firefox の開発者は態度を変えざるを得ませんでした" https://t.co/yZNj0whV3s"
WebP 画像対応が追加されました | Firefox サイト互換性情報
なかのん&マジックさんのツイート: "WebPのサポート表明のメール投稿に対しては、やっぱり、早々に「セキュリティ大丈夫なん?」ってリプライ付いてたなー。"
エヌユルさんのツイート: "WebPは実際可逆方式においてPNGよりは効率が良いので普及するのは喜ばしいことだとは思う / “webp-image-support-has-been-added” https://t.co/0i5VERUgyz"
なかのん&マジックさんのツイート: "昨今のWebアプリ事情を考えると個人的には好ましいと思う。でも、それはメンテしていないから言えることかもしれない(実際、よく知らない)。"
Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示がデフォルト有効化。 / “1503653 - Enable WebP image support by default” https://t.co/CpAxnK1muw"
FadisさんはTwitterを使っています 「Googleが同社の公開gitリポジトリにlibwebp2なるライブラリを上げているという話。置かれた説明によると、WebP2はWebPの後継となる新しい画像フォーマットで、よりロスの少ない圧縮と、HDR10のサポート、アニメーションのサポート等が実験中の新機能として挙げられている https://t.co/Z2N9brff1U」 / Twitter
Google Is Already Experimenting With WebP2 As Successor To WebP Image Format - Phoronix
Masaki HaraさんはTwitterを使っています 「WebPには既にアニメーション機能ありますが……」 / Twitter
Masaki HaraさんはTwitterを使っています 「原文見るとproperly supportとあるから、2ではもっとちゃんとサポートするぞということなのか」 / Twitter

WebP - Wikipedia
WebP - Wikipedia
本の虫: Dark_Shikari、WebPについて語る
はじめてのにき(2017-06-19)
WebP – Webを速くするためにGoogleがやっていること Make the Web Faster 01 – | HTML5Experts.jp
Googleが画像フォーマット「WebP」向けライブラリ「libwebp 1.0.0」をリリース | OSDN Magazine
A new image format for the Web  |  WebP  |  Google Developers
webmproject/libwebp: Mirror only. Please do not send pull requests.
「Windows 10 RS5」で“WebP”がサポート、「Microsoft Edge」などで表示可能に - 窓の杜
WindowsでWebP画像を作る - まだ中学生のブログ
WindowsでアニメーションWebPを作成する - まだ中学生のブログ
ffmpeg で アニメーションWebP(Animated WebP)を作る | ニコラボ
WebP Lossless はちゃんと Lossless してます - Qiita

SVG

Twitter

Rockridgeさんのツイート: "Fx49:display:noneが設定された要素でSVGアニメーションの処理が行われ、CPUリソースを消費する問題が解消された。Kickstarter閲覧時のパフォーマンスなどに影響するという。 / “1209405 – Hi…” https://t.co/hpISOE5lZx"
Rockridgeさんのツイート: "Fx54:SVGのimage要素内の画像につきデコード処理の同期化を避けることで、Googleスライドのパフォーマンスが改善された。 / “1341881 - Slow synchronous image decoding in…” https://t.co/zE5hAEBzPD"
Rockridgeさんのツイート: "Fx55:SVG要素のtransform-boxプロパティがデフォルト有効化された。 / “1208550 - Ship support for the 'transform-box' property” https://t.co/ONto407jkh"
Rockridgeさんのツイート: "Fx55:ツールバーアイコンのSVG形式への移行が完了。アドオンの互換性に少なからず影響が出そうだ。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/zPb1TJm06B"
Rockridgeさんのツイート: "Firefoxのツールバーアイコンは全面的にPNG形式からSVG形式に移行する見込み。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/IBqRTIplCn"
渋川よしきさんのツイート: "Angularで特定の画像だけSVG Iconでうまく表示されないな、と思っていろいろ画像ファイルを見ていたのだけど、def/useを使っている画像ファイルはダメだということがわかったので、泣きながら手でpathを展開している。"
渋川よしきさんのツイート: "今ウェブのコードを書いているのだけど、SVG画像がファイルによってサイズが違っていて、<g transform>で変換をかけていたのだけど、行列による座標変換とか行列の掛け算とか、勉強しててよかったなって思いました。"
ドッグさんはTwitterを使っています 「SVG を一旦 SVG のサブセット MicroSVG に変換してから描画することで,描画バックエンドが実装しやすいようになってるのか | 'RazrFalcon/resvg: An SVG rendering library.' https://t.co/e4aB7Zxsxx」 / Twitter
RazrFalcon/resvg: An SVG rendering library.

memononen/nanosvg
Scalable Vector Graphics - Wikipedia
Scalable Vector Graphics - Wikipedia, the free encyclopedia
ブラウザに圧縮SVG (.svgz) を表示する | Inkscape@JP
SVG 1.1 仕様 (第2版) 日本語訳
Filter Effects Module Level 1(日本語訳)
Changes from SVG 1.1 — SVG 2 (日本語訳)
ECMAScript 言語束縛 – SVG 1.1 (第2版)
user-scalable=noとかSVGのアクセシビリティーとか - 水底の血
本の虫: XNGという新しいアニメーション画像フォーマット
svg要素の基本的な使い方まとめ
神奈川工科大学 情報メディア学科のSVG教材に無限にツッコミが入れられそうな件 - 水底の血
SVGを使用して鮮明なロゴへ変身 | フロントエンドBlog | ミツエーリンクス
アクセシビリティーサポート — SVG 2(日本語訳)
Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース | HTML5Experts.jp
本の虫: SVGの起源
2015年のSVGについてと、来年2016年のSVGについて - 週刊SVG
SVGをcss/jsで操作するときに知っておきたいこと - Qiita
Inkscape でレイヤーを読み込める SVG をイラレから書き出す - にせねこメモ
SVGでフレームアニメーション? - にせねこメモ
SVGでフレームアニメーション w/ Javascript - にせねこメモ
SVG ファイルを GUI ツールで最適化する - EagleLand
W3C Strategic Highlights: Strengthening the Core of the Web (SVG) | W3C Blog
svg要素の基本的な使い方まとめ
SVG に JavaScript を埋め込む方法 - Qiita
Inkscapeを使ってSVGからOGPイメージを半自動生成する | κeenのHappy Hacκing Blog
Inkscapeで生成するOGP画像の禁則処理をちょっとだけ頑張る | κeenのHappy Hacκing Blog

Canvas

canvas要素 - Wikipedia
Canvas element - Wikipedia, the free encyclopedia
NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
NanoVG を CPU で描画する - Qiita
NanoVG のソースコードを読んでみた - lriki’s blog
memononen/nanovg
HTML5 CanvasとWebGLの高解像度対応はどこまで行うべきか - ICS MEDIA
canvas要素の基本的な使い方まとめ
Fadisさんのツイート: "Chrome66がリリースされた。Chrome66で追加されるtransferFromImageBitmapはcanvasの内容を指定したImageBitmapで置き換える。この時画像はcopyではなくmoveされ、不必要なコピーが回避される。他にもClipboardの非同期読み書きのサポート等が追加される https://t.co/l141gC5QDB"

Favicon

アイコン

hiyohiyoさんはTwitterを使っています: 「通知領域用のアイコンを HiDPI 対応に変更したのですが、48x48 フルカラーアイコンが優先的に選択されるようで、16x16 とか 32x32 のアイコンが選択されず、48x48 を縮小表示されることが判明・・・。 DPI 設定に応じて適切なサイズのアイコンが選定されるというのは思い込みでした。」 / Twitter
hiyohiyoさんはTwitterを使っています: 「となると、1種類の画像しか入っていないアイコンを作ってソフト側から DPI 設定に応じて設定するのが最適なんだなぁ。 昨日の作業は、ほとんど無意味!! 事前確認重要!」 / Twitter
hiyohiyoさんはTwitterを使っています: 「LoadImageを使えば複数のサイズが入った .ico から指定サイズのアイコンハンドルを取得できることがわかりました。 LoadImageW(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_TEMP_00), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 上の16の部分を32とか、48にすればOK」 / Twitter
hiyohiyoさんはTwitterを使っています: 「ただ、動的なDPI変更やDPI設定の異なるディスプレイが複数接続された環境ではどうすることもできない・・・。 現実的には、48x48の高解像度アイコンをOS側で縮小表示してもらうのが良さそう。縮小アルゴリズムがもうちょっといい感じだったらなぁ・・・。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降のアイコン(複数サイズ同梱)は、256pxだけはpng格納、というハイブリッド形式を必要とするのだが、今だにVisualStudioで作成・編集できない様子。(表示のみ可能)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2019年にもなって、バージョン定義とリソース分離に手間取ったり。 (1ヵ所のバージョン定義で、ソースコード用バージョンとexeリソース情報の両方に反映する形)"

Favicon - Wikipedia
Favicon - Wikipedia
ICO (ファイルフォーマット) - Wikipedia
ICO (file format) - Wikipedia
Rockridgeさんのツイート: "Fx55:ファビコンがfavicons.sqliteという独立したデータベースに保存されるようになった。履歴・ブックマーク絡みのファイルI/Oについて、パフォーマンスが改善されるようだ。 / “977177 - move fav…” https://t.co/ExBWeX7Kmv"
Rockridgeさんのツイート: "Fx56:Firefox 43以降512x512のサイズのファビコンが表示されなくなっていた後退バグを修正し、さらに768x768のような大きなファビコンもサポート。参照:https://t.co/5hbDBYV5s2 / “1…” https://t.co/3CnrOkx9K8"
Rockridgeさんのツイート: "Fx60:一部のWebサイトで高DPIファビコンを取得できない問題を修正。 / “1449523 - ContentLinkHandler only picks perfectly sized icons” https://t.co/lor9oON67U"
Rockridgeさんのツイート: "Fx60:ファビコンデータベースのVACUUM処理を漸進的に行うようにした。 / “1346554 - Use PRAGMA incremental_vacuum on favicons.sqlite” https://t.co/m8eAD78dDI"
【レビュー】“Microsoft Azure”などで利用されているシンボルやアイコンを集めたイメージセット - 窓の杜
Oracle、クラウドのシステム環境図作成などに役立つアイコン素材を無償提供 - 窓の杜
Rockridgeさんのツイート: "Fx63:ファビコンをchromeプロセスではなくcontentプロセスに読み込むことで、読み込みが二重になるのを防ぐことができるという。参照:https://t.co/uLapuzu4MH / “Favicons are no…” https://t.co/UVl4JwfpTI"
Rockridgeさんのツイート: "Fx63:ファビコンの最大サイズを256pxから192pxに変更した。データベースの容量が圧縮される。 / “1475500 - Reduce maximum favicon size from 256 to 192px” https://t.co/WwBF3gperx"
Rockridgeさんのツイート: "Fx62:履歴消去後もファビコン情報が残ってしまう後退バグを修正。 / “1468968 - Firefox retains favicons with their respective urls after supposedl…” https://t.co/spJPfL8cMc"
ブラウザのタブにある「Favicon(ファビコン)」にウェブカメラの映像を映す - GIGAZINE
SVGやアイコンフォントが揃ってる!太っ腹なライセンスで無料利用できる高品質なアイコン素材 -Themify Icons | コリス
全2,000+種類のアイコン素材、AI, PSD, Sketch, SVGが揃い、商用利用も無料の太っ腹! -Thousands Icons | コリス
IcoMoonを使ってSVGからアイコンフォントを作る方法 | mediba Creator × Engineer Blog
2852 free SVG and PNG icons for your games or apps | Game-icons.net

画像最適化戦略 PNG/JPEG 編 | blog.jxck.io
画像最適化戦略 Picture 編 | blog.jxck.io
画像最適化戦略 WebP 編 | blog.jxck.io
アニメーション画像の歴史 APNG-WebP戦争 | 味わい尽くせ!
画像最適化戦略 Lazy Loading 編 | blog.jxck.io

BMP

Windows bitmap - Wikipedia
BMP file format - Wikipedia
なかのん&マジックさんのツイート: "Win + Shift + SをHiDPI環境で使って、メールとかに貼り付けるとでかい画像が貼り付いてしまうの、ちょっと考え物だけど、誰がどうすべき問題なのか全く想像つかん。"
vyv03354さんのツイート: "すべてのアプリがBMPヘッダーのbiXPelsPerMeterとbiYPelsPerMeterをちゃんと見ていればよかった(完全に手遅れ)… "
なかのん&マジックさんのツイート: "あー、そんな情報あるんですね。クリップボードからの貼り付けでGeckoに来てるか調べてみないとですね。… "

Motion JPEG

Motion JPEG - Wikipedia
Motion JPEG - Wikipedia

JPEG 2000

ISO

OpenJPEG

OpenJPEG
uclouvain/openjpeg: Official repository of the OpenJPEG project
OpenJPEG - Wikipedia

JPEG 2000 - Wikipedia
JPEG 2000 - Wikipedia

JPEG XR

JPEG XR - Wikipedia
JPEG XR - Wikipedia

JPEG XS

JPEG XSコーデックメモ - Qiita

BPG

Better Portable Graphics - Wikipedia
Better Portable Graphics - Wikipedia
BPG Image format | Hacker News

HEIF

High Efficiency Image File Format - Wikipedia
HEIF Technical Information - High Efficiency Image File Format
HEIF Comparison - High Efficiency Image File Format
HEIF - High Efficiency Image File Format
Appleが新OSで初めてサポートするHEIF、FLAC、Opusなど | スラド アップル
【解説】iPhoneのAV機能は「iOS 11」でこう変わる (1/3) - PHILE WEB
“RS4”の最新プレビュー、画像形式“HEIF”をサポート ~Build 17123が公開 - 窓の杜
Masaru Iritaniさんのツイート: "#WindowsInsiders に向けフォト アプリに HEIF 形式対応が追加されました。寡聞にして知らず「へいふ」と読んでしまったのですが、どうやら「ひーふ」と読むようで、iOS や macOS で使われる画像形式のようですね。Skip Ahead ビルド 17623 も HEIF 形式に対応しています。 https://t.co/QyhupCbXU9… https://t.co/WOt0AyOW9F"
Windows 10が「HEIF」フォーマットの画像表示に対応 - PC Watch

DNG

Digital Negative - Wikipedia
Digital Negative - Wikipedia

RAW

RAW現像に対応するオープンソースの写真管理ツール「Darktable 2.6」リリース | OSDN Magazine
「digiKam 6.0」リリース、動画ファイルのサポートを強化 | OSDN Magazine
ゼロから作るRAW現像 - まとめページ - Moiz's journal

ImageMagick

渋川よしきさんのツイート: "Goで大量の画像の変換とかサムネイルとか。速度とメモリ厳しくない?"
さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
「さようなら ImageMagick」の考察 - Qiita
malaさんのツイート: "https://t.co/oE46g9nsQO コメントした。Pillowは必要に応じて外部コマンドを呼び出すのでフォーマット制限しないとImageMagickと大差ない。Pillow使ってるscipyも影響あり。GS脆弱性が厄介なのは利用ライブラリ側で脆弱性として認知されていない点 https://t.co/9LGa6WR0tn https://t.co/pmny41NJVR"
Search · check_call OR popen path:src
usaさんのツイート: "ぼくはポジショントークとして「ImageMagickやめた方が楽だよ?」とは言いますけど、お前らが「あ、これ○○でできるじゃん!」って思って作ったものはだいたいできてない、ということは本音として言っておきます。"

blog

画像の価値は上がったのに、技術は10年前から変わっていない ─ ImageFluxで描く画像変換の世界(前編) - pixiv inside
5年後には画像フォーマットなんて誰も気にしなくなる ─ ImageFluxで描く画像変換の世界(後編) - pixiv inside

News

iOS 10ではRAW撮影が可能に | スラド モバイル
最も劣化が少なくファイルサイズを小さくできる画像形式が判明 - GIGAZINE
第474回 UbuntuとdarktableではじめるRAW現像入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
JPEGも型番の時代に突入!?JPEG XTやXRに加え、新規格JPEG XSやJPEG PLENOが標準化に - PC Watch
圧縮効率60%向上を目指す新規格「JPEG-XL」策定にむけ技術公募へ - PC Watch
reg-cli - 二つの画像で異なる部分を抽出 MOONGIFT

POSTD

500バイトの画像:Haikuのベクターアイコン形式 – 前編 | コンピュータサイエンス | POSTD
500バイトの画像:Haikuのベクターアイコン形式 – 後編 | コンピュータサイエンス | POSTD
一から学ぶベジェ曲線 | プログラミング | POSTD

Wikipedia

Digital Negative - Wikipedia
FFTPACK - Wikipedia
ハイダイナミックレンジイメージ - Wikipedia
ハイダイナミックレンジ合成 - Wikipedia
OpenEXR - Wikipedia
フロイド-スタインバーグ・ディザリング - Wikipedia

GitHub

anypixel.js
googlecreativelab/anypixel: A web-friendly way for anyone to build unusual displays
SolidStateGroup/rio: An open source library allowing you to create an internet connected LED wall
LC's Finder
lc-soft/LC-Finder: A simple pciture resource manager, support tag search and thumbnail preview.
RecursiveBF by ufoym
ufoym/RecursiveBF: A lightweight C++ library for recursive bilateral filtering.
VipsWiki
jcupitt/libvips: A fast image processing library with low memory needs.
miloyip/line: 2D Line Drawing Samples in C

Qiita

RGB値の合計が一定の画像変換 - Qiita
グレースケールで消える画像に変換 - Qiita
機械学習のためのOpenCV入門 - Qiita
グレースケール画像のうんちく - Qiita
RGB ビット深度のうんちく (前編) 〜 前提知識 - Qiita
RGB ビット深度のうんちく (中編) 〜 実数型と整数型の変換 - Qiita
Kazuho Okuさんのツイート: "HTML で #ccc と等しいのは #c0c0c0 か、それとも #cccccc か、というのはいい問題なのかも… "
Takuo Kihiraさんのツイート: "RGBビット深度、HTMLの世界だとカラーコード→浮動小数点の処理で気になることが多いですね。#C8F0E3みたいな奴を、0xC8/256とか雑に書いてあるコード、結構ありますよね。"

Twitter

Rockridgeさんのツイート: "Fx57:Firefox ScreenshotsでWebページ全体または表示領域全体を撮影した場合、画像の保存形式はPNGではなくJPEGになる。PNGだとサイトによっては画像サイズが大きくなりすぎるのだという。 / “1402…” https://t.co/2dI2Damohp"
一ノ瀬 いろはさんのツイート: "Firefox screenshots , HTML要素単位での選択が出来るのかー。気づかなかった。"
渋川よしきさんのツイート: "複数のイメージを.icoに書き込めるようにPR出した #golang #windows https://t.co/LVUWVp8JcO"
技術書典4 け-51 x86-64-128さんのツイート: "Illustratorのアセットの書き出しを使うと,1枚のページに書いた図を複数に分割して個々の画像ファイルとして書き出せるので捗る.PDFとしても書き出せるからTeXと相性が良い."
いもすさんのツイート: "超解像技術が理想の形になりつつある。waifu2xは、Photoshopで手で高解像度化したときに輪郭が丸くなる現象からあまり逃れられていなかったけど、A.I.Gigapixelは理想の超解像ができている。写真も二次元絵も問題なく超解像できているあたり汎用的な超解像が可能であることを示していて期待が高まる。… https://t.co/elzWpAVcNq"
mr-csce(llp_qlv)さんのツイート: "エイリアシング、なんで折り返すとかいうのって思ってたけど、周波数領域で考えたらほんとにまんま、まるで折り返したみたいになってて、めっちゃ直球な表現だったんだなって思った。"
FadisさんはTwitterを使っています: 「CPUで展開しなければならない画像フォーマットは貴重なCPUを浪費する上にCPU-GPU間をでかいデータが流れる事になるから、大量のテクスチャを読まなければならないなら圧縮率はイマイチでもASTCをそのまま保存しておくのがオススメ」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています: 「へー、JPEG-XL、JPEG のデータをロスレスどころか byte-to-byte で保ちながら圧縮率を上げる、今でいう Lepton 的な立ち位置の圧縮もできるのか。 https://t.co/Lu2reSpG6f」 / Twitter
https://google.github.io/brunsli/
Tsukasa #01 [要出典]さんはTwitterを使っています: 「普通の JPEG に比べて 22% 圧縮、というのも実際 Lepton に近い数値。」 / Twitter
nikqさんはTwitterを使っています 「つーか今まで、画像codecでまっとうなコードに出会ったことがないんだが、どうしてなんだ?? libtiffはexploit大杉、libjpegは関数ポインタ好きすぎ、libpngはifdef多すぎ、JPEGXRは逆ポーランドすぎ、JPEGXLはGoogle帝国すぎ…」 / Twitter
nikqさんはTwitterを使っています 「Google帝国の人は、世界には名もなきプラットフォームとか#ifdefで分割しきれない謎のコンフィギュレーションのCPUとかがあるってことをもっと知ってください!」 / Twitter
ノナプルナイン@デジゲー博未払い落ちさんはTwitterを使っています 「そう。ツイートしようと思って忘れてた。 pngからjpgを保存するときの容量、なんとGIMPの90%よりもフォトショの75%のほうが重いんですよ。 フォトショ使いのほうが画質にうるさいから、フォトショのほうが見かけの数字よりも圧縮率が低いということ? それとも、jpgの圧縮にも技術の差とかあるの?」 / Twitter
yohさんはTwitterを使っています 「codec != encoder implementation なんだけど そう理解されるのはレアなんだよねぇ そもそもquality(Q)なんてのも メジャー実装では似たような値を用意してるってだけで どこにも(normativeには)規程されないというか」 / Twitter

The FreeImage Project
YCbCr ‐ 通信用語の基礎知識
Digital Negative(DNG)、Adobe DNG Converter | Adobe Photoshop CC
FFTPACK
Graphviz | Graphviz - Graph Visualization Software
画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか? - GIGAZINE
Compressing and enhancing hand-written notes
第873回:bokeh とは - ケータイ Watch

フォント

その他

TypeDrawers

Relationship between left side bearing and contour coordinates (TTX/FontTools) — TypeDrawers
Problem in Chrome? — TypeDrawers
Typeface that lets you try different sets — TypeDrawers
Fontlab 5: How to 'Update [kern] feature' in all open fonts? — TypeDrawers
Usefulness for the below type of fancy fonts and hybrid glyphs — TypeDrawers
A rationale for this replacement of /gamma? — TypeDrawers
How do you test your locl features? — TypeDrawers
New: DTL OTMaster 7.9 — TypeDrawers
Any good auto kerning tools? — TypeDrawers
Understanding the 'name' table. — TypeDrawers
What determines the character range displayed in Windows' Character Map utility? — TypeDrawers
Making Windows Fonts Do Something They Shouldn't — TypeDrawers

窓の杜

大日本印刷、明治からの歴史がある「秀英体」ライセンスをMonotypeへ提供 - ニュース ―MdN Design Interactive edition― - 窓の杜
モリサワ、「TypeSquare Desktop Manager」による「BIZ UD」フォントの提供を終了へ - 窓の杜
任意の文字列で日本語フリーフォントを比較できるWebサービス「ためしがき」が縦書き表示に対応 - ニュース ―MdN Design Interactive edition― - 窓の杜
漢字のスタイルが自由自在? “zi2zi”でニューラルネットワークのスゴさを再認識 - やじうまの杜 - 窓の杜
スタートメニューのプロセスが独立、信頼性向上へ ~「Windows 10 19H1」Build 18317 - 窓の杜
「April 2018 Update」の縦書きフォント問題を回避するパッチ、「一太郎2019」向けに公開 - 窓の杜
Windowsの標準フォントってどこまで“タダ”なの? ~最新の状況をまとめたブログ記事が人気 - やじうまの杜 - 窓の杜
アドビ、新元号“令和”の合字を“Adobe Font”へ追加 ~4月中に完了予定 - 窓の杜
Adobe、新元号“令和”の合字を追加した「源ノ角ゴシック」v2.001をリリース - 窓の杜
情報処理推進機構、新元号“令和”の合字に対応した「IPAexフォント」v004.01を公開 - 窓の杜
楷書体の“令”を新元号発表時の墨書と同じ字形に ~モトヤが無料フォントを提供 - 窓の杜
新元号“令和”の合字に対応した無料の明朝体フォント「IPAmj明朝フォント」v006.01 - 窓の杜
Microsoft、ターミナル・コードエディター向けの新フォント「Cascadia Code」を発表 - 窓の杜
IPAが無償で提供している文字の検索システムがなかなかイケていると話題に - やじうまの杜 - 窓の杜
「Unicode 14.0」のリリースは6カ月延期 ~新型コロナウイルスの影響がボランティアを直撃 - 窓の杜

にせねこメモ

フォントのアウトラインを法線方向に太らせたり細らせたりしてみる - にせねこメモ
UbuntuでFontforgeをコンパイル - にせねこメモ
CygwinでFontforgeをコンパイル - にせねこメモ
さくらのサーバに置いたWebフォントをはてなブログから使う - にせねこメモ
適当に書いてフォントを作る - にせねこメモ
フォントいじり用ソフトウェア・技術情報 - にせねこメモ
漢索フォント - にせねこメモ
フォントでTUT-Code - にせねこメモ
Appleカラーフォントのビットマップの表示位置 - にせねこメモ
TTXでAppleカラーフォントを作る - にせねこメモ
FontForge の Python bindings を使えるようにする - にせねこメモ
サブセットWebフォントを作成する(Font Squirrel Webfont Generator) - にせねこメモ
Linux版AFDKOのダウンロード - にせねこメモ

書体関係 Wiki - unixuser200403-2
書体関係 Wiki - freefont
世界最速のフォントレンダラ、font-rsの内部に迫る | プログラミング | POSTD
フリーのフォントエディタ「FontForge October 2016」リリース、Unicode 9.0に対応 | OSDN Magazine
zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
kaonashi-tyc/zi2zi: Learning Chinese Character style with conditional GAN
ドバイ政府とMicrosoftが提携して開発したフォント「Dubai Font」 | スラド IT
Windows版Firefox 57で既定の日本語フォントをメイリオに変更 - Mozilla Flux
Windows 10プレビュー版にウェイトを自由に変更できるVariable Font実装 - PC Watch
Windowsで最高のターミナルを構築する方法 - 純粋関数空間
デスクトップ・カスタマイズ:フォントリンクの方法
「大漢和辞典」ついに!デジタル化 「フォントない」問題克服の秘密とは | 共同通信 - This kiji is
やがてsyuu1228になるさんのツイート: "ClearTypeのパテントは無償でおっけーになったのか:Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft https://t.co/B2ypyBwVYL via @phoronix"
Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft - Phoronix
「Qt 3D Studio 2.3」公開、新フォントレンダリングエンジンが導入される | OSDN Magazine
Font Edit '95
フォントエディタ作った。 - 借り初めのひみつきち
neri/fedit95: Bitmap Font Editor
Noto Sans Hinted と font-feature-settings: 'palt' | blog.jxck.io
自作フォントエディタの話 - 借り初めのひみつきち
HarfBuzz
Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち

FreeType

The FreeType Project - バグ: Browse Items [Savannah]
hp.vector.co.jp/authors/VA028002/ft_height20061029.c
hp.vector.co.jp/authors/VA028002/winfreetype20061029.c
20212 FreeType の CFF ドライバの処理に任意のコードを実行されるなど複数の問題 - SIDfm
FreeType - Wikipedia
FreeType - Wikipedia, the free encyclopedia
側転幼女おるみんちゃんさんのツイート: "FreeType2 が 2.7 になって ClearType のようなサブピクセルヒンティングが有効になたみたい.Infinalityパッチのとはちょっと違うようだけども >> The FreeType Project https://t.co/JKu8weHERT"
FadisさんはTwitterを使っています: 「GTK+等の文字のレンダリングを担っているPangoがフォントのロードをFreetypeからHurfbuzzに切り替えたところ、ビットマップフォントが読めなくなり、ビットマップフォントとかいまどき使わないと主張する開発者とビットマップフォント愛好家達が揉めてる https://t.co/trTPv9ryyg」 / Twitter
Pango Dropping Support For Bitmap Fonts Is Frustrating Some Linux Desktop Users - Phoronix
svg woff 変換 - Google 検索
woff freetype - Google 検索
FreeType 2.10.2 Released With Support For WOFF 2 Fonts - Phoronix
FadisさんはTwitterを使っています 「FreeTypeにPNGの埋め込みビットマップの取り扱いでヒープバッファオーバーフローを起こす脆弱性が見つかり、修正版2.10.4が出た。この脆弱性の詳細や影響はまだ表に出ていないが、2.6以降のでFT_CONFIG_OPTION_USE_PNGオプションを使用している場合に影響を受けるらしい https://t.co/ULpo4PPiJm」 / Twitter
FreeType 2.10.4 Rushed Out As Emergency Security Release - Phoronix

Adobe

Adobe、日中韓の漢字を網羅したオープンソースのフォント「Source Han Sans」を公開 - 窓の杜
Source Han Sans - Wikipedia
米Adobeがフォント開発ツールのAFDKOをオープンソースに | SourceForge.JP Magazine
ASCII.jp:「源ノ角ゴシック」を実現させたアドビ西塚氏の勘と感覚 (1/5)
インタビュー&トーク - 15年越しに叶った夢、日中韓対応のフォント開発:ITpro
日本語表示も考慮されたコーディング向けのフォント「Source Han Code JP」が公開 - 窓の杜
Adobe Type Tools
源ノ明朝 | Typekit
Adobe、日中韓をサポートしたSerifフォント「源ノ明朝」をオープンソースで公開 ~Googleと共同開発、6万5千文字以上を収録 - PC Watch
貂明朝の漢字6469字の内訳 | yasuokaの日記 | スラド
“Adobe Typekit”が“Adobe Fonts”へ、複雑な利用制限をすべて撤廃してシンプルに - 窓の杜
Adobe Fonts on VF at Adobe Max 2018 — TypeDrawers
【Adobe MAX】無償でも6,000フォントまで利用可能となったAdobe Fonts - PC Watch
A Spectre Haunts Photoshop: Adobe Fontphoria — TypeDrawers
アドビ、可愛く妖しい無料フォント「貂明朝」のv2を公開 ~干支のカラー絵文字を追加 - 窓の杜
Adobe Fontsに日本一画数の多い漢字。貂明朝の新フォントも ~Photoshop for iPadなど新アプリのQ&Aセッションも - PC Watch
Adobe、プログラミング向け無料フォント「Source Han Mono(源ノ等幅)」をリリース - 窓の杜

Google

Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
Noto - Wikipedia
Noto fonts - Wikipedia
Google Noto Fonts
Google Developers Japan: 誰でも使えるオープンソース フォント システム
Google Developers Blog: An open source font system for everyone
Google Internationalization
googlei18n/noto-fonts: Noto fonts, except for CJK and emoji
noto-fonts/FAQ.md at master · googlei18n/noto-fonts
Noto Sans の Web Font 対応とサブセットによる最適化 | blog.jxck.io
Google Developers Japan: オープンソースの美しい Noto フォントファミリーに日本語、中国語、韓国語が加わりました。
Google、日本語・中国語・韓国語をカバーしたオープンソースフォント「Noto Sans CJK」 - 窓の杜
オープンソースの明朝体フォント、Googleとアドビが無償公開、7ウェイトを用意したセリフ書体「Noto Serif CJK(源ノ明朝)」 -INTERNET Watch
Noto Color Emoji – Google Noto Fonts
日中韓に対応したグーグルの新フォント「Noto Serif CJK」は、なぜ生まれたか|WIRED.jp
Google、フォントラスタライザ向けセキュリティチェックツール「BrokenType」を公開 | OSDN Magazine
Noto JP/KR versus Noto — TypeDrawers
Google Fontsが日本語WEBフォントを正式サポート – Dream Seed

MS

米Microsoft、開発環境向けの等幅フォント「Cascadia Code」をオープンソース化 | OSDN Magazine
7594591200220899443さんはTwitterを使っています: 「いや、ターミナルでこの手のprogramming ligaturesを有効にするのは絶対駄目。問題が起きる。 https://t.co/E5qrZxw5DI」 / Twitter
7594591200220899443さんはTwitterを使っています: 「問題が起きる例 https://t.co/KJA07cZl0N」 / Twitter
Deligaturizing "=<" · Issue #751 · tonsky/FiraCode
7594591200220899443さんはTwitterを使っています: 「要は=&lt;というのはシェルの中ではless than or equal toのtokenではないのだ。そこでtokenizeしてはならぬ。」 / Twitter
7594591200220899443さんはTwitterを使っています: 「VS Codeでprogramming ligaturesがおおむねうまく行くのはVS Codeの場合はLanguage serverと通信してプログラミング言語ごとに正確なtokenizationができているからなのであって、ターミナルとかでそういう期待をしてはならない。」 / Twitter
Cascadia Code 1910.04 | Windows Command Line

フォント情報処理用語

Terms Used in Font Information Processing

TrueType

アウトラインがぶれるフォント - にせねこメモ
TrueType命令でビット演算 - にせねこメモ
TrueType命令で擬似乱数: 線形合同法 - にせねこメモ
フォントサイズに合わせて回転するフォントを作る(2) - にせねこメモ
TrueType命令で三角関数(sin, cos)を計算する - にせねこメモ
PPEM・ポイントサイズを表示するフォント - にせねこメモ
フォントサイズに合わせて回転するフォントを作る(1) - にせねこメモ
初めてのTrueType命令: Windowsでは見えないフォントをつくる - にせねこメモ
逆引きTrueType instruction set - にせねこメモ

OpenType

Variable Fonts

ウェブ最大の「フォント問題」を巡ってアップル、グーグル、MS、アドビが団結|WIRED.jp
Variable Fontについて - console.blog(self);
Introducing OpenType Variable Fonts – John Hudson – Medium
Rockridgeさんのツイート: "時期未定だがGeckoでもOpenType Variation Fontsをサポートする予定。参照:https://t.co/xNstDMA0W6 / “Intent to implement: OpenType Variati…” https://t.co/Fi9rUDshGc"
Rockridgeさんのツイート: "Firefox 62では「ひとつのファイルでありながら複数のフォントのように動作する」Variable Fontが使えるようになっている。次のFirefox 63ではウェブ開発ツールのフォントエディタでVariable Fontの… https://t.co/9fPWTzsud8"
Variable fonts for Adobe After Effects — TypeDrawers

にせねこメモ

OpenTypeフォントで万年カレンダーをつくる - にせねこメモ
GPOSのCursive Attachment Positioningについて - にせねこメモ
フォントの気持ちになる - にせねこメモ
OpenTypeフォントで分数 - にせねこメモ
OpenTypeフォントでFizzBuzz(その2) - にせねこメモ
単語の最初のみ(最後のみ)に置換を行うOpenType Feature Fileの書き方 - にせねこメモ
OpenTypeフォントでFizzBuzz - にせねこメモ
「、」「。」を「,」「.」で表示するフォントをつくる - にせねこメモ
OpenType/CFFのフォントを読んでみる - にせねこメモ

OpenTypeカラーフォントと関連技術の動向
Creating and supporting OpenType fonts for the Universal Shaping Engine
OpenType の仕様策定の議論をのぞくには - しろもじメモランダム
Microsoft Typography - Typography | Microsoft Docs
OpenType specification - Typography | Microsoft Docs
OpenType font file - Typography | Microsoft Docs
OpenType - Wikipedia
OpenType - Wikipedia
CID (文字コード) - Wikipedia
PostScript fonts - Wikipedia
OpenType Feature File Specification
true type fonts - Microsoft OpenType specification for cmap - Stack Overflow
Jolg42/OpenType-Specification: OpenType Specification from Microsoft https://www.microsoft.com/typography/otspec/ & Apple https://developer.apple.com/fonts/TrueType-Reference-Manual/
adobe-type-tools/aots: Annotated OpenType Specification
OpenType フォントのカーニング情報をぶっこぬく - Qiita
Rockridgeさんのツイート: "Fx53:OpenTypeフォントのCMAPテーブル(文字コードからグリフインデックスへのマッピングを定義するテーブル)で、フォーマット13をサポート。参照:https://t.co/hn8hfp37WR / “1320665 …” https://t.co/bsONE8ETOn"
Archive of OpenType versions - Typography | Microsoft Docs
OpenType specification change log - Typography | Microsoft Docs
Script tags - Typography | Microsoft Docs

OpenType Variation Font

Rockridgeさんのツイート: "Firefox 61でOpenType Variation Fontsがデフォルト有効化される見通し。 / “Intent to ship: OpenType Variation Font support” https://t.co/SoxLue673P"
Rockridgeさんのツイート: "Fx62:Variable Fontがデフォルト有効化。 / “show_bug.cgi?id=1457266” https://t.co/3dEpnhCfI7"
Ubuntu 16.04でgooglei18n/fontviewをビルド - にせねこメモ
googlei18n/fontview: Demo app that displays fonts with a free/libre/open-source text rendering stack: FreeType, HarfBuzz and Raqm
macOSのダークテーマ、可変フォントなどをサポートするMozilla Firefox 62

OpenType Sanitizer

khaledhosny/ots: Sanitizer for OpenType
一部のウェブフォントがより厳格なバリデーションのため表示されなくなる場合があります (影響あり) | Firefox サイト互換性情報
12月のマイクロソフトセキュリティ更新を確認する - INTERNET Watch Watch
縦書きにしたときにWebフォントの部分だけ表示されない - Google プロダクト フォーラム

WOFF

WOFF 2.0, the inside scoop | W3C Blog
WOFF File Format 2.0
フォントファイルから使いたい文字を抜き出してコマンドラインでWebフォント化するfontminが便利だった - Qiita
WOFF (Web Open Font Format) - ウェブデベロッパーガイド | MDN
フォント素人のWebエンジニアが、「フォントおじさん」に聞いてみた!Webフォントの最近の事情とか | HTML5Experts.jp
WebFont の WOFF2 対応によるサイズ最適化 | blog.jxck.io
Makoto Kato ︎︎さんのツイート: "font-display 使えばいいのに https://t.co/UENeh3Mhse"
ウェブフォントのエモい話 // Speaker Deck
Rockridgeさんのツイート: "MDN Web Docsでは、Webフォントの利用を見直しつつある。Open Sansを廃してFont Awesomeの使用も止め、Zillaフォントは英語文字に限って利用するようにした。ダウンロードサイズが減ってレンダリング時間… https://t.co/SLbO4rwN0g"
Web Fonts Working Group Charter
W3C Strategic Highlights: Strengthening the Core of the Web (Fonts) | W3C Blog
Puppeteer で静的サイトの Font Subsetting | blog.jxck.io

フォント

絵文字

won't fix: emoji hell
won't fix: この文字はカラー絵文字をつかうべきか、モノクロの絵文字をつかうべきか
ゆきまさかずよしさんのツイート: "GoogleのチーズバーガーのEMOJIにおけるチーズの配置はあり得ないとか指摘があって、CEOが謝罪して訂正を約束したとか https://t.co/9RMQmsgLzk https://t.co/pl9hRjDKLm"
Makoto Kato ︎︎さんのツイート: "色々あって一年放置したemojiのバグ直そうとしてるけど、本当フォントシステム辛い。ついでにこれ実装しちゃうとCSS Font4のfont-family: emojiも実装可能なんだけど、あれどうしようかな"
カラー絵文字パッチ制作の経緯 — KaoriYa
Googleがチーズバーガーの絵文字を修正、ほかにビールやチーズも - GIGAZINE
Makoto Kato ︎︎さんのツイート: "I have added new font preferences "https://t.co/NO9M7sv5yr-list.emoji" to control emoji font on Firefox 59+"
Makoto Kato ︎︎さんのツイート: "昔どっかの会社とFirefox OSのデバイス作ってた時に、この設定作らないとと思ってたやつなんだけど、今更入れた"
【やじうまPC Watch】Apple、70を超える絵文字を追加 - PC Watch

ビットマップ

GNU Unifont Glyphs
Unicode encoded Shinonome font for i18n xterm
渡邊フォント問題、非商用限定の無償利用可で解決へ | スラド
「渡邊フォント」がパクリと発覚 | スラド
k14 14-pixel japanese font for xterm
Various Software written by S. Kono
Hanazono fonts

【レビュー】165カ国170万人から集めた筆跡の平均をもとにしたフォント「Universal Typeface」 - 窓の杜
プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
明治時代の活字の味わいたっぷり!無料日本語フォント「Oradano明朝フォント」がステキ – Japaaan 日本文化と今をつなぐ
江戸時代のくずし字1521文字種・8万6176件の字形データセット無償公開、ディープラーニングを用いた文字認識のサンプルプログラムも~NIIと国文研 -INTERNET Watch
KHドットフォントシリーズ | 自家製フォント工房
Oradano Mincho : non JIS X 0213 public domain TrueType font
FSP95 comments
ASCII.jp:西麻布のバーでNTT Comの宮川エバに聞いたテッキーなお話 (1/4)
ターミナルでアイコンフォントを使う理由 | IIJ Engineers Blog
【レビュー】合字(リガチャ)をうまく活用したソースコード向けの等幅フォント「FiraCode」 - 窓の杜
「源ノ明朝」、デジタル向けだが「手の軌跡から生まれる骨格を探し出した」デザイン -INTERNET Watch
【レビュー】「源ノ明朝」フォントを読めるギリギリにまで“破壊”した「源界明朝」 - 窓の杜
古式ゆかしい「変体仮名」が商用・エンベッド含め自由に使えるフォント「Unicode変体仮名フォント」 - GIGAZINE
【レビュー】「Unicode 10.0」に追加された“変体仮名”を表示できる「Unicode変体仮名フォント」 - 窓の杜
日本語の既定フォントが変更されました | Firefox サイト互換性情報
モリサワ「Windows 10 Fall Creators Update」での「UDデジタル教科書体」正式採用を発表 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
プログラミング用フォント Ricty
IPA、あらゆる人名の文字化けがない「IPAmj明朝フォント」 ~約6万漢字を国際標準文字コードに対応 - PC Watch
モリサワ、スタンダード版「BIZ UDゴシック」「BIZ UD明朝」の無償提供を再開 - 窓の杜
Microsoft、数式フォント「MT Extra」をダウンロードセンターで無償公開 - 窓の杜
MORISAWA BIZ+ | 株式会社モリサワ
無償のホラーフォント8作品が一挙公開 ~「怨霊」フォントの暗黒工房が8年ぶりの更新 - 窓の杜
55種類の日本語フリーフォントをまとめて試せるWebサービス“ためしがき”がリリース - 窓の杜
え、ふぉんと? モリサワの“あの”フォントが「Windows 10 October 2018 Update」に標準搭載 - やじうまの杜 - 窓の杜
ワープロ専用機の拡大処理を再現したフォント「ワープロ明朝」
irori/wapuro-mincho: "ワープロ明朝" - 80's Japanese word processor like font
無料&商用利用可能で幾何学的ながら明るく都会的なデザインのフォント「ROLAchan(ローラちゃん)」 - GIGAZINE

Android

池田 泰延さんのツイート: "先程のXperia (Android 7)のフォントの話をトゥギャりました。 HTML/CSSを書く人にとっては役立つ話かと思います。 /Xperia(Android 7)のフォントがウェブ制作者にとって残念 https://t.co/RG3ShObydP"
Makoto Kato ︎︎さんのツイート: "XPEDIAにはNoto Sans CJKは入ってるけど、skiaのせい。というか標準フォント変更機能が存在しててXMLファイルでいろいろ入れ替えられる。そのせいだよ。その機能入れたのSHARPだから、SHARPのせいということで"
Makoto Kato ︎︎さんのツイート: "Noto Sans CJK使いたかったらAndroid版のFirefoxを使えばでるんじゃないですかねー。(細かい調整入れた張本人としての発言)"
Makoto Kato ︎︎さんのツイート: "昔ICSの頃にGoogleとのミーティングあるからなんかお願いしたいことある?って言われた時、今のAndroidのデザインだとフォント列挙(フォントファイル単位)の方法が存在しなくて、フォントファイルのパスさえもとれないから、ホント困るって話をお願いしてもらったんだけどね。。。"
Makoto Kato ︎︎さんのツイート: "ブラウザ側からしてみれば、skia経由でしかフォントに触れないのでskiaがフォント選択の仕組みをそのままブラウザ側に実装しないと全くもってブラウザがやりたいこと実装できないんですよねー。skiaやってるのもGoogleなんでGoogleのせいですよ、SONYじゃない"
Makoto Kato ︎︎さんのツイート: "OEMベンダがカスタムしてるフォント名のアリアスとかもXMLファイルなんで、FirefoxもそのXMLファイルを解析してフォント選択に加えないといけないんですが、個人的には優先度低い。でもChromeとの互換性言われたらやらざるを得ないけど"
Makoto Kato ︎︎さんのツイート: "全端末が/system/fontsだけにあればよかったんですがねー。しかもフォント名のアリアスなしで"
Makoto Kato ︎︎さんのツイート: "なお、どの会社もskiaをカスタムしてなければいいですが、自社でコードいじってるとXMLファイルの件も保証できないです。Apacheライセンスだったはずだから、変更した場合でも変更点は闇のなかですねー。GPLとかだったら変更点を出してくれますが"
Makoto Kato ︎︎さんのツイート: "Android版Chromeで中華フォントが!!って話が昔よくフォーラムにあったんだけど、Androidのフォントを知れば知るほど、ホワイトリストしかない気がするって思うんだよね。Chrome Teamの範疇だと難しいよな、かわいそうにって思う"
Makoto Kato ︎︎さんのツイート: "(その面倒なところの架け橋をしたって、おそらく社内的にまったく評価されないだろうから、誰もやるはずがないという意味です)"

ものかの

デジタルフォントの風説 “仮想ボディ” – ものかの
日本語の活字はどうして全角なのか – ものかの
源ノ明朝/角ゴシック-1 フォントを整理しよう – ものかの
源ノ明朝/角ゴシック-2 サブセットとフルセット – ものかの
源ノ明朝/角ゴシック-3 デジタルの文字 – ものかの
源ノ明朝/角ゴシック-4 Unicodeの漢字統合 – ものかの
源ノ明朝/角ゴシック-5 フルセット版 – ものかの

Wikipedia

Linux Libertine - Wikipedia
Linux Libertine - Wikipedia
Junicode - Wikipedia
Junicode - Wikipedia
DejaVuフォント - Wikipedia
DejaVu fonts - Wikipedia

Twitter

macOS

みーた / UXエンジニアさんはTwitterを使っています: 「macOS Catalinaでヒラギノ角ゴPro/ProNが消えたらしい。 弊社サイトとかでも使ってるのでフォント崩れが起きている。 困る。大迷惑だ。 https://t.co/U6VTP3qSUc」 / Twitter
みーた / UXエンジニアさんはTwitterを使っています: 「私はアップデートしてないのでソースはこちら。 https://t.co/6rDoWnM7js」 / Twitter
macOS Catalinaでヒラギノ角ゴPro/ProNが消える - kyoto.nagoya Blog
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「フォントに依存するようなサイト云々ってのもあるけど、generic font-familyを指定してるけど、そのハンドリングが甘いブラウザがあるって感じ?」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「あー、Geckoもそのままではフォールバックしなさそうだな。 https://t.co/z1rtoiBdoo」 / Twitter
all.js - mozsearch
池田 泰延さんはTwitterを使っています: 「macOS CatalinaのChrome 77のフォント問題。 勘違いしている人が多いので説明。 Chromeのデフォルトだった「ヒラギノ角ゴシック ProN」がCatalinaで未バンドルになる ↓ 該当するフォントがなくなったため、Sans Serifが明朝体で表示される ↓ フォント指定の甘いサイトは全部明朝体に! https://t.co/Cil92P8PGO」 / Twitter
macOS Catalinaでヒラギノ角ゴPro/ProNがなくなって困ってるfont-familyの設定を考える。|榊原昌彦|note

四九六々(縦書き用)さんはTwitterを使っています: "フォントのGPUレンダリングの記事読んでた。これいいね。GPUの知識に乏しいので2週間くらいかけて勉強しながら実装してみたい。https://t.co/tgm1tNpGe9"
Resolution independent GPU text rendering demo
Rockridgeさんのツイート: "Mozillaの新ロゴに使われているZilla SlabフォントがGoogle Fontsに掲載されている。 / “Google Fonts” https://t.co/YCupNw3Xlj"
Zilla Slab - Google Fonts
なかのんクエストさんのツイート: "@azu_re リリース版では57からメイリオですが、当然、インストールされていない環境も考慮して、メイリオ → 游ゴシック → MS Pゴシックとフォールバックするようにしています。 https://t.co/plxRj8pPWE-list.sans-serif.ja 参照。"
池田 泰延さんのツイート: "ブラウザのフォントをユーザーが独自に変更している場合に、アイコンフォントが表示されなくなる。 これは盲点でした... #cssnite https://t.co/SAHptJF2o3"
Rockridgeさんのツイート: "Fx63:Skiaのフォントキャッシュサイズを10MBから5MBに減らした。Mac版やLinux版で消費メモリが減少する。 / “show_bug.cgi?id=1258781” https://t.co/RROLJbRguT"
Rockridgeさんのツイート: "Fx63:Android版の使用フォントにNoto Serif CJKを追加。Android 9 Pieでは中国語、日本語、韓国語のセリフ体フォントはNoto Serif CJKがデフォルトなんだとか。 / “1481031 -…” https://t.co/YkgoZDkwnt"
なかのん&マジックさんのツイート: "昔、ちょっとだけGeckoのgfxかじった身からすると実装面でその気持ちは分かる……"
OE Waku 𛄊𛀬さんのツイート: "げ、これマジだ。ひどい・・・・ > Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない https://t.co/8NVPQgfNFU"
Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない - Qiita
なかのん&マジックさんのツイート: "こういう時に、ブラウザエンジンを選択できないプラットフォーム、デバイスってのは困るよなぁ。特にこうやって、ブラウザの違いによって転送容量が大きく変わるってのは、事実上、従量制な回線を使ってると実害あるよね。"
ドッグさんのツイート: "Linux のフォント描画がどうダメなのか具体的に説明してくれてる | 'The sad state of font rendering on Linux | Infosec scribbles' https://t.co/kKTZMIe7Br"
The sad state of font rendering on Linux | Infosec scribbles
vyv03354さんのツイート: "㋿を表示するためだけのフォント https://t.co/jS45Zrl1Yb しかしFirefox以外はフォントを明示的に指定しないと表示できないようだ。"
グループ:emk_令和明朝 - GlyphWiki
FadisさんはTwitterを使っています: 「中国語の文字が多すぎてフォント作りが辛すぎて凝ったデザインのフォントが足りない問題、CNNでスタイル転送してフォントを生成することでほぼ克服されてて凄い」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VisualStudio2019の標準フォントは、昔ながらの「MSゴシック」ということに今頃気付いた。 プログラミング用フォントは、Anti-Alias / ClearType が効かない方が視認性が良くて好き。 (これらが効くフォントは、同じ文字が場所によって、微妙に異なる表示になったりする)」 / Twitter

Google Fonts
Google Fonts の日本語フォント - Qiita
Fonts (日本語) - ArchWiki

PDF

その他

Online ASCII85 encoder - Online tools
paperai/pdfanno: Linguistic Annotation Tool for PDF Documents
Hack Patch!: PDF特殊機能(FormCalc編)
Hack Patch!: PDF特殊機能(リダイレクト編)
UsefullCode.net: 2016年04月 記事一覧
UsefullCode.net: 2016年07月 記事一覧
PowerPoint for Macが吐くPDFが重いんです - Qiita
タグ付きPDFとはどんなもの | アンテナハウス PDF資料室
Arch Linuxで日本語pdfを閲覧したり、辞書を表示する | 3log
「LibreOffice 6.3」リリース、UI、性能などにフォーカス | OSDN Magazine
PDFファイルを開くだけで暗号化された内容が流出する脆弱性「PDFex」が発見される - GIGAZINE
Windows上でもPDFファイルのパスワードを総当たりで解析できるフリーソフト「PDFCrack」 - GIGAZINE
iPhoneでJPEG画像やPDFファイルを開くだけでハッキングされる可能性 - GIGAZINE
PDFから「使える」テキストを取り出す(第1回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第2回) - golden-luckyの日記
CC0ライセンスの空白PDFファイル - Qiita
PDFから「使える」テキストを取り出す(第3回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第4回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第6回) - golden-luckyの日記
Takashi KawasakiさんはTwitterを使っています: 「Unicode→GIDを逆引きして文字コード取得すると、メイリオみたいなフォントだと、杮(こけら)と柿(柿)が区別できなかったりする。つまり同じグリフなのね。 PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記 https://t.co/bNEVURablY」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「ああ、僕のレビューは確かに良くないかも。日本語のPDFの本の解説本って割と少ないので過度な期待をしちゃっただけなんですよ。 https://t.co/lJsLRPz6Zl」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています: 「今日のブログ書くのにamazonでこの本を見たら、求めるものを勘違いしている方によるレビューばかりでかわいそうになった。ふつうに良い本だと思います "John Whitington『PDF構造解説』 https://t.co/jURHqtACSt」 / Twitter
2020年 年賀状 - golden-luckyの日記
PDFが読めるようになるお話 | 感情的プログラミング伝記 | タウン情報誌 AIR函館 - 北海道函館市の食・呑・遊をご紹介!
プログラマーから見たPDFファイル | アンテナハウス PDF資料室

Adobe

注目の脆弱性:Adobe Acrobat Reader DC ドキュメント ID に起因する、リモートでコードが実行される脆弱性
TALOS-2017-0505 - Cisco Talos
PDF 2.0 でドキュメントを次世代のステージへ - Adobe Blog
ISO 32000-2:2017(en), Document management — Portable document format — Part 2: PDF 2.0
ISO 32000に準拠するPDFってどんなもの? | アンテナハウス PDF資料室
ISO 32000-2:2017 文書管理-ポータブル文書フォーマット-第2部:PDF 2.0 | 日本規格協会 JSA Group Webdesk

OCR

tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする - Qiita
Ubuntuにtesseract-ocrをインストール - Qiita
スキャンしたpdfファイルにOCR処理を行い,テキスト埋め込みpdfを作成する - Qiita
日本語OCRライブラリNHocrを利用してみる - Qiita
Nami Ogawaさんのツイート: "古めの論文でそのままPDF落とすと文字も読みづらくて本文検索もできないようなとき、google検索でキャッシュリクエストすればOCR済みのHTMLバージョン返ってきてめっちゃ便利っての今気づいた https://t.co/2yBG3Cymsr"

長期署名

PAdES - Wikipedia
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第1回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第2回) PDF署名とは - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第3回) PAdES仕様の構成 - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第4回) PAdES Basic - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第5回) PAdES Basicと署名ポリシ - livedoor Blog(ブログ)
自堕落な技術者の日記 : 追悼 Adobe CDS - livedoor Blog(ブログ)

PDF.js

PDF.js - Wikipedia, the free encyclopedia
PDF.js
mozilla/pdf.js: PDF Reader in JavaScript
PDF.jsを設置する - Qiita
MozillaのPDF.Jsを利用してJavaScriptでPDFレンダリングをカスタマイズ - WPJ
PDF.js の導入方法と苦労した話 (フェンリル | デベロッパーズブログ)
pdf.jsを使いブラウザで見られるPDFスライド表示ツールを作った | Web Scratch
[pdf.js] テキスト選択出来るスライド表示ライブラリを書いた | Web Scratch
PDF.jsを使ってみる | Tips Note by TAM
PDF.js で遊んでみた (ページの描画,テキスト・注釈の表示など) - きちぽよ〜
mozilla/pdf.js: PDF Reader in JavaScript
チュートリアル:Aurelia.jsとPDF.jsで実装するPDFビューワーの作り方 - WPJ
core-jsがメンテされていない理由 - Qiita

libHaru

LibHaru - Wikipedia, the free encyclopedia
libHaru
libharu/libharu
libHaruの部屋
PHP::Haruで基本的なPDFを作成する (1/3):CodeZine(コードジン)

PDFium

Google Chrome PDFエンジンがオープンソース化
米Google、ChromeのPDFレンダリングエンジン「PDFium」をオープンソース化 | OSDN Magazine
Issues - pdfium - PDFium - Monorail
pdfium Git repositories - Git at Google
SDK Docs - Foxit Developer Portal | PDF SDK technology
にっき♪: PDFium
pvginkel/PdfiumViewer: PDF viewer based on Google's PDFium.

PDFtk

PDFtk - Wikipedia
PDFをコマンドラインから編集できるPDFtk使い方メモ - c-bata web
PDFtk - The PDF Toolkit

SumatraPDF reader

Free PDF Reader - Sumatra PDF
sumatrapdfreader/sumatrapdf: SumatraPDF reader

pdfseparate

Poppler:Pdfseparate の使い方 | PDF
Ubuntu Manpage: pdfseparate - Portable Document Format (PDF) page extractor
PDFを各ページに分割(切出)するコマンド pdfseparate - それマグで!
kmutoさんのツイート: "gs由来のpdfseparateでもboxは全部飛んじゃうんだな"
Poppler:pdfunite の使い方 | PDF
Linux とかで PDF を結合とか n-up とかするコマンドたち - polamjaggy
Ubuntu Manpage: pdfunite - Portable Document Format (PDF) page merger
wgetコマンドで外部からPDFを取り出してpdftkでPDFを結合しよう - Qiita

yomu

yomu
ta2gch/yomu: 英和辞書付きPDF閲覧ソフト

Google

Google Chromeに脆弱性か、ユーザー追跡の不審なPDF発見 - ITmedia エンタープライズ
Chrome PDFビューワーの情報漏えいの脆弱性についてまとめてみた - piyolog
ゆかたゆさんのツイート: "Android版のChromeさんはpdfファイルを落とす前に確認して欲しいのです💢 (これ出来るんですか?私が無知だったらごめんなさいなのです)"
tkr@合格0,不合格6,発表待ち1さんのツイート: "てかpdfのフォーマット知らないんだけどページごとのストリーミングみたいなことできないのあれ 数十ページあるやつ全部落とすの通信量やばい"
なぎせ ゆうきさんのツイート: "ページ単位のタグがあったと思うけど、表示に必要な情報が後ろにあったりしたような(うろ覚え… "
あんどうあんど🔞休職→求職中さんのツイート: "最後のほうに、属性情報とか索引とかある。… "

MS

「Edge」のPDF閲覧機能が強化、新しいセキュリティ機能も ~Insider Preview - 窓の杜

PDF/UA

PDF/UA - Wikipedia
Tomaz's dev blog: Accessibility checker and support for PDF/UA specs
PDF/UA-1(ISO 14289-1)について | アンテナハウス PDF資料室

PDF/X

PDF/X - Wikipedia
PDF/Xについて (1) PDF/X-1a
PDF/Xについて (2) PDF/X-3
PDF/Xについて (3) PDF/X-2

PDF/A

PDF/A - Wikipedia
PDF/Aとはなにか | アンテナハウス PDF資料室
PDFAOutline.pdf
PDF/A 概要
LuaLaTeX で pdfx パッケージを使い PDF/A に準拠した PDF を作る - Qiita

Wikipedia

Category:Mozilla Firefox - Wikipedia
Category:FLOSS関連のスタブ項目 - Wikipedia
Portable Document Format - Wikipedia
Ascii85 - Wikipedia
Extensible Metadata Platform - Wikipedia

Twitter

ToUnicode, OpenType

keiichiro shikano λ♪さんはTwitterを使っています 「今日の学び:PDFの/ToUnicodeは、OpenTypeフォントの中のcmapから得られる情報と食い違う場合がある!(信用できるのはOpenTypeフォントの中の情報)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「しかしOpenTypeのcmapを読むのはパターンが多すぎてめんどくさいなあ」 / Twitter
画力・博士号さんはTwitterを使っています 「OpenTypeの cmap テーブルは一般には単射ではないのでPDF中での逆変換に相当する /ToUnicode CMap で正確に復元できるとは限らないんですよね(どうしてこんな仕様に……)」 / Twitter
TrueRoadさんはTwitterを使っています 「AJ1フォントなら逆に無い方が都合が良い場合が多いので、原ノ味フォント用にToUnicode CMap削除ツールなんてものを作りました。 https://t.co/Da7Punx9h3」 / Twitter
trueroad/pdf-rm-tuc: Remove ToUnicode CMap from PDF
keiichiro shikano λ♪さんはTwitterを使っています 「確かに、フォントが埋め込まれてる場合にはいっそいらないよねこれ…」 / Twitter
TrueRoadさんはTwitterを使っています 「@golden_lucky 源ノとかAI0フォントの場合はToUnicode CMapが無いとテキスト抽出できなくなってしまいます。PDFにフォントが埋め込まれていても、確かcmapテーブルは入ってなかったと思います。」 / Twitter

tagged PDF

keiichiro shikano λ♪さんはTwitterを使っています 「タグ付きPDFを「きちんと」出力できて、書籍の組版できるソフトウェア、現状だと何があるだろう。InDesignには「TCreate Tagged PDF」のオプションはあるっぽいが、これはどこまで使いものになるのかにゃあ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「Chromeがタグ付きPDFがデフォルトなのでVivliostyleはできるのかな。AHFormatterはできそうだけど、これも実際のところはどんな感じなんだろう。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「pdfTeXは「きちんと」はいまだにできてないが、ConTeXtはできるらしい。」 / Twitter
ひだるま@技術書典9新刊有さんはTwitterを使っています 「タグ付PDF、1.7と2.0でちょこちょこ違うし私用のマシンだと十分な検証環境ないんだよな」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「PDF 2.0、ぜんぜんしらないなー」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「父さんEPUBは捨ててtagged PDFにベットしようと思うんだ」 / Twitter
Tokushige KobayashiさんはTwitterを使っています 「AH Formatterのタグ付きPDFを使っているのは海外ユーザーだけだと思います。逆に、OSDCはタグ付きPDF出力できないですが、海外から今どき非常識だと叱られたことがあります。非構造化文書からのタグ付きPDF出力は仕様を満たすための無意味なタグ付け~Pタグとspanタグ羅列のような~になるだけですが。」 / Twitter
村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky AH Formatterはもちろんタグ付きPDF出来ます。 https://t.co/fLS6som2nR だいぶ昔ですが、私がその実装に携わっています。」 / Twitter
AH Formatter V7.0 - PDF出力
村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky Chromeのタグ付きPDF出力によりVivliostyleでも出来るようになるはずなのに、タグ付きにならない不具合に気付きました。どうもChromeのタグ付きPDF出力が特定の条件(JSでコンテンツが生成されてる、CSSでページサイズ指定ある)で無効になるChromeのバグのよう。さらに調べてChromeにバグ報告します。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「@MurakamiShinyu なるほど、ブラウザでDOMを作る前にHTMLの構造が手に入っている場合にのみ生成できる、とかだとつらそうですね…」 / Twitter

リーダーモード

keiichiro shikano λ♪さんはTwitterを使っています 「いまでも普通のPDFをリフローできるんですよ https://t.co/y4wzFrjk9J」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「まあ、これはリーダーに依存した不完全なもので数式とかルビとかページまたぎとかは全然ダメなんだけど、大筋は問題なく読めるし、どうしても読めなかったらふつうのページ表示に戻せば必ず読める。」 / Twitter
mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky えっ。なにこれ。やば?どうなってるの?とか思ったんですがこれすごいすね」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「@mhidaka ご利用のスマホのAcrobatアプリで「リーダーモード」を選べば誰にでも未来が待っているんですよ!(実はデスクトップのAcrobatですでに十年位前にはあった機能)」 / Twitter
mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky やべー技術力じゃん…」 / Twitter

サブセット?

keiichiro shikano λ♪さんはTwitterを使っています 「PDFとPostScript、ページ記述に使っているモデルこそ同じだが事実上は別ものなんだけど、Wikipediaの「PDFはPostScriptのサブセット」という説明はどこ由来なんだろう https://t.co/y9OQ9SSlSp」 / Twitter
僕「PDFとは何か知りたい」 - Qiita
keiichiro shikano λ♪さんはTwitterを使っています 「「ErlangはPrologのサブセット」みたいな違和感がある(わかりにくい)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「CDはDVDのサブセット」とかのほうがわかりやすい?(わかりにくい)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」に違和感があるのといちばん近い気がしてきた。Haskellを知りたくて圏論について調べたら迷子になるように、PDFを知りたくてPSについて調べたら迷子になります。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」も「PDFにはPSのサブセットが含まれる」も、それ自体は偽とは言えないけど「あえて」主張されると「せやな」という気持ちになるという意味で、「偶数全体の集合は素数全体の集合の空でないサブセットを含む」は実に膝を打つたとえ。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「「空でないサブセットって言えばいいのかな?」「偶数全体の集合は素数全体の集合の空でないサブセットを含みます!」」 / Twitter

Mozilla

RockridgeさんはTwitterを使っています: "PDF.jsは「Canvasとテキスト、アノテーションの3つのレイヤーを使って描画しています」。「Canvasの描画の上に透明なdivにテキストを流しこんだり、クリック出来るようにリンクを置いたりしています」。 / “[pdf.…” https://t.co/QNrf99J3SA"
vyv03354さんはTwitterを使っています: "pdf.jsがフォントを埋め込んでいない日本語PDFで文字化けする問題ようやく修正した。自分で本体に投入したTextDecoderが早速役に立った。やはり自分でhackしないと誰も直してくれないことを再確認。#もずでぶ"
vyv03354さんはTwitterを使っています: "それにしてもフォントを埋め込まないでIdentity CMapを使うのは禁止されているはずなのに https://t.co/91wpwzRd 違反している日本語PDF多すぎ。"
vyv03354さんのツイート: "pdf.jsで縦書きに対応。本体のwriting-modeサポートに依存しているような気がしていたが別にそんなことはなかったぜ! #もずでぶ"
vyv03354さんのツイート: "https://t.co/1vtC7zUP2m 現時点の制限事項: フォントが埋め込まれていないと、縦書き用字形は使われず句読点や括弧なども横書き用のままです。"
vyv03354さんのツイート: "@teramako https://t.co/F1f8jRve と同じ問題ですね。この問題があるのでフォントを埋め込んでいない日本語PDFは高確率で化けます。"
vyv03354さんのツイート: "pdf.jsは日本語の数学論文がほとんど全滅で、issueも投げたけど無視されてる。https://t.co/F1f8jRve やっぱりハックしてpull requestを送らないとダメか"
Rockridgeさんのツイート: "Fx48:PDF.jsやGoogleドキュメントなどで、ヘッダ/フッタを印刷すると本文領域を上書きしてしまう場合、ヘッダ/フッタを印刷しないようにした。 / “1250674 – Don't print header/foote…” https://t.co/USoaeYbKB4"
Rockridgeさんのツイート: "Fx55:MortarプロジェクトのPDFビューワを有効化するための設定が追加された。pdfium.enabledがそれだが、今のところtrueにしても現行ビューワの代わりになるわけではない。 / “1338476 - [jsp…” https://t.co/k0c4dhwqRG"

@espresso3389

Takashi KawasakiさんはTwitterを使っています: 「PDFの仕様が曖昧過ぎて話にならないのは事実としても、普通は、PDFを作成する側のプログラムにもメジャーなものがいくつかあって、そいつらの癖とかバグを一通り対応すると、まぁ、世の中の99%ぐらいのファイルは処理できちゃんだけども、残りの1%はどこかの誰かさんが作ったであろう、名も知れ(文字数」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「面白いのは、当然ながら、Acrobatでは開けるからこそ流通するわけなんだけど、要はAcrobatのデコーダも相当謎で一体、どんな実装してんだっていうのはある。逆に最近のバージョンで開けなくなったPDFというのも少なからずある。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「テキストの並びを順序通りに切り出す処理、GUIアプリだとユーザーが暗黙のうちに正しい方向に選択してくれるというヒューリスティクスというか人間を使った手法があったりする。というか、僕の書いたアプリではそれを使ってたりする。まぁ、全然完璧じゃないんだけどね。 https://t.co/HJC7lQYqsT」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「Microsoft Print to PDFっていうクソ仮想プリンタが、仕様違反とは言えないまでも、Page contentの q Q の外に CTM いじるような命令ぶっこんで来るせいで、content 追記するととんでもないところに描画されちゃって困ってる。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PDFをある程度理解できるようになるとわかることは、クソエンコーダが多すぎて、個別のPDFの事情なんてさっぱり分かりません。諦めてくださいってことになるってことです。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Adobeの実装すら、・・・・ってなることが多いのに、それを他のソフトで再編集でもしようものなら、もうゴミになることは火を見るよりも明らか。 にもかかわらず、Adobeすら再編集機能を持っていたりするので、憎悪しか感じない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PDFは一度作ったら編集なんてやるべきじゃない。もっというとデータとしての活用もやるべきじゃない。人間による閲覧用途、印刷用途、あとはクリティカルじゃない検索程度にとどめるべき。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「あと、仮想プリンタ。あいつらも諸悪の根源。基本、印刷側ソフトウェアは、文字コードの羅列から、印刷のためのグリフの配列を生成して、それをプリンタに送信している。そのグリフ配列から、元の文字コードに戻せるか?って言われると、原理的には必ずしも元には戻らない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「仮想プリンタは無理を承知で頑張ってはいるけど、無理なものは無理。メイリオとか、かなり多くの文字が同じグリフを参照してたりするんだよ。杮と柿とか。あとね、アラビア系の文字に関しては、実のところ並び順すら怪しい。頑張って解析するけどさ。リガチャとか元に戻るわけねーだろっていう。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「この辺は、ドライバ書くのに、各言語に対するかなりの知識が必要になるわけです。僕日本人なので、頑張っても日本語、英語、あと・・・、ドイツ語は怪しい。ポーランド語とか知るわけねーだろみたいな範囲で頑張ってヒューリスティクス含めて実装するのね。」 / Twitter

Tsukasa #01 [要出典]さんのツイート: "oO( 残念ながら、pdf.js はほぼ使い物にならないという評価をせざるを得ない。 )"
勝(まさる)さんのツイート: "PDFはPostScript派生なんだけど、後ろに続くテキストを圧縮してエンコードしてとかできるんで、ファイルを生で開いても読めないことが多いですね。"
aminophenさんはTwitterを使っています: 「&gt; TeX界隈だと、DVIPS経由で生成されたPDFではType 3フォントが使われることになっているので、この理由で文字が取れないPDFファイルはわりと目にします。 ここで耳寄り情報を1つ:最近,dvips の作者が「Type 3 フォントを使った PDF から文字を取り出す実験」をしている。 https://t.co/khjhSuDwWY https://t.co/BL8MLE0wUn」 / Twitter
rokicki/type3search: Working on making Type 3 bitmap fonts used in dvips-generated Postscript generate searchable PDF files.
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Acrobatのルート証明書からもチェインしたデジタルID/証明書で、LetsEncrypt的なの出ると良いなぁ。 (AdobeはPDF用ルート証明書を独自にして、家元商売している印象が…) https://t.co/xhoeHR28MP」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これ1個で済むという PDF viewer が見つからない. 1. 白黒反転できる(夜まぶしいから) 2. メモがつけられる(PDF 書き換えでなく) 3. 1ファイルに複数ウィンドウ(別の場所見たい) 4. 大きな PDF でも負けない強い子 てか,PDF ほびろん!」 / Twitter
R. ShioyaさんはTwitterを使っています 「パワポやエクセルで作った図をクリップボード経由で PDF に変換できるツールを作りました.MetafileToEPS を使ってた事がある人にはわかると思いますが,要はあれの PDF 版です.Windows 上で TeX で論文を書いている人には便利かもしれません. https://t.co/mq9F7tCsc7 https://t.co/Xb6EOv2j2T」 / Twitter
shioyadan/kuroko: Kuroko is a simple command line tool to convert EMF to PDF. You can download a pre-compiled binary from https://github.com/shioyadan/kuroko/releases.
R. ShioyaさんはTwitterを使っています 「@KuniSuzaki 私も、スライドのサイズを図のサイズぴったりにしたパワポを作って PDF に印刷して… みたいな事をしていて毎回あまりに面倒なのでこれを作りました。今のところ API の制限で半透明なオブジェクトが崩れてしまうのですが、それ以外は多分きれいに PDF になってくれると思います。」 / Twitter
R. ShioyaさんはTwitterを使っています 「たまにある PDF でコピペすると文字が化けるやつ,どうも PDF ではフォントを埋め込むと文字コードが各フォント内固有の ID(グリフID)に変換されて格納される仕様で,その上で処理系がさぼってグリフID→元コードへの逆変換表を一緒に埋め込まなかった場合は復元不能で化ける・・・ ということらしい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PDFは表示・印刷用フォーマットなので、元情報が欠落しないはず、という仮定・期待に無理があるような、、、 (再加工用には別フォーマットで)」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@a4lg えええ…もしかして単純に同一グリフの複数コードのうち小さいのを返しちゃうんですか…それは邪悪な…」 / Twitter
Tsukasa #01さんはTwitterを使っています 「@tetsutalow 私が実際に遭遇したケースでは間に PDF が挟まったことがきっかけ……というのが大部分ですね (同一グリフ [字形] を康熙部首と CJK 統合漢字とで共有しているフォントの場合、PDF ネイティブのグリフ ID から文字列に戻す場合に混乱するのではないかと)。」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu 正論はそうでも事実としてPDF内のテキストはそれなりに検索性があることが求められているわけで、そこでグリフに引っ張られてコードが変わっちゃうのはやっぱり邪悪だと思っちゃいますね。特にこんな、それで検索することまずないでしょってコードに置き換えちゃうのは特に悪い挙動。」 / Twitter

SWF

LWF by GREE
gree/lwf: LWF - Lightweight SWF
untitled - swf-file-format-spec-v10.pdf

Audio

その他

大語彙連続音声認識エンジン Julius
GNU Compact Disc Input and Control Library (libcdio)
本の虫: PulseAudioの問題
ネットワークオーディオと「OpenHome」 | 言の葉の穴
ハイレゾ対応の音楽再生ソフト「TuneBrowser」v4、“OpenHome”に対応 ほか - ダイジェストニュース - 窓の杜
アップル、iOS 11でFLAC形式のオーディオ再生をサポート。ほかにOpusや3Dサウンドにも対応へ - Engadget 日本版
ドルビーラボラトリーズ - Wikipedia
Dolby Laboratories - Wikipedia
「ハイレゾCD」登場、MQA×UHQCDでユニバーサルから100タイトル - AV Watch
Google Developers Japan: Resonance Audio がオープンソースに
オブジェクトベースオーディオのためのE-AC-3拡張の規格書を読む - .mjtの日記復帰計画
12-13 mp4sa - Qiita

Web

WAV

WAV - Wikipedia
WAV - Wikipedia
Resource Interchange File Format - Wikipedia
Resource Interchange File Format - Wikipedia
Wave File Specifications
WAVファイルフォーマットの読み込み | NecoTech
wav ファイルフォーマット
Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
RIFF/WAVE形式
AVI RIFF ファイルのリファレンス
ビット毎秒 - Wikipedia
パルス符号変調 - Wikipedia

Vorbis

Vorbis - Wikipedia
Vorbis - Wikipedia
Ogg - Wikipedia
Ogg - Wikipedia
Xiph.org: Downloads
Xiph.org - vorbis.git/summary
libvorbis-1.3.5
Xiph.org - ogg.git/summary
libogg-1.3.2

Opus

Opus (音声圧縮) - Wikipedia
Opus (audio format) - Wikipedia, the free encyclopedia
Opus Codec
Development – Opus Codec
Opus-1.1.2
無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE
フリーのオーディオフォーマット「Opus」がIETF標準に、初の正式版実装もリリースされる | OSDN Magazine
ロイヤリティーフリーのオーディオコーデック「Opus 1.2」リリース | OSDN Magazine
Rockridgeさんのツイート: "Fx64:Opus 1.3のリリース候補版をサポート。 / “1487049 - Update opus to revision v1.3-rc-15-g38fca4a2” https://t.co/wuJ4GWNiKA"

FLAC

FLAC - Wikipedia
FLAC - Wikipedia
FLAC - download
Xiph.org - flac.git/summary
FLAC-1.3.2
音質劣化のない可逆エンコーダ「FLAC」で音楽を楽しもう | OSDN Magazine
可逆圧縮オーディオコーデック「FLAC 1.3」リリース | OSDN Magazine
日記 (2016 年 7 月上旬)

MP3

MP3 - Wikipedia
MP3 - Wikipedia
[日本工業規格(JIS)] |書誌詳細|国立国会図書館サーチ
Mpeg Audio規格日本語版(JIS X 4323): みやじぃの徒然レコーディング(でないことがほとんど?)日記
MP3のライセンス問題はその後どうなったのか : Timesteps
【藤本健のDigital Audio Laboratory】第553回:iTunesのVBRとCBR、どちらの音が良い? - AV Watch
CBR,VBR,ABRの違いについて - 目的にあったエンコードモードを選ぶ - 道すがら講堂
MP3の特許を持つTechnicolorの特許権が消滅 - GIGAZINE
Fedora、MP3をフルサポートへ | スラド Linux
2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
「MP3が死んだ」という報道の本当の意味とは? - GIGAZINE
とみながたけひろさんのツイート: "このツイートをするために久々に"takehiro.c"でぐぐったんですが、衝撃の事実が。LAMEがllvmのテストスートに含まれている関係で、世界中のgitレポジトリにtakehiro.cが含まれている…オープンソースは勝手に増殖するのを実感した。こええwww https://t.co/ScmjG3L19T"
MP3ファイルを覗いてみる(基本型)
mp3ファイルの構造
MP3 ファイルのタグについての解説 (id3v1, id3v2, MPEG フレームヘッダ, XING ヘッダ) - Y-Lab. Electronics
ID3v2 仕様書日本語訳 | takaaki.info
デジタルオーディオの仕組み - 音声圧縮の原理 MP3, AAC, ATRAC, etc. - white croquis
MP3の仕様
technosaurus/PDMP3: Public domain mp3 decoder
lieff/minimp3: Minimalistic MP3 decoder single header library

libsndfile

libsndfile-1.0.28
The libsndfile API
雑メモ: libsndfile を使ってみた | anobota
[vDSP][信号処理]オーディオ・音声分析への道3 Libsndfile - Qiita

HD Audio

HD Audioとは|Intel HD Audio|High Definition Audio - 意味/解説/説明/定義 : IT用語辞典
High Definition Audio - Wikipedia
Intel High Definition Audio - Wikipedia, the free encyclopedia
Intel High Definition Audio - OSDev Wiki
PC Speaker - OSDev Wiki
High Definition Audio Specification
Customizing HD Audio Driver Volume Settings (Windows Drivers)
藤本健のDigital Audio Laboratory
https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt
Advanced Linux Sound Architecture - ArchWiki
Advanced Linux Sound Architecture/トラブルシューティング - ArchWiki
Windows-driver-samples/audio/sysvad at master · Microsoft/Windows-driver-samples
藤本健のDigital Audio Laboratory
Intel、次世代PCオーディオ規格「High Definition Audio」
コグノスケ
藤本健のDigital Audio Laboratory
OSDev.org • View topic - Intel High Definition Audio problem. [SOLVED]
OSDev.org • View topic - Intel HD Audio - DMA buffers not working

Audio Codec 97

Audio Codec 97 - Wikipedia
AC'97 - Wikipedia

Audible

Audible - Wikipedia

AIFF

AIFF - Wikipedia
Audio Interchange File Format - Wikipedia

Apple Lossless

Apple、iPodなどで採用されている音声可逆圧縮コーデック「Apple Lossless」をApache Licenseで公開 | OSDN Magazine
Apple Lossless - Wikipedia
Apple Lossless - Wikipedia
macosforge/alac: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
Apple Lossless Audio Codec

AAC

Via Licensing、High-Efficeincy AACのライセンス料を決定
Advanced Audio Coding (AAC) - Via Corp
License Fees - Via Corp
AAC License Fees – Standard Rate and Alternative Rate Structures - Via Corp
FAQ - the Alternative Rate Structure - Via Corp
AAC - Wikipedia
Advanced Audio Coding - Wikipedia
HE-AAC - Wikipedia
High-Efficiency Advanced Audio Coding - Wikipedia

MPEG-4 SP

MPEG-4 - Wikipedia
MPEG-4 - Wikipedia

AMR-WB+

AMR-WB+ - Wikipedia
Extended Adaptive Multi-Rate – Wideband - Wikipedia

AMR-WB

AMR-WB - Wikipedia
Adaptive Multi-Rate Wideband - Wikipedia

AMR

Adaptive Multi-Rate - Wikipedia
Adaptive Multi-Rate audio codec - Wikipedia

OpenAL

OpenAL: Cross Platform 3D Audio
OpenAL - Wikipedia
OpenAL - Wikipedia
openAL入門 - 1.音を鳴らそう! - すこしふしぎ.
NPE.blog: OpenAL

ドルビーデジタル(AC-3)

ドルビーデジタル - Wikipedia
ついにドルビーデジタル(AC-3)の特許権が消滅 - GIGAZINE
AC-3(ドルビーデジタル)の特許が失効 | スラド YRO

OSDN

オープンソースのDAWソフトウェア「Ardour 5.9」リリース | OSDN Magazine
KDEの新プロジェクト「Elisa Music Player」が早期版をリリース | OSDN Magazine

POSTD

オーディオアプリ開発でありがちな4つの間違い | プログラミング | POSTD

GitHub

C* Music Player
cmus/cmus: Small, fast and powerful console music player for Unix-like operating systems.
pytorch/audio: simple audio I/O for pytorch
Command-line cloud music player for Linux.
tizonia/tizonia-openmax-il: Command-line music player for Linux with Spotify, Google Play Music, YouTube, SoundCloud, Dirble and Deezer support.
zevv/bucklespring: Nostalgia bucklespring keyboard sound
keijiro/Lasp: Low-latency Audio Signal Processing plugin for Unity
みむみむ.net - Software
mimura1133/mm_STEP_M: STEP (タグエディタ) の派生版

Twitter

椚座 くにゅくにゅ/// 淳介さんのツイート: "G.729(VoIPなどで使われている音声圧縮アルゴリズム)に関して,関連していた特許のほとんどが存続期間満了となったことにより,2017年1月からロイアリティフリーになったと,パテントプールからの発表が https://t.co/Boly0QfWAL"
SiproLAB Telecom - patent pool creation and management for standardized telecommunication technologies
Rockridgeさんのツイート: "Fx54:デスクトップ版でサラウンド音声の再生をサポート。参照:https://t.co/tNwp96No0Z https://t.co/wV46pjQgkU / “1321502 – Support audio 5.1 on …” https://t.co/Qe9p0Z24fa"

七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter

Video

その他

ASCII.jp:まずは動画の構造について教えるぜ!【コーデック編】 (1/4)|エンコードテクニック虎の巻
Stagefright入門
VISIO-OpenMAX.vsd
Intel Quick Sync Video(QSV)を使ってみる ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
日本初となるUltra HD Blu-ray市販ソフトは夜景 | スラド
ASCII.jp:【動画比較】AMDのFluid Motionならアニメが60fpsでヌルヌル動く!! (1/2)|画面が滑らかになる! AMDの最新技術はココがスゴイ
動画の「テレシネ」「逆テレシネ」の意味と違い
IDTのフレーム速度変換ICは動き検出・補正・フレーム補間のアルゴリズムがカギ - セミコンポータル
Apple Safari、YouTubeの4K動画再生非対応に。YouTube、4K VP9エンコードのみに切り替え - PRONEWS
第700回:タイムラプス とは - ケータイ Watch Watch
オープンソースのマルチメディアフレームワーク「GStreamer 1.12」が公開 | OSDN Magazine
Windows 10プレビュー版、HDR映像のキャリブレーション機能を搭載 - PC Watch
Windows 10 RS5、屋外など非常に明るい場所で動画の明るさを自動調整 - PC Watch
デジタルでなくフィルムで撮影される『スター・ウォーズ』、その理由とは|WIRED.jp
動画エンコーダ屋さんと会話して少しわかった画質の話(PSNR / RD曲線 / BD-rate) - Qiita
Cinavia - Wikipedia
Cinavia - Wikipedia
WebCodecs と WebTransport でビデオチャット | blog.jxck.io
Intent to Implement WebCodecs - Google グループ
H.Sup18 : Signalling, backward compatibility and display adaptation for HDR/WCG video coding
H.Sup19 : Usage of video signal type code points

VA-API

ffmpeg

今日は遊ぶかーと思って, ffmpeg とか, VAAPI とか H264 とか MPEG2 とか見てた. slices, macroblocks,…
HWAccelIntro – FFmpeg
lu-zero/mfx_dispatch: Intel media sdk dispatcher
qsv 対応の ffmpeg をつくる | ニコラボ
俺の日記帳 第二冊目
LinuxでIntel QSVを使ったH.264ハードウェアエンコード(CentOS7+ffmpeg) | Kung Noi Blog
how to run ffmpeg qsv decoder?
謎のC言語ブログ: FFMPEG/libavcodec のインストール
謎のC言語ブログ: libavcodec による動画のサムネイル作成
ubuntuでessentiaを使う - Qiita
こたつつきみかん » libavcodec / libavformat を使ってみる 1
www.lifeaether.com/overtaker/blog/wp-content/uploads/2010/04/main.c
FFmpeg
FFmpeg ライブラリーを使った動画のデコード(C++ソースコード) | RVF/RC45 blog
ffmpegの使い方:tech.ckme.co.jp
FFmpeg APIで、さまざまな動画を操る - 前編 (1/5):CodeZine(コードジン)
FFmpeg APIで、さまざまな動画を操る - 後編 (1/5):CodeZine(コードジン)
FFmpeg: VA API Decoding
FFmpeg: libavcodec/api-example.c Source File
FFmpeg: doc/examples/decoding_encoding.c
Fedora23 : Intel 構成での VDPAU/VA-API による動画再生支援とか なんとか ネット。

libva

Source Code | 01.org
VA (Video Acceleration) API
[Libva] H.264 decoder simple example
The Libva Archives
gallium3d-xds2007.pdf
01org/libyami: Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
gbeauchesne/hwdecode-demos: Test programs to address various HW video decoding APIs like Broadcom Crystal HD, VA-API, VDPAU and XvBA
libva-1.3.1
MesaLib-10.2.7
mesa3d/mesa: Mesa 3D graphics library (mirror; no pull requests here please)

Mesa

SCons

SCons 2.3.6
https://raw.githubusercontent.com/shive/scons-test/master/test001-forwin/Makefile
Python Extension Packages for Windows - Christoph Gohlke
SCons - Wikipedia
SCons - Wikipedia, the free encyclopedia

TGSI

TGSI — Gallium 0.4 documentation
A Very Early Gallium3D TGSI Back-End For LLVM - Phoronix
Gallium3D: TGSI
Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h File Reference
Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h Source File
tgsi-specification.pdf

The Mesa 3D Graphics Library
Mesa FAQ
第51回 X,MesaそしてLLVM[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
Compiling and Installing
Mesa 3D - Wikipedia
Mesa (computer graphics) - Wikipedia, the free encyclopedia
Off-screen Rendering
Intel Is Making A High-Performance Software Rasterizer For Mesa - Phoronix
FadisさんはTwitterを使っています: "Intel、Mesaに新しいソフトウェアラスタライザOpenSWRを実装。GPUの無い環境でCPUを使ってOpenGLを動かすための物で、従来からあったLLVMpipeより格段に速いとのこと https://t.co/JFW2Ldte8j"
OpenGL 3.1 APIを実装した「Mesa 9.2」リリース | OSDN Magazine
Mesa3D のレンダラーの切り替え
Fadisさんのツイート: "Mesaからi915(2004年頃のIntel GPU)とr300g(RADEON9800とか)を外そうぜ、という議論がなされている模様。これらの為に今日ほぼ確実に備わっているGPUの機能の有無を調べて分岐が必要になっているのが理由 https://t.co/Nh4c3yArSI"
Mesa Developers Discuss Branching Off Old Drivers, Including R300g & i915 - Phoronix

libva drivers
libdrm-2.4.91
Index of /libdrm
DRM
すらりん日記 » Blog Archive » DRM/KMS についてメモ|No:4291|すらりん日記
Xorg Libraries
Fontconfig-2.13.0
libxcb-1.13
libXau-1.0.8
xorgproto-2018.4
util-macros-1.19.2
xcb-proto-1.13
Introduction to Xorg-7

Wikipedia

Graphics address remapping table - Wikipedia, the free encyclopedia
Video Acceleration API - Wikipedia, the free encyclopedia
Intel Quick Sync Video - Wikipedia, the free encyclopedia
Intel HD and Iris Graphics - Wikipedia, the free encyclopedia
ebuild - Wikipedia
Direct Rendering Infrastructure - Wikipedia
Direct Rendering Manager - Wikipedia
Free and open-source graphics device driver - Wikipedia
Mode setting - Wikipedia
VDPAU - Wikipedia
Nvidia PureVideo - Wikipedia
Nvidia NVENC - Wikipedia
Video Coding Engine - Wikipedia
Unified Video Decoder - Wikipedia

BSD

FreeBSD port overview
Intel_GPU - FreeBSD Wiki
Graphics - FreeBSD Wiki
Use linuxkpi in DRM - FreeBSD Wiki
freebsd/freebsd-base-graphics at drm-next-3.9
「NetBSD 7.0」リリース、Luaカーネルスクリプティングをサポート | OSDN Magazine
drm(7)
Linux KPI-Based DRM Modules Now Working On FreeBSD 11 - Phoronix
freedesktop/mesa-drm: Direct Rendering Manager headers and kernel modules
Graphics drivers and the BSDs [LWN.net]
FreeBSD kernel DRM device code: Main Page
drm(4) - NetBSD Manual Pages
DragonFly On-Line Manual Pages : drm(4)
FreeBSD DRI FAQ
XFree86-4 Direct Rendering on FreeBSD
Tips: FreeBSD DRI

LinuxでGPUの動画再生支援を用いる(主にDebian/Ubuntu向け) - kakurasan
VA-API - ArchWiki
vaapi
Index of /software/vaapi
media-libs/intel-hybrid-driver/intel-hybrid-driver-1.0.1.ebuild - chromiumos/overlays/chromiumos-overlay - Git at Google
hiro99ma blog: [rpi]画面に何か出してみよう (1)
第7章 Linuxカーネル仕様
ubuntuデスクトップ環境設定
Libva API Guide (master branch): Video Acceleration (VA) API
B-2.pdf
util_vaapi.c - chromiumos/platform/avtest_label_detect - Git at Google
【AviUtl】QSVを使用してハードウェアエンコードする方法【QSVEnc】
rigayaの日記兼メモ帳 実験: QSVでデコードしてみると?
「X.Org Server 1.17」リリース、Glamorの強化や汎用ドライバの統合などが行われる | OSDN Magazine
Nouveau - ArchWiki
VA-API - Phoronix
intel/media-driver
gnif/LookingGlass: An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.

Web

Theora

Theora.org :: downloads - Theora, video for everyone
Xiph.org - theora.git/summary
Theora - Wikipedia
Theora - Wikipedia
libtheora-1.1.1

WebM

Matroska

EBML

EBML ‐ 通信用語の基礎知識
Extensible Binary Meta Language - Wikipedia
libEBML by the Matroska team
EBML RFC (Draft) | Matroska

Matroska - Wikipedia
Matroska - Wikipedia, the free encyclopedia
Matroska形式ファイルを作成するためのツールセット「MKVToolNix 9.0」リリース | OSDN Magazine
VさんはTwitterを使っています: "vi/mkvparse: Simple Python matroska (mkv) reading library, also mkv2xml and xml2mkv https://t.co/qLgG57Hr1X MKV を XML にするのこれ便利"
klaxa/mkvserver_mk2: The streaming solution to end all streaming problems
「MKVToolNix v13.0.0」リリース | OSDN Magazine

The WebM Project | Welcome to the WebM Project
The WebM Project | Developer Overview
webmproject/libvpx
WebM - Wikipedia
WebM - Wikipedia, the free encyclopedia
Rockridgeさんのツイート: "Fx48:Cues要素がサポートされていない(規格外の)WebM形式動画でシークができない問題を修正。 / “657791 – Seeking in WebM files with no Cues element is not …” https://t.co/vHRfj2ztx5"
libvpx - Wikipedia
libvpx-1.5.0
yasm-1.3.0
Which-2.21 and Alternatives
Rockridgeさんのツイート: "Fx53:アルファチャンネル付きWebM動画をサポート。参照:https://t.co/eVMoQbwb6C / “944117 – Implement support for WebM Alpha” https://t.co/NFYvRKd3tM"
Windows 10の「Google Chrome」でHDRビデオの再生がサポートされるように - 窓の杜
Android P DP1: WiFi-RTT、カットアウト、複数のカメラ、アニメーションGIF、NNAPI 1.1

VP8

VP8 - Wikipedia
VP8 - Wikipedia

VP9

Vさんのツイート: ""リアルタイムVP9エンコーディング用のハードウェアプラットフォームとしてFPGAを選択" https://t.co/6Wb1QF2Vqt まじか Twitch 攻めてるな ... 。AWS FPGA サーバとか使ってるんだろうか。"
How VP9 delivers value for Twitch’s esports live streaming
fg118942さんのツイート: "VP9のリアルタイム1080p60エンコードとか出来るのか しかもx264より画質良いとか 将来的にはAV1でも出来るようになるのかな"
fg118942さんのツイート: "NGCodec VP9 Encoder - V01 https://t.co/Kr9JfxliOe これかな?"
Vさんのツイート: "多分それです。AWS F1 インスタンスにチュートリアルはそれを使うらしいです。… "
VP9 - Wikipedia
VP9 - Wikipedia
Microsoft、ブラウザEdgeでGoogleのWebMをサポート ~VP9とOpusの動画/音声コーデックを利用可能に - PC Watch
Announcing VP9 support coming to Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog

AV1

特許問題

yohさんのツイート: "https://t.co/l3XIGMF2VK https://t.co/n0M2IljRxi "AV1 License Terms" ファー"
Sisvel | We protect ideas - Sisvel announces the launch of its Video Coding Licensing Platform
Sisvel | We protect ideas - Wi-Fi - Introduction
yohさんのツイート: "少なくとも名乗りを上げてきた JVCKENWOOD, NTT, Orange, Philips, Toshiba IPR Solutions についてはAV1 AOM側との戦いが始まりそうだな... (VP9はGoogle単独だから割とどうでも良い)AOM側のライセンス条件に従うと同企業系からはAV1搭載絶望かもしらんな..."
Vさんのツイート: ""confirming there will be no content royalties but not ruling out royalties on software-based encoding." ソフトウェアエンコーダーからのロイヤリティ回収が目的ってことかな。"
yohさんのツイート: "字義通り解釈すると、正直もう少し事態は悪い気がしていて https://t.co/n0M2IljRxi コンシューマデバイス=デコード能力機器を対象とするようですね WebRTCのようなEnc/Decを要する通信ではなく、一方向動画配信先のWebブラウザも対象に含まれますね… https://t.co/roq8paoPcp"
Sisvel | We protect ideas - Wi-Fi - Introduction
yohさんのツイート: "SISVEL側から公開されているAV1 Licence Termをよむ限りAOM陣営との全面衝突不可避にしか見えないんだけど これまじで正面衝突するつもりなのか..."
yohさんのツイート: "AOM側の(どっかの)資料には「特許係争を戦っていくだけのカネは積んである」とあったので期待はできると思いますが 正直なところ技術的停滞は避けられない予感がします あとは政治力とか市場要因とかいろいろと...… "
Vさんのツイート: "そうだ Patent Retaliation (特許報復) だ。まだ訴えられてはいないから関係ないのかな。"
yohさんのツイート: "https://t.co/URfxPiRuob この時と変わってなければ(そしてたぶん変わってない) AV1利用者の誰かが訴えられた時点で、訴訟側への利用許諾解除を発動することになっていますね。問題があるとすれば、訴訟側が"実際には使っていない"場合はこの枠組みではさほど効力がないということでしょうね。… https://t.co/SUC60Kii1d"
AOM AV1コーデックと特許管理 - Qiita
yohさんのツイート: "と思います。戦争までの最短シナリオは「SISVEL側がAV1コーデック利用者の誰かを訴える」→「AOM側がSISVEL側(にいるパテント行使企業)への契約解除かつ対抗訴訟開始」→AOM陣営企業 vs SISVEL陣営企業 なのかなと...… "
dynamis (でゅなみす)さんのツイート: "Googleが特許ライセンスフリーだと主張してきたVP9とそれをベースにしたAV1について遂に特許プール作ったからみんなランセンス料払えよって言い始めた。 特許フリーでないことを認めるか、該当特許を全て回避するなり買い取るなり無効を訴えるなりの戦いが始まるね https://t.co/T3MqXLMaMR"
ビデオ符号化特許ライセンスプラットフォームを開始:時事ドットコム
dynamis (でゅなみす)さんのツイート: "2009年にGoogleがOn2買収してVP7の後継を無償提供する宣言してから10年、H264などより高品質コーデックとして共同開発したAV1の仕様が固まりハードウェア実装も始まったタイミング。 10年間黙ってたけど実はその技術の一部は俺達5社が特許持ってるから使うなら金払えって言い出したところですね。"
dynamis (でゅなみす)さんのツイート: "10年間黙ってて金になりそうなタイミングを見計らっていた5社はJVC KENWOOD, Philips, NTT, Orange, Toshiba IPR Solutionsと三社が日本企業。因みに日本からもSOCIONEXTなどはAoMに加盟して特許フリー動画コーデック支援側に回っており日本の特許保有者は皆同じというわけではない。"
dynamis (でゅなみす)さんのツイート: "VP7からVP9はあくまでもGoogleが一社で勝手に作ってるコーデック状態だったしハードウェアサポート等も少なく特許あるよって言えば回避する実装に変更された。 AV1ではIntel, Nvidiaなどハード実装側も加わり仕様確定させて変更しにくくなったタイミングを狙ってきたのは明らかなのよね。"
dynamis (でゅなみす)さんのツイート: "日本企業が多いのは単に旧来のマルチメディア企業と最近のネット企業という異なる時代の対立の構図になると日本が技術開発に強かった時代があったからとか、Googleなどと争う意志を持てる企業だからとか、主要ビジネスの成長が見込めず既存知財は何としても有効活用したいとかそんなところ?"
dynamis (でゅなみす)さんのツイート: "一番男前な対応はIntelなどSoCベンダー側がハードにかかる部分は全負担、ソフト側はH264でCiscoがやったようにGoogleなどがダウンロード可能なバイナリーを全CPUとOS向け(多分iOS以外)に配布して肩代わり。 一番乱暴なのは特許無効訴訟で全面戦争しつつ実装側の変更を進めて実質無効化で黙殺。"
Makoto Kato ︎︎さんのツイート: "ソフトウェア特許は好きではないけど。 AV1の件で脊髄反射のように叩いてる人は、自由だと(提供会社が)言っているものがホントに問題ないと信じてるのかなぁと。個人的には裁判にならないと実際の真実なんてわからないとしか言えないでしょ。お互いに言い分あるだろうし"
Makoto Kato ︎︎さんのツイート: "言い換えれば、めんどくさいから検索会社がすべての特許買えばいいんじゃないの?お金あるでしょと思ってる"
動画圧縮技術「AV1」、知財管理のシズベルが特許リスト公開--オープンな方針に逆行 - CNET Japan

Qiita

AV1 specification を読む - Qiita
AOM AV1コーデックと特許管理 - Qiita
AV1コーデックメモ - Qiita

Wikipedia

Alliance for Open Media - Wikipedia, the free encyclopedia
AOMedia Video 1 - Wikipedia
AOMedia Video 1 - Wikipedia

@rockridge07

RockridgeさんはTwitterを使っています: "GoogleのVP9、CiscoのThor、MozillaのDaalaの各技術は、Alliance for Open Media(AOM)が開発するAV1コーデックに統合される。今後MozillaはAV1の開発に力を入れていくが、… https://t.co/16124oJfSr"
Rockridgeさんのツイート: "Mozillaが開発に参加するAV1コーデックは、VP9をベースに他のコーデックの技術を取り入れて改良を重ねたもの。解析ツール(AV1 Bitstream Analyzer)をEmscriptenにより変換して、Webブラウザ上で… https://t.co/etyrceHnDd"
Rockridgeさんのツイート: "AV1コーデックの解析ツール(AV1 Bitstream Analyzer)は、C言語からJavaScriptに変換されることでパフォーマンスの低下が生じる。だが、WebAssemblyに変換されれば問題はかなり解消されそうだ。 https://t.co/LGNXzzJfZn"
Rockridgeさんのツイート: "Fx55:AOMedia Video 1(AV1)形式の動画再生をサポート。 / “1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format” https://t.co/e8t9yVybrn"
1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format
Rockridgeさんのツイート: "Alliance for Open Media(AOM)に参加するMozillaとBitmovinが、AV1形式の動画とプレイヤーのデモを公開。Firefox Nightlyで閲覧可能。AV1はVP9やH.265/HEVCより25… https://t.co/KXxTpyGlHk"
AOM Analyzer
Vさんのツイート: "AV1 ビルドして、変換してみたけど恐ろしく遅い。全然コード読めてないのでなんともだが、リアルタイム向けの仕様とかあるんだろうか。"
Vさんのツイート: "今のところ AV1 は CPU 変換は現実的ではないというところまで把握した。"
Vさんのツイート: "WebRTC にのっていくのは早く行けるだろうけど、バッチで変換したりする場合はちょっと考える必要がある。"
Vさんのツイート: "あと Chrome が AV1 をいつ実装するのか、というのも追いかけられてないな。Firefox は何故か頑張ってる。"
Rockridgeさんのツイート: "AppleがAlliance for Open Mediaに加入。SafariがAV1をサポートする可能性が高まってきた。 / “Apple joins alliance to shrink your online videos…” https://t.co/QvTG9zNl9X"
Rockridgeさんのツイート: "AppleがAV1フォーマットをサポートすれば、ロイヤリティフリーな動画コーデックが広く普及することになる。Mozillaは約11年前から特許による負担のないメディアを勝ち取るべく闘ってきており、AV1の普及は勝利を意味する。 https://t.co/G7Gi42rUy3"
Rockridgeさんのツイート: "AV1は動画だけでなく静止画にも使え、同一サイズであればJPEGよりもかなり高画質となる。JPEGに取って代わるのは無理でも、WebPの後継フォーマットにはなれるかもしれない。 / “Photo format from Goog…” https://t.co/73dkRja6y0"
Rockridgeさんのツイート: "ISO/IECのワーキンググループであるMPEG、その議長であるLeonardo Chiariglione氏が、このまま手を拱いているとHEVCがAV1に負けてビジネスモデルが崩壊すると危機感をあらわにしている。 / “A cr…” https://t.co/8GITGNF9e7"
Rockridgeさんのツイート: "FacebookがAV1形式の動画をサポートすると発表。ただし2018年4月24日現在、Chrome Canaryでフラグを有効化しなければならず、Firefox Nightlyも未対応。参照:… https://t.co/Dl2IyXnz31"
Rockridgeさんのツイート: "AV1動画フォーマットでは、Chroma from Luma(CfL)と呼ばれる技法を導入し、キーフレームの圧縮に成功したという。 / “next generation video: Introducing AV1” https://t.co/NBKVcWHcGK"
Rockridgeさんのツイート: "AV1動画フォーマットでは、Constrained Directional Enhancement Filterと呼ばれる技法を導入して、ブロックノイズの低減に成功したという。 / “AV1: next generation v…” https://t.co/WCaZVg4Qxj"
Rockridgeさんのツイート: "MozillaがAV1動画フォーマットを推す理由は2つ。1つはロイヤリティフリーであること、もう1つは競合より約30%も圧縮率が高いことである。 / “Modern codecs like AV1 can bring bette…” https://t.co/MpAeOVLEQa"
Rockridgeさんのツイート: "Fx63:AV1コーデックのバージョン1.0.0を実装した。media.av1.enabledの設定をtrueにすると有効化される。 / “1445683 - Update aom” https://t.co/zIxTOiStZf"
Rockridgeさんのツイート: "AV1動画フォーマットの特徴を解説したスライド(PDF)。参照:https://t.co/zAXPAoKuqo / “Into the Depths: The Technical Details Behind AV1” https://t.co/BIcZnD7QKP"
Into the Depths: The Technical Details Behind AV1 - Mozilla Hacks - the Web developer blog
1_02_Egge.pdf
Rockridgeさんのツイート: "Fx65:Windows版で、AV1形式の動画再生がデフォルト有効化。 / “1452146 - Flip AV1 pref (media.av1.enabled) for Windows to true” https://t.co/boBODEvo7e"

@fg118942

fg118942さんのツイート: "これ注目されてるから速度も書いとく Ryzen 2400Gでhttps://t.co/OXfUoKhqhT のChimera-AV1-8bit-1920x1080-6736kbps.ivfのデコードで131fps出る libaomは66fpsなので倍近く早い… https://t.co/QsWUpPWIpo"
S3 Bucket Listing Generator
fg118942さんのツイート: "dav1dにAVX2の最適化がいくつか入ったらあっという間にlibaomよりデコード速度が速くなった。 シングルスレッドでもマルチスレッドでも。"
fg118942さんのツイート: "Video kodek AV1 nahradí nová nekompatibilní verze AV1.1.0 - https://t.co/jJnLNjQPSS https://t.co/V2XzRFPUrz AV1また仕様変わるのか グダグダやな"
fg118942さんのツイート: "6月に仕様が決まったあとに改善点が指摘されてたけど既に企業が運用を開始してるから変更を受け入れられないと突っぱねてたのに今になって改善を取り入れる感じか?"
OpenVisualCloud/SVT-AV1: Welcome to the GitHub repo for the SVT-AV1 encoder! To see a list of feature request and view what is planned for the SVT-AV1 encoder, visit our Trello page: http://bit.ly/SVT-AV1 Help us grow the community by subscribing to our SVT-AV1 mailing list! http://bit.ly/svt-av1-mailing
Vさんのツイート: "H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi https://t.co/JnENcRU9OG 2018 年 8 月の記事 VP9/AV1 が酷評されてた。結局設定次第なんだろうな、自分の印象だと実時間エンコードで VP9 はとてもキレイという印象だし。"
H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi
fg118942さんのツイート: "VP9はマルチスレッドでCPUあんまり使ってくれないから個人ユーザーには使い勝手が悪いなとは確かに思う YouTubeは動画を細かく分割して並列でエンコードしてるみたいだから問題ないんだろうけど https://t.co/MBYkP3KJ9w"
fg118942さんのツイート: "あとVP9にしろAV1にしろ心理的画質の調整はx264やx265ほど熱心にされてない印象だからベンチマークのスコアでは上回っていても目視だと負けることもあるかもしれないなあ"
fg118942さんのツイート: "自分は視力あんまり良くないし真面目に画質確認すると疲れるので最近はVMAFに頼りっきりですが"
fg118942さんのツイート: "AV1の特許で揉めてる問題、英語力がないので結局の所どういうことなのかよくわからない。"

Alliance for Open Media
Amazon、Netflix、Google、Microsoft、Mozillaなど大手7社が次世代のビデオフォーマットでオープンソース連盟を結成 | TechCrunch Japan
aomedia Git repositories - Git at Google
AOM-AV1-Video-Tech-meet-up.pdf
DASH playback of AV1 video in Firefox – Mozilla Hacks – the Web developer blog
Apple の AOM 加盟と AV1 への期待 | blog.jxck.io
GoogleやNetflixが主導するビデオコーデック「AV1」が正式リリース、4Kストリーミングの普及に期待 - GIGAZINE
The Alliance for Open Media Kickstarts Video Innovation Era with “AV1” Release – Alliance for Open Media
Get Started – Alliance for Open Media
HEVC/H.265対抗の動画コーデック「AV1」が正式リリース ~ロイヤリティフリーで利用可能、HEIF対抗も登場か - PC Watch
株式会社ソシオネクストさんのツイート: "【プレスリリース】クラウド上のFPGAを利⽤するAV1エンコーダーを実装 https://t.co/oqWIG8AUR3… "
sn_pr20180606_01j
yohさんのツイート: "10秒でわかるAV1エンコード:フレーム全体をばーっと再帰分割してIntra/Inter混合予測画像との差分値を量子化でざくざく切り捨てて複数シンボル算術符号化でぎゅぎゅーっと縮めて次フレーム予測のためにノイズ除去&エッジ復元して取っておくサイクルを繰り返します。"
Chromium Blog: Chrome 69 Beta: AV1 video decoder, CSS tricks, and more
FFmpeg 4.1 Brings AV1 Parser & Support For AV1 In MP4 - Phoronix
Microsoft、H.265より高画質な「AV1」コーデックのベータ提供開始 - PC Watch
dynamis (でゅなみす)さんのツイート: "気付いたらFirefoxのAV1対応がデフォルト音に切り替わってた。何故Chromeより有効化が遅くなったのかは知らないけど、2015年にAoMedia立ち上げたときからの取り組みだから4年越しの取り組みが適った感じですね https://t.co/SUnTVkPz7r"
Better web video with AV1 codec — Martian Chronicles, Evil Martians’ team blog
Firefox 67には次世代コーデック「AV1」の世界最速デコーダーが採用されている - GIGAZINE
Netflixが高性能&ロイヤリティフリーなコーデック「AV1」をAndroid向けアプリに採用 - GIGAZINE
Makoto Kato ︎︎さんはTwitterを使っています 「AV1のハードウェアデコードはこのバグを見ると、Chromiumの話やLinuxのVAAPIの話も含めて詳しい https://t.co/rmDC3ulEsO」 / Twitter
1652945 - Add AV1 hardware decoding support

AV2

AV1 Roadmap - Alliance for Open Media
AOMedia Research Symposium 2019 - Alliance for Open Media
AOMedia looks ahead to AV2 as AV1 picks up momentum - Rethink
AV2 - YoyaWiki Plus!

H.264

H.264の秘密 | コンピュータサイエンス | POSTD
Cisco の H.264 コーデックにより Web 上でのビデオの相互運用性が向上 | Mozilla Japan ブログ
MPEG LA、H.264の共同ライセンス体系を発表
US NEWSの裏を読む - ライセンス料を巡って揺れる次世代の動画標準「MPEG-4」:ITpro
CODECのライセンス料について - プロセッサ(DSP / ARM / MCU) - Japanese E2E (日本語コミュニティ) - TI E2E Community
本の虫: H.264の特許利用料、緩和さる
OpenH264
幅広く利用される動画圧縮コーデック「H.264/MPEG-4 AVC」はどうやって巨大なサイズのムービーを劇的に圧縮するのか? - GIGAZINE

HEVC

H.265 - Wikipedia
High Efficiency Video Coding - Wikipedia
ストリーミングやTV放送で動画圧縮技術「HEVC」の特許使用料が廃止 - PC Watch
Rockridgeさんのツイート: "「HEVC Advanceの特許ライセンス対象から『サブスクリプション』と『タイトルごと』のコンテンツ配信を除外することにより、HEVCの普及を更に加速」させるとの発表。AV1のプレッシャーが効いている。 / “HEVC Adv…” https://t.co/mKQxi5AWaf"
ハイフレームレート4Kライブ伝送を実現するHEVCコーデック。NTTが開発 - AV Watch
VさんはTwitterを使っています 「H.265 対応のハードウェアとそれを利用するソフトウェアの両方提供している NVIDIA に確認したら「ロイヤリティーは含まれていないので自分で解決してください」という回答だった。」 / Twitter
H.265/HEVC特許暗黒時代 - Qiita
10bit 精度で 1bit のズレも発生しないテストパターン動画(H.265)を作成する - toruのブログ

VVC

Versatile Video Coding (VVC) | JVET
FadisさんはTwitterを使っています 「H.265/HEVCの後継となる動画圧縮標準規格、H.266/VVCの規格が完成したらしい。H.266はH.265と比較して顕著な品質低下を伴わずにビットレートを半分に抑える事ができるとされている。また8Kの映像やHDR、全方位映像等をサポートする」 / Twitter
FadisさんはTwitterを使っています 「https://t.co/6Fab8kFoN0」 / Twitter
H.266/VVC Standard Finalized With ~50% Lower Size Compared To H.265 - Phoronix
「H.265/HEVC」と同じ画質でファイルサイズを50%削減できる次世代動画圧縮規格「H.266/VVC」が登場 - GIGAZINE
新ビデオコーディング標準H.266、H.265に対して50パーセントの効率向上を可能に
Catching Up with VVC - Streaming Learning Center

ProRes RAW

Final Cut Pro Xがアップデート、ProRes RAWと高度なクローズドキャプションが可能に - Apple (日本)
アップル、新フォーマット「ProRes RAW」採用のFinal Cut Pro X 10.4.1提供 - AV Watch
米アップル、ProRes RAWの搭載とクローズドキャプション機能を強化したFinal Cut Pro Xをアップデート - PRONEWS
Final Cut Pro X、新ビデオ形式「ProRes RAW」、高度な字幕ツールも | マイナビニュース
DJI ZENMUSE X7がApple ProRes RAWに対応|DJI JAPAN株式会社のプレスリリース
DJIのSuper35mm空撮カメラ「X7」がProRes RAWや14bit CinemaDNG対応。exFATも - AV Watch
DJI、Zenmuse X7のApple ProRes RAW対応を発表 - DRONE | ドローン専門メディア
ATOMOS、ProRes RAWに対応するSHOGUN INFERNOやSUMO 19のアップデートを発表 - PRONEWS

CinemaDNG

CinemaDNG - Wikipedia
CinemaDNG File Format
アドビ、高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 - CNET Japan
アドビ,高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 | 日経 xTECH(クロステック)
AtomosがCinemaDNG RAW記録を無償アップデート | cinema5D
Vol.081 開花の時を迎えたCinemaDNG | VIDEOJOURnAL on the web|ビデオジャーナル
DJI、高性能飛行モードを備える空撮用ドローン - CinemaDNG撮影も可能 | マイナビニュース
ユーザーはBMCCをどう評価しているか | Blackmagic Cinema Camera | Shuffle by COMMERCIAL PHOTO
Inspire 2 License Key —DJI

SRT

SRT Alliance - Open-source SRT - Secure Reliable Transport
Haivision/srt: Secure, Reliable, Transport
ffmpeg 4.0 に入った新しい映像伝送プロトコルSRTを試す - Qiita
緻密u 💮さんのツイート: "UDPを拡張したUDTを採用。ほう。UDPを通せれば通過できるんかな / “SRT Secure Reliable Transport とは何か? – meteor – Medium” https://t.co/B1RZmVlEXP"
SRT Secure Reliable Transport とは何か? – meteor – Medium

FFmpeg

FFmpeg
FFmpeg/FFmpeg: mirror of git://source.ffmpeg.org/ffmpeg.git
mabeijianxi/small-video-record: 利用FFmpeg视频录制微信小视频与其压缩处理
「FFmpeg 4.0」が公開 ~Windows XPのサポートは終了 - 窓の杜
「FFmpeg 4.0(Wu)」リリース | OSDN Magazine
「FFmpeg 4.1」が公開 ~“AV1”のパーサー、“ATRAC9”・“AVS2”デコーダーを追加 - 窓の杜
FFAStransというトランスコードソフトについて
FFmpeg API の使い方(1): デコードしてみる - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(2): シークやAVFrameなど - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(3): エンコードしてみる - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(4): エンコード他 - Fixstars Tech Blog /proc/cpuinfo

HandBrake

HandBrake: Open Source Video Transcoder
HandBrake/HandBrake: HandBrake's main development repository
【やじうまPC Watch】エンコードツール「Handbrake」公式サイトでマルウェアと置換される 〜2日から6日にかけダウンロードしたユーザーに対して開発者が注意喚起 - PC Watch
動画トランスコーダー「HandBrake 1.1」リリース | OSDN Magazine

VLC

Sending Patches VLC - VideoLAN Wiki
videolan/vlc: VLC media player - All pull requests are ignored, please follow https://wiki.videolan.org/Sending_Patches_VLC/

mpv

mpv.io
mpv-player/mpv: 🎥 Video player based on MPlayer/mplayer2

MPC-HC

Media Player Classic - Home Cinema
Home · MPC-HC
mpc-hc/mpc-hc: MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
定番プレーヤー「Media Player Classic Home Cinema(MPC-HC)」がついにv1.7.13で更新終了の見込み、原因は開発者不足 - GIGAZINE
MPC-BE download | SourceForge.net

DVD・Bluray

libbluray - VideoLAN
libdvdnav - VideoLAN
DVD Resources for Open Source Development

字幕

libass/libass: libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
xbmc/libass: libass for XBMC (win32 special)
SSA/ASS Subtitles | Matroska
SubStation Alpha - Wikipedia
ASS/SSA - 字幕制作
ASS 仕組みと書き方
SSA字幕作成リファレンス - faireal.net
a3r (ASS_Help3r) – ASS字幕タイミング・タイプセッティング支援
テキスト字幕ファイル(SRT, SSA, ASS)の利用方法 - 動画投稿Tips - アットウィキ

SmoothVideo Project

SmoothVideo Project (SVP) - motion estimated frame interpolation with any video player and frame doubling in real-time
GPU Compatibility - SmoothVideo Project (SVP) - frame doubling interpolation
SVP3:User manual - SmoothVideo Project (SVP) - frame doubling interpolation
【GPU】 Fluid MotionとSVP : ニッチなPCゲーマーの環境構築
便利ツール:SVP4(SmoothVideo Project):さんさんのブロマガ - ブロマガ
是々録画: SVP (SmoothVideo Project) で60fpsなヌルヌル体験
動画再生用にSVP4を導入。 - WebLog
動画がヌルヌルに!! 60fpsの倍速補完で滑らか再生してくれるフリーソフト 『Smooth Video Project』 | PCあれこれ探索
YouTubeも60fpsでヌルヌル動画視聴できるSVPの次期Verが来る! - 週刊アスキー
これがヲタクの生きる道! 動画のフレームレート補完
手持ちの動画を全部見返したくなるヌルヌル高画質化無料ソフトがヤバイ! - 週刊アスキー
備忘録:ソフトウェアで倍速補完ヌルヌル動画再生:気が向いたら何か書くtetのブロマガ - ブロマガ

GitHub

Bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
My View - MantisBT
jp9000/obs-studio: OBS - Free and open source software for live streaming and screen recording
rexbu/VisioninSDK: 类似faceu的移动端视频美颜、视频滤镜、人脸实时关键点追踪、实时整形(瘦脸大眼睛等)、动态贴纸
xl-player-developers/xl_player: A high performance Android media player, base on ffmpeg and MediaCodec, support VR video.
begeekmyfriend/yasea: RTMP live streaming client for Android
PipeWire
PipeWire/pipewire: Multimedia processing graphs
gopro/cineform-sdk: The CineForm video codec SDK.
tophf/parsemkv: Matroska .mkv file parser in PowerShell, doesn't require external tools, produces a hierarchical object tree, optionally pretty-prints to console

Twitter

vyv03354さんのツイート: "@d_toybox OpenH264はvideo要素で使うには機能不足らしく、WebRTCでしか使いません。AdobeのDRMプラグインを非DRM動画でも使おうという案もありましたが、Facebookで問題が起きて頓挫したようです。"
「Firefox 33」リリース、OpenH264をサポート | OSDN Magazine
Rockridgeさんのツイート: "動画コーデックのDaalaは改良が続けられており、過去18か月の間に、同一品質の動画のファイルサイズが50%減少した(2016年5月時点)。 / “Revisiting Daala Technology Demos” https://t.co/sWjpsN0dw1"
Rockridgeさんのツイート: "Fx49:動画再生時にSSSE3命令セットを使用してパフォーマンスを向上。SSSE3はIntel Core 2以降のCPUでサポートされているようだ。 / “1266491 – Use an ssse3 scaler for v…” https://t.co/WxN116hQBb"
Rockridgeさんのツイート: "Fx51:MP4メディアコンテナにVP9コーデックを格納した新規格をサポート。Netflixが提案し、Vimeoも関心を示している規格だとか。 / “1240412 – (vp9-in-mp4) Add VP9-in-MP4 s…” https://t.co/jev55QQrDY"
Kentaro Ebisawaさんのツイート: "コンシューマ機器と自動車に搭載するH.264の要件の違い。H.264は標準規約だが、共通する標準実装があるわけじゃないよ、と。 ... why supporting H.264 isn’t enough for automotive https://t.co/Qx5xkaGHGK"
videantis » 10 reasons why supporting H.264 isn’t enough for automotive Ethernet
Shirouzu Hiroaki(白水啓章)さんのツイート: "はい。私もデジタル信号処理の専門家ではないですが。 離散コサイン変換すると、元データが復元可能な全ての全周波数成分が得られるので、低周波成分だけ取り出すと低解像度用に使い回せます。 (まあ使い回さずとも、画素数が1/4なら負荷は25%ですが)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "「全ての全周波数」って、、、どうも「馬から落ちて落馬して」的な文章に気付かずに送ってしまうことが多い。… "
yohさんのツイート: "マルチメディア処理の{En,De,Trans}coderのソースコードがカオスで汚ったないのは それが現実世界を反映しているからです 100%仕様準拠したデータなんてお花畑だし 対向装置も100%どこか間違ってるし その一方で動作性能要望と互換性サポート要望は無限にくるんですよ"
Rockridgeさんのツイート: "特許で保護されたコーデックが私企業に独占された場合の危険性を訴えるSFというか寓話。独占が起きる前に声を上げ、行動を起こすべきだとする。MozillaはVR/ARを中心にWeb上で動画の役割が大きくなると見ているのだろう。 https://t.co/m6mZdF6y1i"
くいなちゃんさんのツイート: "Radar(レーダー) って略語だったのですね。 RAdio Detection And Ranging だそうです。 Codec(コーデック) も COder/DECoder の略語ですし、略語と知らずに使っている単語は結構ありそうですね。"
ゆきさんのツイート: "CORB shouldn't block application/dash+xml videos. https://t.co/5AZp6ox1m6"
2dae0c6dd178d1b0255a87164300a5d90f1bc033 - chromium/src - Git at Google

GPU

NVIDIA

Fadisさんのツイート: "GPUは複数のスレッドを束ねたSM単位で動いている為、Draw時にメッシュは1つのSMで処理できる塊(Meshlet)に分割してから空いているSMに割り当てられる。プリミティブが増減しない限りMeshletを毎回求めるのは無駄なので、静的に分割したMeshletをGPUに与えて性能向上を図ろう、というアイデアが出てくる"
Fadisさんのツイート: "NVIDIAが提案するメッシュシェーダは、任意のデータを読んで処理するMeshletを決定するタスクシェーダと任意のデータを読んでMeshlet毎にプリミティブを生成するメッシュシェーダの2つのシェーダからなり、頂点、テセレーション、ジオメトリシェーダと固定機能の頂点フェッチとカリングを置き換える"
Fadisさんのツイート: "NVIDIAによるメッシュシェーダの解説 https://t.co/c1su8LOMF3"
Introduction to Turing Mesh Shaders | NVIDIA Developer Blog
Fadisさんのツイート: "割といつもの事だけど、NVIDIAさんカジュアルに巨大な変更を拡張で突っ込んでくるなぁ"
Fadisさんのツイート: "NVIDIAさんの拡張が豪快すぎる事例としては、グラフィックパイプラインとは別に新しいパイプラインを追加してキューとメモリとシェーダのフォーマットだけVulkanと共有した物をVulkanの拡張と言い切ったレイトレーシング拡張なんてのもある https://t.co/jkWFTL0IMO"
VK_NV_ray_tracing(3)

GPUはいつ描画するのか? | ひにけにGD
OpenGLでの描画のタイミング 【OKWave】
OpenGLで描いて画像ファイル出力 【OKWave】
第三回_プレゼン資料(なるほど3Dグラフィック描画の仕組み).pdf
DrawCall (ドローコール) って何? 描画パフォーマンスを考える一つの指標を見る - Tech Inside Drecom
Fadisさんのツイート: "モバイルでなくても「プロセッサよりメモリが辛いからでっかいテクスチャを貼るな生成しろ」はイマドキのGPUだとよく言われるな"
Fadisさんのツイート: "とはいえ、デザインするマンにシェーダの知識がない体制で開発する場合、丹精込めて人間が描いた絵を貼るしかなくて、結果驚きのもっさりゲーム誕生する"
本の虫: ブラウザーのCanvas/WebGLのブラックリスト
本の虫: OpenGLドライバー品質の実情
本の虫: DolphinエミュレーターとOpenGLドライバー、栄光と恥
KaiGai Kohei 🌻さんのツイート: "write combined modeでGPU device memoryをマップしたら、memcpy()によるRAM2GPU転送でもソコソコの転送速度が出るという学びを得た。"
KaiGai Kohei 🌻さんのツイート: "しかも仮想アドレスを持っているという事は、NVME READコマンドをセットアップするのにScatter Gather Listを使えるという事になるのかな。 (今までは PRP List を使っていた)"
GPUドライバのテストフレームワーク「GraphicsFuzz 1.2」リリース | OSDN Magazine
CUDAでカーネル関数がスキップされる(ように見えた) - in neuro
Fadisさんのツイート: "PS4をエミュレートする猛者現る。OrbitalはCPUにx86の仮想化支援を使い、GPUに対する操作を全てVulkanの操作に変換してホストのGPUで実行するPS4エミュレータ。この為にAMD GPUのネイティブバイナリを入力としてSPIR-Vを出力するコンパイラを実装してしまったらしい https://t.co/K4eIs2r9CK"
Orbital: A PlayStation 4 Emulator That Is Emulating The PS4's AMD GPU Using Vulkan - Phoronix
島鉄雄さんのツイート: "ゲームはフレームバッファがトリプルで GPU のコマンドバッファもダブルバッファだから、入力した結果を見てるのは最低でも3~4フレームずれてる。 テレビ側は速い物でも遅延は1フレーム程度あるから、ゲーム機で遊んでても入力から4~5フレームの遅延がある。 ネットで数フレーム遅れても気にならない… https://t.co/LB2SEP3BPQ"
島鉄雄さんのツイート: "ちなみに、GPU のコマンドバッファをダブルにするのは CPU → プレイヤーの入力に応じて描画コマンド作成 GPU → 前のフレームの描画コマンドを実行 とする事で、CPU と GPU をフレームの頭から同時にスタート出来るから。"
島鉄雄さんのツイート: "ただ OpenGL ES 使うとコマンドバッファという概念がないから、みんな CPU で処理中に残り時間が無い所で Draw コールして処理落ちしまくってるかもしれない そうならないように、自前でコマンドバッファを作成して、フレームの頭から高速に Draw コールに変換して、CPU の処理は別スレッドでやるべし"
はじめてのにき(2019-04-10)
Intel HD Graphics - OSDev Wiki
Web High Level Shading Language | WebKit
「WSL 2」に「DirectX」が追加 ~将来的にはLinux GUIアプリへの対応も - 窓の杜

スライド

Next Gen Rendering Engine (BlinkOn 8) - Google スライド
今、我々は、 GUI の設計について 何を考えるべきか // Speaker Deck
Servo parallelism
Kentaro Haraさんのツイート: "「Blinkレンダリングエンジンって何やってるの?」という話をとてもわかりやすく解説したスライドがこちら(https://t.co/QFrSQLvgG0)。HTMLが届いてからそれがピクセルとして描画されるまでに舞台裏で何が起きてるのかがよくわかる。Blinkのレンダリングパイプラインはよくできてると思うのです。"
Life of a Pixel 2018 - Google スライド
Rockridgeさんのツイート: "WebRenderの特徴、長所と短所、従来のグラフィックスパイプラインとの違い、Pathfinderとの関係などについて述べたスライド。 / “201808-webrender” https://t.co/V5K6PkSyDv"
pcwalton.github.io/slides/201808-webrender/
ベジエ曲線のなめらかさの話 / Bézier Smoothness - Speaker Deck
グラフィックデザイナーやディレクターがhtmlコーディングの指示に関して注意すべきこと / Shiro Kuro Inc. // Speaker Deck
ふんいきがわかるCSSレイアウトの知識 | Money Forward Engineers' Blog
ふんいきがわかるCSSレイアウトのちしき // Speaker Deck
HTML6 でも CSS4 でもない Web 技術のゆくえ // Speaker Deck

外国語-1

Wikipedia

Keyboard layout - Wikipedia
AltGr key - Wikipedia
QWERTZ配列 - Wikipedia
Technical standards in Hong Kong - Wikipedia
British and American keyboards - Wikipedia
アラビア語キー配列 - Wikipedia
Arabic keyboard - Wikipedia
Dzongkha keyboard layout - Wikipedia
Hebrew keyboard - Wikipedia
InScript keyboard - Wikipedia
Urdu keyboard - Wikipedia
デッドキー - Wikipedia
Dead key - Wikipedia

Twitter

Mantarohさんのツイート: "1590円で改善。 やはり、英語圏(特にUS圏)に合わせた仕様が多いなとキーボード変えてから気が付く…… "
Urabe, Shyouheiさんのツイート: "英語キーボードの人気が根強いという言い方には違和感しかない。日本みたいな縮小する市場で独自規格を使い続けてる方が「根強い人気」という表現でしかるべきだろう。長期的にはJISキーボードが淘汰されていく流れは不可避だよ。製造コストが回収できなくなる日が来るもん。 https://t.co/nEbt598Is6"
「英語キーボード」の根強い人気が続く理由 - ITmedia NEWS
Urabe, Shyouheiさんのツイート: "日本の市場が縮小するのはつまるところ日本の人口が減るからなのであってこればかりは今から急に仕込んでも何十年単位でどうにもならん。キーボードなんてどんなマニアでも100枚200枚買うようなものでもない。人が減りゃそれだけ市場が縮むというだけの話だ。"
なかのん&マジックさんのツイート: "そーいや昔、USのAmazonでブラジルのポルトガル語キーボードって書いてるのを発見したんで取り寄せたら、ポルトガルのポルトガル語キーボード届きやがったことが。半分返すから勘弁して的なメールで折れたけど。面倒だったんで。"
なかのん&マジックさんのツイート: "ABNTじゃないキーボードなんて表面の刻印の問題だけで価値ねーよ……"
なかのん&マジックさんのツイート: "ちなみに、商品画像は超低解像度で見にくかったけど、左Shiftの横にABNT固有のキーがあるのは分かってたんで単純にその業者が悪い。"
なかのん&マジックさんのツイート: "Macに純正じゃないキーボード接続した時に左Shiftキーの横のキーを押ささせれるのはそういう訳です。"
なかのん&マジックさんのツイート: "左Shiftと右Shiftの横にABNTかJISの拡張キーが存在してるので、あの判定方法考えたヤツは頭良い。"
KIMATA RobertHisasiさんのツイート: "数字の種類、ラテン文字やキリル文字などと共に使われるアラビア数字とは別にアラビア文字と共にで使われるインド数字があり、さらにアラビア文字で数を表すアラビア文字記数法があるので素で混乱する"
なかのん&マジックさんのツイート: "アラビア語のキーボード見た時に最初に違和感あったのは、アラビア数字じゃないってことでした……"
なかのん&マジックさんのツイート: "タイ語レイアウトなんかもそうだけど、ASCIIの数字が常に入力されるとは限らないので、i18nなキー処理では入力される文字を見ておけば処理できるわけでもなく。"
なかのん&マジックさんのツイート: "FirefoxのCtrl+1とかは物理的に数字キーなので別条件も追加確認してユーザの意思をくみ取ろうとしてたりします。まだバグあるけど。"
なかのん&マジックさんのツイート: "あとはスペースキーですな、物理的にスペースキーかどうかを特別に確認してるのは。どのスペース文字か忘れたけど、ちょいちょいとASCIIの空白以外がデフォルトなレイアウトあります。"

外国語キーボード(ドイツ/スペイン/イギリス/イタリア/フランス/中国/韓国等) | 海外ハードウェアの購入なら「ユニポス」
Happy Hacking Keyboard | 特定の製品に関わらない問合せ | PFU
「chinese USB simplify」に該当する海外通販 - セカイモン
「chinese USB Traditional」に該当する海外通販 - セカイモン
「Inscript USB」に該当する海外通販 - セカイモン
「Urdu USB」に該当する海外通販 - セカイモン
「Arabic USB」に該当する海外通販 - セカイモン
「Persian USB」に該当する海外通販 - セカイモン

外国語-2

Wikipedia

列強 - Wikipedia
ネイティブスピーカーの数が多い言語の一覧 - Wikipedia
List of languages by number of native speakers - Wikipedia
InScript - Wikipedia
Help:特殊文字 - Wikipedia

中国語

中国語入力方法 - Wikipedia
Chinese input methods for computers - Wikipedia
簡体字 - Wikipedia
繁体字 - Wikipedia

英語 - Wikipedia
Help:多言語対応 (インド系文字) - Wikipedia

ヒンディー語

ヒンディー語 - Wikipedia
Hindi - Wikipedia
デーヴァナーガリー - Wikipedia
Devanagari - Wikipedia
Help:多言語対応 (インド系文字) - Wikipedia

スペイン語 - Wikipedia

アラビア語

アラビア語 - Wikipedia
Arabic - Wikipedia
アラビア文字 - Wikipedia
Arabic alphabet - Wikipedia
アラビア文字化 - Wikipedia

ポルトガル語 - Wikipedia

ロシア語

ロシア語 - Wikipedia
Russian language - Wikipedia
キリル文字 - Wikipedia
Cyrillic script - Wikipedia

ドイツ語 - Wikipedia
フランス語 - Wikipedia

韓国語

朝鮮語 - Wikipedia
Korean language - Wikipedia
ハングル - Wikipedia
Hangul - Wikipedia
Korean language and computers - Wikipedia

ペルシア語

ペルシア語 - Wikipedia
Persian language - Wikipedia
ペルシア文字 - Wikipedia
Persian alphabet - Wikipedia
ペルシア語のラテン文字表記法 - Wikipedia
Romanization of Persian - Wikipedia

ウルドゥー語

ウルドゥー語 - Wikipedia
Urdu - Wikipedia
ウルドゥー文字 - Wikipedia
Urdu alphabet - Wikipedia

イタリア語 - Wikipedia

中国語

Nakamura Masatoさんのツイート: "https://t.co/YjcO62WMny 中国語のセパレーター教えてもらった。こういうの聞けてよかった"
fxsjy/jieba: 结巴中文分词
kayaさんのツイート: "ITfReadingInformationUIElementって中国語のIMEで使われているReading Windowの為にあるっぽい。 https://t.co/uC7w9MwtGf https://t.co/12xcs2Wugv"
なかのんクエストさんのツイート: "最近、Reading windowを使う中国語のIME減りましたね。インライン表示の方がモダンなもの、という流れがあるのかな?と。候補ウインドウ(candidate window)はどうしようもないのでそのままだけど。"
パソコンで中国語を入力する方法 | どんと来い、中国語
中国語入力は「GOキーボード」が便利 - ケータイ Watch
中国語キーボードはどうやって漢字を打つのか 日本語なら「平仮名で入力 → 漢字変換」だけど……? - ねとらぼ
Qin★确认过眼神,都是干货★さんのツイート: "最近中国では、単語の漢字のあとにピンインを入れるのが流行ってる、これは決して発音がわからない人用ではなく、建前と本音を同時に表現する書き方で、よくsnsで使われる。例えば「不(gu)小(yi)心(de)」、建前は不小心(わざとじゃない)だけど,本音は故意的(わざと)。"
Qin★确认过眼神,都是干货★さんのツイート: "中国の入力アプリもキャッチアップが速くて、 太贵了(たかすぎ)と入力したら、建前提案してくれた。 用(tai)不(gui)惯(le) (使い慣れないなあ) といかにも1万元もするダブルsimのiphoneが買えるかもしれない口調で。wwww https://t.co/NfLivycZkp… https://t.co/zsw7wCD99n"
Qin★确认过眼神,都是干货★さんのツイート: "たしかにこの本音&建前、日本語でめっちゃ使えるじゃん。 例えば: 退(じ)勤(ゆう)時間 仕(かん)事(きん)中 とかかなあ ٩(๑❛ᴗ❛๑)۶ #本音と建前同時表示を使ってみよう"
Qin★确认过眼神,都是干货★さんのツイート: "多くの方々から、これは日本でもあるルビ遊びだと教えてくださって、 日本のルビもめっちゃ面白いじゃないですか。 キラキラネームもこちらの類に入りますかね。 なんか、SNSでの日中共通のなにかを発見した。^^"
Qin★确认过眼神,都是干货★さんのツイート: "日本語でも、ルビ遊びを提案してくれるような入力アプリとかないかなあ🤔"
ランダムな文字列っぽい「ji32k7au4a83」というパスワードが大量のユーザーに使われていた理由とは? - GIGAZINE

ドイツ語キーボードの設定と配列(Windows7) | ドイツ便利帳
ドイツ語のウムラウトやエスツェットを入力する方法 | ドイツ便利帳
海外「あれ?日本人や中国人はどうやってキーボードで文字入力してるんだ…?」  【海外の反応】 : 海外の万国反応記
Mac で ハングルを入力する方法 | Mac | 情報航海術 - Office-TAKU.com -
韓国語IME操作法 - かじりたてのハングル
ヒンディー語入力の方法
東外大言語モジュール
世界の国々で「2番目に最も使われている言語」は何なのか? - GIGAZINE
ハングル入力からの漢字入力の方法(Mac OS X) : みかんたろうのなまけたろ
なかのん&マジックさんのツイート: "SinharaのキーボードレイアウトはWindowsに標準で入ってるのに、バグ報告して来た人は、keyboard-driver (と言ってたけど実体はTIPだった)を入れないと、Sinharaは入力できないんだよって言ってて、混乱してる。"
なかのん&マジックさんのツイート: "Sinhalaだったか。"
なかのん&マジックさんのツイート: "インドもそうだったし、南アジアの文字入力周り、日中ほどのややこしさはなんだけど、とにかくサードパーティーの入力ソフト(IMEとかキーメッセージをフックしてどうこうしてたり)のデキが悪い感じ。"
UniversalDependencies/UD_English-EWT: English data
なかのん&マジックさんのツイート: "韓国語キーボードのスペースの両側にある特殊キーがかるけど、日本でハングルキーボードを入手するのが難しくてあきらめてる人も多いかもしれない。でもあのキーはMac JISキーボードの英数とかなキーと同じキーなのでMac用のキーボード買えば幸せになる人も居るのでは。 https://t.co/QLu2lPPXAo"
なかのん&マジックさんのツイート: "あと、ハングルのIMEの豆知識として、未確定文字列がある状態で矢印キーやEnter、スペースを押すと、未確定文字列の確定と押されたキー本来の処理と両方が必要になる。特にmacOSでテキストエディタ作ってるとハマりやすい。"
なかのん&マジックさんのツイート: "日本語IMEは基本的には確定だけ発生して、何も起きないとき多いからね。例えばEnterで確定するけど改行は入らない。"
なかのん&マジックさんのツイート: "Sinhala、Gujarati、VietnameseあたりもWindowsでIME使うのね。"

Per monitor DPI Aware

MS

アプリの高DPI(High DPI)対応について 第1回 ~ 高DPIとは ~ – 田中達彦のブログ
アプリの高DPI(High DPI)対応について 第2回 ~ アプリケーションの高DPIへの対応レベル ~ – 田中達彦のブログ
アプリの高DPI(High DPI)対応について 第3回 ~ マニフェストでアプリのDPI対応レベルを変更する ~ – 田中達彦のブログ
DPI に関連する API およびレジストリ設定
High DPI Desktop Application Development on Windows (Windows)
High DPI Scaling Improvements for Desktop Applications and “Mixed Mode” DPI Scaling in the Windows 10 Anniversary Update - Building Apps for WindowsBuilding Apps for Windows
SetProcessDpiAwareness function (Windows)
SetProcessDPIAware function (Windows)
High DPI Desktop Application Development on Windows (Windows)
DPI_AWARENESS enumeration (Windows)
DPI_AWARENESS_CONTEXT handle (Windows)
High DPI Reference (Windows)
DPI_AWARENESS_CONTEXT handle (Windows)
DPI_AWARENESS enumeration (Windows)
高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法 (Windows)

Adobe

HiDPI/Retina ディスプレイへのアドビ製品の対応状況
Hi DPI/Retina ディスプレイのサポートについて(Acrobat/Adobe Reader)
Windows 用 HiDPI サポート

ASCII.jp

ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
ASCII.jp:Windowsと高DPIディスプレイ【その1】 8までのDPIスケーリング (1/2)|Windows Info
ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
ASCII.jp:Windows 10+高解像度ディスプレイでのアプリのボケはRS2で解消される|Windows Info

Twitter

Rockridgeさんのツイート: "「Chomeはダメだが、FirefoxはPer Monitor DPI Awareで動作している」。Fx47で対応した。参照:https://t.co/iRImEajgkm / “【4K修行僧】Anniversary Updat…” https://t.co/K7QAEvo62O"
Rockridgeさんのツイート: "Fx55:Windows 10 Creators Update以降の環境ではPer-monitor v2を使用するようになった。参照:https://t.co/G95AH5RfFJ / “1354020 - Use per-mo…” https://t.co/yoP6qGItDI"
ぬるぽへさんのツイート: "windowsのフォントレンダリング、hiDPIなら気にならないみたいな論調あるけど1.5倍表示の4Kでも普通にかすんでるところがあるような"
なかのん&マジックさんのツイート: "Per-monitor DPI環境になると、ウインドウのリサイズが遅いアプリって本当に使いにくくなるな。"

Windows 8.1 で加わった Per-Monitor DPI と WPF での対応方法 | grabacr.nét
WPFにおけるPer-Monitor DPI対応の実装
Per-Monitor DPIに備える
WPFのPer-Monitor DPIサポート(その4)
高解像度厨が Windows 8.1 のスケーリングについてのお話を書いてみる。(3) ~ WPF で無理やりスケーリング対応する - モノトーンの伝説日記
Windows8/8.1時代のWin32プログラミング #sapporocpp
Windowsの画面スケーリングを きちんと理解しよう
Windows 8は、Win32 APIを置き換える
「秀丸エディタ」v8.69が正式公開、HD/4K混在マルチモニター環境での使い勝手が向上 - 窓の杜
【4K修行僧】Windowsの4Kスケーリング環境を検証する ~文字表示は美麗。ただし、非対応アプリも多数存在 - PC Watch
【4K修行僧】Anniversary Updateで4Kに優しくなったWindows 10 ~デスクトップアプリのダイナミックスケーリングにメス - PC Watch
Windowsの表示サイズ変更設定(HiDPI表示) | EIZO株式会社
本の虫: 高PPIディスプレイへの対応の難しさについて
Coding for High-DPI Displays in Windows | Dr Dobb's
GUI総合 - ソフトウェアエンジニアリング - Torutk
Creators Updateの不具合: T.Ishiiのソフト開発記
Tungsten開発者ブログ: Tungsten 2.04 リリース
kondoumh のブログ
Visual StudioでWindowsアプリケーションマニフェストのdpiAwareプロパティを「モニタごと」に設定するにはどうすればよいですか? [visual-studio-2013] | CODE Q&A [日本語]
高DPIのサポート
高 DPI のサポート - Windows Forms | Microsoft Docs
構成要素の追加 Windows フォーム | Microsoft Docs
.Net Framework 4.6 の高DPI対応でPer MonitorとPer Monitor V2を同時に設定する:るなおーびっと! - ブロマガ
AC01_PDF_TS18 - AC01_PDF_TS18.pdf
Per-Monitor DPI
Application manifest for Per Monitor V2
WPFのPer-Monitor DPIサポート(その4)
デスクトップアプリの高DPI対応 #2 – アプリ側の高DPI対応の概要 – nishy software (ja)

Direct2D

COM

C

C による COM オブジェクトへのアクセス
マクロによる DirectX COM メソッドの呼び出し
C 言語で IUnknown を実装します。
インターフェイスを使用したコードでコンパイルエラーがでる-VC++-水無瀬の部屋
MyComputer
ショートカットファイルの情報を読みとる
D3D9プロキシDLLの作り方 · GitHub

[連載! とことん VC++] 第 1 回 COM 再入門 ~ COM オブジェクトの基本的利用 (COM クライアントの実装) ~ 言語: C++
[連載! とことん VC++] 第 2 回 COM 再入門 ~ COM オブジェクトの基本的実装 ~ 言語: C++
[連載! とことん VC++] 第 10 回 ネイティブ VC++ におけるグラフィックス オーバービュー、および Direct2D の基本的な利用方法 言語: C++
COM(Component Object Model)についてふわっと学習していく その1 導入編 - Qiita
COM(Component Object Model)についてふわっと学習していく その2 本当に言語非依存なのか? - Qiita
COM プログラミング入門 - Web/DB プログラミング徹底解説
COM総合研究所 - COM研究室
C++ の仮想関数と VTable について - Qiita
仮想関数テーブル - Wikipedia
Component Object Model - Wikipedia
Component Object Model - Wikipedia
IUnknown - Wikipedia
IUnknown - Wikipedia

blog

UWP等

【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う): biac の それさえもおそらくは幸せな日々@nifty
WPFデスクトップアプリでDirect2Dを使う - Qiita
チーズバーガー中毒: SlimDXでDirect2DのWPF連携
Bitmap for WinForms
Shinichi Aoyagiさんのツイート: "こんなん見つけました。C++/CX+Direct2DをC#から呼び出してるみたい http://t.co/JlWz67mX RT @LeonAkasaka @ch3cooh 原因わかりました。C++/CX コンポーネント側で d2d1.lib にリンクしていると失敗します。"

Direct2D のDIP とやらがイマイチ判らない件 – Na___'s Diary?
Direct3DとDirect2D/DirectWriteの連携 | shobomalog
Direct2D/Direct2D とは - WisdomSoft
ぶびびんぶろぐ: Direct2Dの初期化と単純な描画コード
Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
Direct2Dで線の描画を行う - わびさびサンプルソース
ホイール欲しい ハンドル欲しい » Direct2D と Direct3D10.1 の下位互換
Direct2Dのお話。 古いブログ - ぐうたらずのーと (コンピュータ編)
DirectX - Windows10でDirect2Dのサンプルを動作させるには(39165)|teratail
Direct2D と Direct3D 11 の共有方法 | Mitsunagi Studio
Direct2DとWindows Imaging Component(WIC)で透過PNGを表示 - Gobble up pudding
[ 194_線の端点形状の変更と Direct2D ] - Mr.XRAY
Direct2Dが有効化されているWindowsでのフィルター
DirectX Graphics に関するメモ (Direct3D,Direct2D,DXGI ほか)
S.F. Blog:Direct2Dの紹介
Direct2DとGDIとDX10。 – ひねもす庵
JWWのDirect2DのON・OFF | なまあず日記style
デザイン至上主義プログラマー: Direct2Dを使った実用的アプリケーションサンプル
やはり、Direct2Dを使う: T.Ishiiのソフト開発記
LOHACO by ASKUL - 個人向け通販
本の虫: Direct2DがVistaにきたらしい
Direct2D 最強伝説!! | Crystal Dew Blog
Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中

Direct2D API の概要 (Windows)
Direct2D (Windows)
Direct2D について (Windows)
Direct2D - Wikipedia
Direct2D - Wikipedia
ASCII.jp:Windowsの画面表示を変えるDirect2DとDirectWrite (1/3)|あなたの知らないWindows
2次元汎用CADソフト「Jw_cad」が約3年ぶりのアップデート - 窓の杜
Wine 1.8公開 - Direct2D/DirectWriteをサポート | マイナビニュース
[C++] MFC アプリケーションのビューの中で、Direct2D を使用する 言語: C++
チュートリアル: MFC プロジェクトへの D2D オブジェクトの追加
Windows-universal-samples/Samples/D2DPhotoAdjustment at master · Microsoft/Windows-universal-samples
Direct2D キャンバスの使用 - RAD Studio
Source Tree: /Core/Direct2D/ (master) - FooEditEngine (git) - FooEditEngine - OSDN
Direct2DとDirectWriteハードウェアアクセラレーションを有効にしてFirefoxのグラフィックパフォーマンスを向上させてみよう | ライフハッカー[日本版]

DirectWrite

MacType

【DirectWrite】MacType v1.2016.830.0リリースと検証 - Segmentation fault
【DirectWrite】MacTypeまとめ(2016/11/17更新)【Window10】 - Segmentation fault
MacType非公式パッチ (MacType Unofficial Patch) - しらいとブログ
MacTypeが3年越しのアップデート – DirectWriteフック機能追加など – ミルログ
MacType非公式パッチが公開され、DirectWriteの設定変更が可能に - AndroPlus
DirectWrite のフォント レンダリングを改善する MacTypePatch | caretの日記 | スラド

Mozilla

WindowsのFirefoxのフォントレンダリングをきれいにする - Qiita
Makoto Kato ︎︎さんのツイート: "https://t.co/z90KTFvPe5 そもそもFirefoxのDirectWriteバックエンドはデフォルトの濃さで表示してないよ。これはJohnさんがMozillaにいたときにいろいろ拘って実装いれたやつだし"
グーグル、「Chrome 69」安定版に不鮮明なフォントの問題--原因を調査中 - CNET Japan

Google

「Google Chrome」DirectWriteを無効にする
DirectWrite Font Cache (obsolete) - The Chromium Projects
DirectWriteに対応しフォントレンダリングを強化した「Google Chrome 37」安定版がリリース - GIGAZINE
Windows版ChromeでDirectWriteを有効にしたところ日本語の文字が崩れた話 - 酢ろぐ!

エディタ

無償テキストエディター「Mery」v2.4.0のβ版、DirectWriteやPer-Monitor DPIに対応 - 窓の杜
Mery が DirectWrite に対応した - MoonNote
秀まるおのホームページ(サイトー企画)-秀丸エディタ Ver8.10 新機能の紹介(DirectWrite対応)
Sakura Editor / PatchUnicode / #482 DirectWrite
VimのDirectWriteの設定方法 — KaoriYa
DirectWriteで描画したい · Issue #262 · vim-jp/issues

DirectWrite の概要 (Windows)
DirectWrite (Windows)
DirectWrite のレンダリング (Windows)
DirectWrite の "Hello World" サンプル (Windows)
DirectWrite - Wikipedia
DirectWrite - Wikipedia
第113話:DirectWriteとフォントの固定化 - #モリトーク - 窓の杜
何故WindowsのフォントレンダリングがGDIからDirectWriteになろうとしているのか - Wicachi~Windows好きなmicachiの日記~
【私的】Windows フォントのテストだYO!【DirectWrite】 - CSSめも@Palm84
ぶびびんぶろぐ: 大まかな概念:DirectWriteを使った文字列描画
[要望] DirectWriteが有効な状態でのカスタムフォントの利用
ディオルティスタ: 【C++】 DirectX11 - Direct2D,DirectWriteによるテキストの描画
iceiv+putty
「WinFont+」開発記録 Part 6 - しらいとブログ
「WinFont+」開発記録 Part 7 - しらいとブログ

Vue.js

Vue.jsの仮想DOMと差分レンダリングの仕組み① - Adwaysエンジニアブログ
Vue.jsの仮想DOMと差分レンダリングの仕組み② - Adwaysエンジニアブログ
Vue.jsの仮想DOMと差分レンダリングの仕組み③ - Adwaysエンジニアブログ
Vonageにおけるマイクロフロントエンド - Yoav Yanovski氏のVue.JS Amsterdamでの講演より

GIGAZINE

ブラウザはどのようにコンテンツをレンダリングしているのか? - GIGAZINE
オンラインゲームはレイテンシを感じさせないゲームプレイをどのように実現しているのか? - GIGAZINE
Google ChromeにPCのバッテリー駆動時間を3割増やす「バッテリー節約機能」が実装される予定 - GIGAZINE
スマートフォンのバッテリーをより急速に消費させるのはどのようなウェブサイトなのか - GIGAZINE
macOS版Firefox 70は6割以上も電力消費量を削減することに成功している - GIGAZINE
GPUの脆弱性を利用すればブラウザ上に表示されたウェブページの内容を丸ごと盗むことが可能 - GIGAZINE
Google Chrome 78安定版リリース、CSS変数へのフォールバック機能や新たな実験の仕組みなどを搭載 - GIGAZINE
「Bootstrap 5」のアルファ版がリリース、脱jQueryやCSSカスタムプロパティの強化など - GIGAZINE

infoQ

Facebook、入力イベント処理を高速化するIsInputHandling APIを新たに提案
WorkerDOMはJavaScriptプログラミングにDOM並行処理を加える
Google ChromeのNever-Slow Mode
GitKraken開発者のHamid Shojaee氏に、Git GUI開発時の経験について聞く
CSS Grid Level 2, Subgridを採用
CSS ContainmentがWeb標準に
FacebookのCSS-in-JSアプローチ - Frank Yan氏のReact Conf 2019での講演より
なぜ私たちはCSSフレームワークを使わないのか - Scott Tolinksi氏、Reactive Conf
CSS Writing Modesが公式のWeb標準に
Recoil - Reactの新しい状態管理ライブラリ
Vue 3 Reactivity Internals - Vue.JS AmsterdamでのSarah Drasner氏の講演より
より速く、より小さなVue3が間もなく登場 - State of the Vuenion 2020でのEvan You氏の講演より
JotaiはReactの新しい小粒な状態管理ライブラリ
Cypress 5.xがテストの再試行とシャドウDOMサポートを追加
JAMstackの紹介

POSTD

恐竜に教える現代のCSS – Part 1 | POSTD
CSS Grid: One Layout, Multiple Ways | CSS-Tricks
恐竜に教える現代のCSS – Part 2 | POSTD
恐竜に教える現代のCSS – Part 3 | POSTD
私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | プログラミング | POSTD

Qiita

yobata / ピクポン pickupon CEOさんはTwitterを使っています: 「宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita現代のGUI開発において、必須となった宣言的UIというパラダイムシフトがあります。宣言的UIは、Facebook社が開発したReactに… https://t.co/PjuXBcC8FH https://t.co/i6DOEjSUTL」 / Twitter
宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
めくるめく粗挽きWebブラウザエンジンの世界 - Qiita
CSSセレクタの優先順位の計算方法 - Qiita

Twitter

mattnさんはTwitterを使っています: 「Electron の省リソースな代替。Chromium を使わない Ultralight というクロスプラットフォーム WebKit を使うことで軽く高速なデスクトップアプリケーションを作れるらしい。 / “GitHub - ImVexed/muon: GPU based Electron on a diet” https://t.co/ClsxXfNiEU」 / Twitter
ImVexed/muon: GPU based Electron on a diet
ryoheyさんはTwitterを使っています: 「SPA作るの好きだけど、ブラウザの再発明じゃんっていうのめちゃごもっともだし、かなり頑張って作らないとリクエスト多すぎてずっとグルグルしててつらいやつになるから、もっとブラウザでよしなにできればなぁ」 / Twitter
The Firefox UI is now built with Web Components - Brian Grinstead
seya ʕ•ᴥ•ʔさんはTwitterを使っています: 「ついにデザインにもlintな時代か https://t.co/oEtMzjRcDR」 / Twitter
Design Lint – Figma
なかのん&マジックさんのツイート: "Geckoはパフォーマンスに直結する、グラフィックのレンダリング部分とUIに関する部分はプラットフォーム依存なものの、レンダリングエンジンそのものにはほとんどifdefが入ってないので、プラットフォーム変わってもレイアウトは基本、変化しない。"
Fadisさんのツイート: "ゲームのプレイヤーが直接動かせる物が60fpsで応答していないとゲーマーさんはもっさりとした感触にすぐ気づいてしまうんだけど、背景でモクモクしてる煙とかが15fpsくらいで描かれてても案外バレないから、今時のゲームは画面内の物によってバラバラな頻度で描画を行うことがよくある"
Fadisさんのツイート: "問題は、低い頻度で描画されている物に高い頻度で描画されている物がぶつかってしまって、高い頻度で描画しなければならないものに格上げされる事がある点で、ある程度衝突を予測して格上げをしておかないとぶつかった瞬間からの数フレームの応答が悪くなる"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ブラウザの逐次レンダリングで、タップ押下位置のDOM要素が変化してから0.5秒くらいは、タップを無視する機能をつけてほしい。」 / Twitter
ドッグさんはTwitterを使っています 「SkRasterPipeline の最適化が Skia の描画の速さの理由らしい https://t.co/rwmNeGXdke」 / Twitter
skia/SkRasterPipeline_opts.h at master · google/skia
uint256_tさんはTwitterを使っています 「TeXのコンパイルが遅いのって、何が理由なのですか」 / Twitter
画力・博士号さんはTwitterを使っています 「@uint256_t プロファイリングして調べたわけではないですが,組版処理アルゴリズム上段落を組み上げるときに行を分ける箇所を選択する処理で少なくとも O(n²) 以上の計算量を要し,典型的なケースでも線型ほどには良くならないので,そこがボトルネックになりそうには思います」 / Twitter
uint256_tさんはTwitterを使っています 「@bd_gfngfn なるほど. (そういえばブラウザを作っていたときに同じようなことで悩んでいた気がします)」 / Twitter
ヨコヤマ(横山哲也)さんはTwitterを使っています 「むかしのモニターが黒背景なのは、ベクタースキャンの名残。でも、VT-100の時点で白背景も設定できた。ウィンドウが白背景なのはPARCの人たちが「紙は白い」と主張したから。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「黒背景白文字 vs. 白背景黒文字、歴史的背景が気になるというか。 昔のモニタが黒背景なのは、滲み等考えるとそのほうが読みやすいから? ウィンドウ環境で白背景黒文字へ移行したのには、PCの場合(DTP前提の)WYSIWYGもあるだろうけど、Mac以前からあるワークステーションもそういう理由だったの?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「1964年に System/360 とともに発表されたビデオターミナルを見ると、2250 はベクタースキャンで 2260 はラスタースキャンだったのか。後者は音響遅延回路(管?)を使って描画内容を記憶していたと https://t.co/8Q5ZhnYHRP」 / Twitter
IBM 2260 - Wikipedia
ShigeyaさんはTwitterを使っています 「@n_soda @yume_piece1010 @kazuho black on white は Xerox Alto (1973)とかあの筋のものとP ERQ(1980年頃)とか、Symoblics(これも1980年頃)ぐらいしかなかったと思います。Altoが圧倒的に先 https://t.co/AqZT1SLhkS」 / Twitter
PERQ - Wikipedia
sumimさんはTwitterを使っています 「@shigeyas @n_soda @yume_piece1010 @kazuho Altoも1968年のNLSの模倣なので、これが今のblack-on-whiteの元ですね。NLSでは通常のwhite-on-blackの画面をビデオカメラで撮影し、それを反転出力していました(参考→https://t.co/6PdauZLfIr ) 切り替え可でblack-on-whiteの方が好まれたらしいですが肝心の何故そうしたかは分かりませんでした^^;」 / Twitter
The Mother of All Demos, presented by Douglas Engelbart (1968) - YouTube

Web-Spec

その他

ネット「兵器化」の恐れ、ソーシャル規制をWWW設計者が訴え
www.webapi.link
RFC8174「RFC 2119のキーワードにおける大文字と小文字の曖昧性」 - ASnoKaze blog
今すぐ知っておくべき!モダンな10のWeb技術 | ガジェット通信
連載 | WEB標準化動向 | HTML5Experts.jp
Web標準化という仕事、そしてWebの今後について、W3Cの中の人に聞いてきた | HTML5Experts.jp
Web 標準化のフィードバックサイクルを円滑にする Origin Trials について | blog.jxck.io
Webシステムにおけるオートファジー構想 - 人間とウェブの未来
Web Platform ... What is it ? (Webプラットフォームのつくり方) // Speaker Deck
won't fix: オープンソースな製品でどうセキュリティバグをハンドルするか?
Monthly Web の作り方 2018 年版 | blog.jxck.io
Webの健全性を守る主役は果たして誰なのか - WebStudio

IETF

IETF Documents
RFC INDEX
https://www.ietf.org/download/rfc-index.txt
https://www.ietf.org/rfc/std-index.txt

IANA

IANA — Protocol Registries
IANA — Status of IETF Internet Drafts

WHATWG

Developer Edition

WHATWG HTML Standard Developer Editionの話 - 水底の血
HTML Standard
HTML Standard 日本語訳

Web Hypertext Application Technology Working Group
Web Hypertext Application Technology Working Group Specifications
HTML Standard
The WHATWG Blog — Further working mode changes
WHATWG Working Mode Changes | W3C Blog
WHATWG の IPR Policy と Governance Structure | blog.jxck.io
Rockridgeさんのツイート: "WHATWGが「運営グループ」と称するいわば舵取りの機関を設置。Apple/Google/Microsoft/Mozillaから1名ずつ代表者が参加する。参照:https://t.co/TNOkM6NmRu / “The WHA…” https://t.co/uLzomrlWqK"
W3CからのWHATWGに関するアナウンスメントについてのメモ - 水底の血
The WHATWG Blog — Changing the copyright license for Living Standards
Makoto Kato ︎︎さんのツイート: "WHATWGのコントリビュータをどう増やすかみたいな議論になって、good first bugについての話になったらしい。そのgood first bugは仕様に明記られてないけど大概こんな動作だからそれをドキュメントに落とすだけらしいけど、ハードル高いよね"
DOM Standard

水底の血

Infra Living Standardという話 - 水底の血
W3C文書を読むときに気をつけたい7つのポイント(超簡易版) - 水底の血
Obsolete Recommendationという話 - 水底の血
ウェブ標準仕様の翻訳についてつらつらと書いてみた。 - 水底の血

HTML5日本コミュニティグループ

HTML5 Japanese Community Group
W3C User Account Management
public-html5jp@w3.org Mail Archives
public-html-ig-jp@w3.org Mail Archives
HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-01-19 (public-html5jp@w3.org from January 2015)
Re: HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-02-02 (public-html5jp@w3.org from February 2015)
「HTML5日本コミュニティグループ」をW3Cが設立。参加者募集中! - Publickey

Web Platform Incubator Community Group

Web Platform Incubator Community Group

Web Education Community Group

Web Education Community Group
Web標準カリキュラムがW3Cに移動 | Web標準Blog | ミツエーリンクス

Dataset Exchange Working Group

Dataset Exchange Working Group Is Making Progress | W3C Blog
Dataset Exchange WG Charter
Data Catalog Vocabulary (DCAT) - Version 2

PING

Privacy Anti-Patterns in Standards | W3C Blog
W3C Privacy Activity
w3cping/administrivia: repository to track meta-work. PING webpages are maintained at https://github.com/w3c/ping
DRAFT Privacy Interest Group Charter
w3c/ping: Privacy Interest Group webpages (only) - working docs are in https://github.com/w3cping

W3C

All Standards and Drafts - W3C
Celebrating the anniversary of the Web | W3C Blog
World Wide Web Consortium (W3C)
Web Publications
Packaged Web Publications
Web Annotation Extensions for Web Publications
World Wide Web Consortium Process Document
W3C Strategic Highlights: Strengthening the Core of the Web (Web Performance) | W3C Blog
Hadley Beemanさんのツイート: "We just finished discussing the evolution of #featurepolicy with @triblondon. Should it split into 3? • sandboxing behaviours within an iframe • imposing conditions on the document itself, and • dealing with permission-requiring features @w3ctag https://t.co/42z4jvgINJ"
Feature policy evolution · Issue #341 · w3ctag/design-reviews
W3C Technical Architecture Group
W3C and WHATWG to work together to advance the open Web platform | W3C Blog
W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM | W3C News
HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - Publickey
W3CとWHATWGが共同でHTMLの仕様を策定するようです🤝🎉 | フロントエンドBlog | ミツエーリンクス
HTML標準仕様の策定についてW3CとWHATWGが合意 今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - ITmedia NEWS

MDN Web Docs

開発者向けのWeb技術 | MDN
Web technology for developers | MDN
Rockridgeさんのツイート: "MozillaがMicrosoft/Google/W3C/Samsung Internetと合意し、Web開発者向けのドキュメントを将来的にMDN Web Docsに集約させることになった。 / “Mozilla brings …” https://t.co/uZJ6lLi65U"
Web開発に関するドキュメントがMDN Web Docsへ集約されることが発表になりました | フロントエンドBlog | ミツエーリンクス
Tracking documentation issues | MDN
Microsoft、Google、MozillaがWebドキュメントで提携へ
Rockridgeさんのツイート: "MDN Web Docsには毎月延べ780万人の訪問者がいて、この訪問者数は年率51%の成長を見せているという。 / “WeeklyUpdates/EmergingTechnology - MozillaWiki” https://t.co/TkrPigKuJj"
Google Developers Japan: ウェブ標準のドキュメント統合に向けて
Rockridgeさんのツイート: "MDN Web Docs内の記事に掲載されているブラウザ互換性テーブルのうち、Microsoft Edgeに関する部分は、現在、Microsoftのスタッフが直接確認して編集しているらしい。 / “Documenting the…” https://t.co/Lssjh6WrAx"
mdn/browser-compat-data: This repository contains compatibility data for Web technologies as displayed on MDN
Rockridgeさんのツイート: "MDN Web Docsで、特定の仕様やAPIのブラウザ実装状況を示す表(ブラウザ互換性テーブル)のデザインが、まもなく新しいものに変わる。 / “MDN Web Docsさんのツイート: "🎉 New compatibilit…” https://t.co/w04i0ceVLZ"
MDN Web Docsさんのツイート: "🎉 New compatibility tables are coming to MDN TOMORROW! 🎉 After several months of beta testing our new, clearer (more colorful) browser compat tables, we're pushing them live for all tomorrow! What do you think of them? https://t.co/7ES9kZ0fwE… https://t.co/Yf5njTa5cu"
Rockridgeさんのツイート: "2018年のMDN Web Docsでは、ブラウザ互換性テーブルのデータをJSONに移す作業を完成させ、インタラクティブなサンプルも対象と数を増やす。なお、互換性テーブルの編集にはMicrosoft/Google/Samsungの… https://t.co/XTW7px4Gpe"
Rockridgeさんのツイート: "2017年10月に実施されたMDN Web DocsのAWS移行に伴い、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontも利用するようになった。現在では大半のコンテンツがCloudFront経由… https://t.co/4FPDHDNDS2"
Rockridgeさんのツイート: "2017年11月、MDN Web DocsのAWS移行時にいったん失われたgzip圧縮が復活し、ページの読込時間が6%短縮されたという。 / “Kuma Report, November 2017 · Mozilla Marke…” https://t.co/ZEQiipC4mf"
Rockridgeさんのツイート: "MDN Web Docsのブラウザ互換性テーブルの基になっているデータは、npmパッケージの形式でも公開されるため、ユーザーが再利用・加工することが可能だ。参照:https://t.co/oDcsJTEevj / “MDN br…” https://t.co/I60YNPvfmY"
MDN Web Docs日本語版と英語版の日付を比較するブックマークレット - 水底の血
<blink>: 点滅文字列要素 (廃止) - HTML | MDN
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「MDNはWikiの開発やメンテが全く追いついてなかったけど、DevRelチームもいなくなり関係者の縮小を受けてどうするのかと思っていたら、Wiki止めてGithubでコンテンツ管理する方向に変わるらしい。 世界最大規模のWikiが無くなる。 https://t.co/Zj2HVyspqs」 / Twitter
MDN Web Docs: Editorial strategy and community participation - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「翻訳周りの環境には(翻訳サポートの為の機能が詰め込まれていたので)かなり影響がありそうな気がするけどどうなるんだろう。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MDNの新しいサーバーってこのコードか https://t.co/hGFS5WJ3TK」 / Twitter
mdn/yari: Next-gen MDN platform

Mozilla

Twitter

なかのん&マジックさんのツイート: "結局、仕様として汚くてもブラウザ間でうまく動くものが良いってのをブラウザ開発者はみんな、肌で感じてるからであって。たとえば、DOM Event周りだとChrome/Blinkに多々文句言いたいことはあるんだけど、世のWeb開発者はそれを望んでいないというつらすぎる現実。"
なかのん&マジックさんのツイート: "対抗ブラウザの開発者として「つらい」のではなく、仕様書に多少なりとも関わってる人間として「つらい」現実。はっきり言うと罵倒するような言葉になるので控えておく。"
なかのん&マジックさんのツイート: "Webの仕様って結局、ある一定の母数のダメな開発者が勘違いしてたことを仕様としてどうにかまとめてしまうなりなんなりしないといけないんだよな。悪貨が良貨を駆逐するを地でいってる世界。ただ、良貨をぶっ壊さないようにしなければいけないというオマケもついてる。"
なかのん&マジックさんのツイート: "とりあえず、忘れてたIssueをひとつ登録しておいた。予想はしてたけど、本当に救いがたいWeb開発者が世界には居てるわけで…… / Needs alternative WheelEvent.deltaMode, WheelEvent.delat(X|Y|Z) · Issue #181 · w3c/uievents https://t.co/UVBYf0M8Md"
なかのん&マジックさんのツイート: "普通は仕様書じゃなくてもhttps://t.co/YcIWwdP3JL(X|Y|Z)の値はWheelEvent.deltaModeの値によって意味が変わると書いてあるはずで、一切説明文を読まずにコード書かない限り、そしてそれをmacOSだけか、Firefox以外のみでテストしない限りはこれらの属性がピクセル値だなんて思うわけもないんだよなぁ"
なかのん&マジックさんのツイート: "記憶が曖昧だけど、ChromeもWindows版で、ページ単位でのスクロールに設定してると、WheelEvent.deltaModeがWheelEvent.DOM_DELTA_PAGEになるんだよ。"
なかのん&マジックさんのツイート: "とりあえず、このレベルの開発者にはさすがにWeb界隈から退場していただきたい……"
なかのん&マジックさんのツイート: "とりあえず、ヤバい臭いは実装時からしてたんで、あらかじめMDNで詳しいドキュメントを用意しててもこれなので、バカの先回りは不可能という結論。"
Andreas Bovensさんのツイート: "Starting with Firefox 61, touchstart and touchmove event listeners are passive by default, making touch scrolling faster on Firefox for Android. https://t.co/h8iYMK5bAV"
Touch event listeners are now passive by default, making scrolling faster on mobile | Firefox Site Compatibility
なかのん&マジックさんのツイート: "ん?マジで?そんなこと許されるのか?"
なかのん&マジックさんのツイート: "Event.preventDefault()を呼ばないのに、EventTarget.addEventListener()でpassiveにしてないWebアプリは多そう。 https://t.co/PSd80k3sCf"
EventTarget.addEventListener() - Web APIs | MDN
なかのん&マジックさんのツイート: "そう考えると、フレームワークはブラウザの動作速度の最適化は難しいな。どういう風に今の所やってんだろ。"
なかのん&マジックさんのツイート: "いやー、本当にまとめてくれててありがたい。 #もずでぶ https://t.co/HsoHIPFoOJ"
近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
なかのん&マジックさんのツイート: "non-printable keyを非表示キーと訳したのか。使ってて思うけど適当な訳語がなさ過ぎ。"
モバイル上のスクロールを高速化するため、タッチイベントリスナーが標準で passive となりました | Firefox サイト互換性情報

ウェブの知識をスマートオン! — Mozilla
ドキュメント | Firefox サイト互換性情報
トップレベルウィンドウ上のデータ URL 遷移はブロックされるようになります | Firefox サイト互換性情報
安全なサイトに埋め込まれたプラグイン内部での安全でないコンテンツの読み込みが廃止予定となりました | Firefox サイト互換性情報
mozilla-japan/translation: Mozilla 関連のドキュメント翻訳リクエストとステータス管理
バージョン別にドキュメントを参照 | Firefox サイト互換性情報
Rockridgeさんのツイート: "Mozillaが考えるWeb互換性問題の発生原因について。W3Cが仕様化したAPIすべてを実装したブラウザが存在しない中、Web開発者の平均経験年数は低下し、開発に使用するブラウザもChromeに偏っている。 / “Make t…” https://t.co/lTA1qIzoWO"
Make the Web Work For Everyone – Mozilla Hacks – the Web developer blog
Compatibility/Unshippables - MozillaWiki
ウェブページ内での FTP リソースの読み込みが許容されなくなりました | Firefox サイト互換性情報
近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
::selection 疑似要素の接頭辞が外れました | Firefox サイト互換性情報
今後 IME 変換中にも keydown、keyup イベントが発生するようになります | Firefox サイト互換性情報
Application Cache が安全でないサイトでは使用できなくなりました | Firefox サイト互換性情報
Firefox 60 ESR では Service Worker とプッシュ通知が無効化されます | Firefox サイト互換性情報
環境光・近接センサー API が無効化されました | Firefox サイト互換性情報
ほとんどの非標準 CSS display 値が廃止されました | Firefox サイト互換性情報
<meta http-equiv> による Cookie の設定が許可されなくなります | Firefox サイト互換性情報
Symantec、GeoTrust、RapidSSL、Thawte、Verisign 証明書への信頼が 2018 年 10 月にすべて失われます (影響あり) | Firefox サイト互換性情報
getComputedStyle() がスタイルを取得できない場合に null を返さないようになりました | Firefox サイト互換性情報
display:-moz-box と display:-moz-inline-box が廃止予定となりました | Firefox サイト互換性情報
navigator.platform が 64 ビット版 Firefox 上でも "Win32" を返すようになりました | Firefox サイト互換性情報
window.event が互換性のため追加されましたが、一部のブラウザー判別に影響があります (影響あり) | Firefox サイト互換性情報
window.open の noopener オプションが他のウィンドウ特性に影響しなくなりました | Firefox サイト互換性情報
window.event、Event.returnValue への対応が追加されました (影響あり) | Firefox サイト互換性情報
<table> のサイズと位置が <caption> を計算に入れるようになりました | Firefox サイト互換性情報
Fullscreen API の接頭辞が外れました | Firefox サイト互換性情報
window.open() がイベントごとに一度しか呼び出せなくなりました | Firefox サイト互換性情報
サードパーティトラッキング Cookie が初期設定でブロックされるようになりました (影響あり) | Firefox サイト互換性情報

和訳

ウェブ関連仕様 日本語訳
triple-underscore/triple-underscore.github.io: Japanese translations of various web spec.
RFC日本語版リスト
Web関連技術の仕様書邦訳
W3C仕様書などのまとめ【保存版】 | W3C仕様書関連の文書や日本語訳をまとめてみた。

Twitter

Jxckさんのツイート: "ようするに WICG ってのは W3C の敷居が高すぎるけど、 Web 標準に対して物申したい人は、ここ https://t.co/rT2sMRVIwM に雑に投げてくれれば、中の人がうまいことハンドリングしてくれるよっていうこと。 #w3ctagdevmeetup"
WICG
vyv03354さんのツイート: "@piro_or @momdo_ webkitMatchesSelectorに至ってはDOM Standardで規定されています。 https://t.co/GVLjPUccxO 今ではwebkitプレフィックス付き==非標準とは限りません。"
vyv03354さんのツイート: "@piro_or @momdo_ 経緯はこちらをご覧ください。 https://t.co/lMO8Pq4YJj DOM Specへの追加を推したのはbzですね。"
vyv03354さんのツイート: "@piro_or @momdo_ navaigator.appNameは固定文字列"Netscape"を返せとか。 https://t.co/D0cY5F5sgR 自分より年下の人に自虐的に老人とか自称されると何とも言えない複雑な気分になりますね。"
Rockridgeさんのツイート: "2017年11月、W3Cの"Improving Web Advertising Business Group"が結成された。オンライン広告のユーザー体験を改善し、有用性とプライバシー・安全性とのバランスを取る方法を模索していくとい… https://t.co/jVUW29c7VW"
vyv03354さんのツイート: "https://t.co/J7klkTDNAG たぶん @momdo_ 氏あたりには今さらの話だと思うけど、W3CとWHATWGの協調する気のなさほんとひどい"
もんどさんのツイート: "協調のなさが酷いというより、W3C/WHATWGでまだ一緒に作ってたころ(HTML 5.0 CR)に決まってたものを後からW3Cがひっくり返したという感じで、W3Cの挙動が解せないというのが個人的な印象ですね…… "
もんどさんのツイート: "まあその意味ではlongdescとかおそらくブラウザーではこれ以上実装されなさそうなものをひっくり返すみたいなのは、ちょっと理想に走りすぎでは、という気がしなくもなく。"
もんどさんのツイート: "ただその一方でmain要素はHixieのこだわってた(と個人的には思ってる)複数要素を許容みたいな話は葬り去られて、A11y寄りのSteve Faulknerの主張が通って統一できたのは、これはこれで歩みよりがあるのかなと。"
Rockridgeさんのツイート: "Googleが自社サービスをChromeに最適化し、それ以外のブラウザを事実上排除したうえ、高いシェアを背景に仕様標準化の際にもChromeの実装がそのまま通るように力を振るうとすれば、IE6の独占時代と何が違うのか。 / “C…” https://t.co/zHYKnESPnT"
なかのん&マジックさんのツイート: "ブラウザなんて、まさに、実装依存のWebアプリ達との闘いですな。Firefoxのシェアが下がったとはいえ、(Firefox側がバグってる場合を除けば)対応する価値は十分にある。実装依存な場所を洗い出してくれるから、他のブラウザの将来のバージョンとの互換性も高くなる。"
なかのん&マジックさんのツイート: "Firefox側で、仕様にない挙動を、互換問題からChromeの動作にあわせようとしていたら、Googleのエンジニアさんがたまたま同じタイミングで、Firefoxのシンプルな挙動にしようとしていた、という笑えない事が去年あって、止めた。タイミング違ってたら、Chrome依存なサイトがChromeでも壊れてた事案。"
Ryou Ezoeさんのツイート: "W3CがWHATWGのHTML DOM 4.1をforkして、forkであることも明記せず、コミュニティになんの説明もなく改変してリリースしようとしたので至るところからFormal Objectionが飛ばされている https://t.co/FFn7DCUxRF"
Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec | Hacker News
なかのん&マジックさんのツイート: "Chromeの動きが理にかなってたら互換性のために修正入れるのはそう難しくないんですよ(ソースコードのデザイン上大変なことはあっても)。でも、理にかなってない場合や単純にバグってるよなって場合にはそれが難しいんですよ。IE一強の時代と全く同じで。"
なかのん&マジックさんのツイート: "同じ設計じゃ無いのにバグをエミュレートするってのは難しいんですよ。何しろ意図して条件分岐した結果、動作が変わってるとかではないんで。"

MS

Project Reunion

ASCII.jp:UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
Project Reunionを使用して、MicrosoftはWin32とUWP APIの統合を試みる
Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」 ~WinUI 3に統合され、開発者は新しいアプリケーションを開発可能。EdgeやTeamsも機能強化 - PC Watch
microsoft/ProjectReunion: Project Reunion is an evolution of the Windows developer platform that will make it more compatible, agile, modern and open.
UWPアプリの洗練されたUIをWin32アプリでも ~Microsoft、「WinUI 3 Preview 1」を発表 - 窓の杜
Introducing WinUI 3 Preview 1 - Windows Developer Blog
WinUI 3 Preview 2 (July 2020) | Microsoft Docs
デスクトップ アプリ用の WinUI 3 の概要 | Microsoft Docs
Microsoft、「Windows UI Library」を公開 ~OSバージョンに縛られずに新機能を導入可能 - 窓の杜
新しい「Edge」をアプリに組み込める ~Win32 C/C++向けの「WebView2」が一般公開 - 窓の杜
MicrosoftがChromiumベースのWebView2でハイブリッドWindows Webアプリをサポート
新「Edge」ベースのPWAパッケージングを生成 ~「PWABuilder」に新しいプレビュー機能 - 窓の杜
Microsoft、.NET向け「WebView2」を一般公開 ~ランタイムバージョンの固定にも対応 - 窓の杜
Microsoft、「WinUI 2.5」を公開 ~プログレスリングやBootstrap風の情報バーを追加 - 窓の杜

Windows Runtime

C++/WinRT

C++ - C++/WinRT の紹介
Standard C++ and the Windows Runtime (C++/WinRT) - Windows Developer BlogWindows Developer Blog
C++/WinRT
C++WinRTではじめるUWP
C++/WinRT | Modern C++ for the Windows Runtime
Microsoft/cppwinrt: C++/WinRT is a standard C++ language projection for the Windows Runtime.
MS、オープンソースで公開のC++/WinRTの処理高速性をアピール | マイナビニュース

Windows Template Studio

Windows Template Studio - Visual Studio Marketplace
Microsoft、UWPアプリの雛形を手軽に作成できる「Windows Template Studio」v1.3 - 窓の杜
「Windows Template Studio」v1.5が公開 ~UWPの雛形を作成するVisual Studio拡張機能 - 窓の杜
アプリ雛形を作成するVS拡張「Windows Template Studio」v1.6、画像ギャラリーに対応 - 窓の杜
Visual Basicをサポートした「Windows Template Studio」v1.7が公開 ~Prismにも対応 - 窓の杜
アプリの雛形を作成するVisual Studio拡張「Windows Template Studio」がv2.0に - 窓の杜
「Windows Template Studio」がv2.2に ~UWPアプリの雛形を作成するVisual Studio拡張 - 窓の杜

Windowsランタイム - Wikipedia
Windows Runtime - Wikipedia
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
Windows Runtime 8.x APIs for desktop apps (Windows)
Windows と C++ - Windows ランタイムにおける洗練された型
RoGetActivationFactory function (Windows)
パッケージ デスクトップ アプリで利用可能な UWP API (デスクトップ ブリッジ) - UWP app developer | Microsoft Docs
ToastNotification Class (Windows.UI.Notifications) - UWP app developer | Microsoft Docs
遥佐保の技術メモ:[C++][WRL]デスクトップアプリからトースト通知 - livedoor Blog(ブログ)
DesktopからToast Notificationsへ通知する | Software Development | Just another WordPress site
トースト通知 - かずきのBlog@hatena
デスクトップアプリからWinRT APIを使用する - 酢ろぐ!
特集:デスクトップでもWinRT活用:開発者が知っておくべき、ライブラリとしてのWindowsランタイム (1/5) - @IT
WinRT APIを使ってみる - イグトランスの頭の中
WinRTとC++イテレータ - イグトランスの頭の中
WinRTのref classでの演算子多重定義 - イグトランスの頭の中
C++コンポーネント拡張:新しいCOM
COM 再入門 (1) - モノトーンの伝説日記
Windows Runtime/WinRTとプログラミング言語 - WisdomSoft
Windows 8時代のアプリ開発とWinRT(1/4) - @IT
WinRT:Win32のオブジェクト指向による代替
Windows 8時代のアプリ開発
Rockridgeさんのツイート: "Fx64:Windows 10ネイティブのトースト方式通知をサポート。通知はアクションセンターに登録される。今のところNightlyチャンネルでのみ有効化されている。 / “1155505 - Implement ToastNo…” https://t.co/0wEyVnh7NH"
ゆたかさんのツイート: "UWP最高!!全部API置き換えるもん!!!!みたいな熱量からだんだんやっぱWin32捨てれねぇわ…感を漂わせて、バージョンごとに増えていく許可されたWin32 APIがちょっとおもしろい"

CLI

Standard ECMA-335
Standard ECMA-335-archive
ECMA-335翻訳ドキュメント
ECMA C# and Common Language Infrastructure Standards
Reference Source
共通言語ランタイム (CLR)
coreclr/dotnet-standards.md at master · dotnet/coreclr
マイクロソフト、C#やCLIのオープンソースによる実装を認める。Monoプロジェクトに弾みがつくか? - Publickey
JIS X 3016共通言語基盤の改正について | IPSJ/ITSCJ
共通言語基盤 - Wikipedia
Common Language Infrastructure - Wikipedia
Microsoft Open Specification Promise - Wikipedia
Microsoft Open Specification Promise - Wikipedia
WPF/WinFormsをオープンソース化 ~Microsoft、「.NET Core 3.0」Preview 1を発表 - 窓の杜
[速報].NET Coreがデスクトップアプリケーション対応。Windows Forms/WPF/UI XAML Libraryもオープンソース化。Microsoft Connect(); 2018 - Publickey
NOKUBI Takatsugu野首貴嗣さんのツイート: "Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://t.co/i43JoAEyif - marchrockのコメント / はてなブックマーク - https://t.co/OF08FdpIeW"
wpf/contributing.md at master · dotnet/wpf
Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://github.com/dotnet/wpf/blob/master/Documentation/contributing.md - marchrockのコメント / はてなブックマーク
.NET Core 3.0の概観:C# 8、WPF、Windows Formなど
C#機能: ラムダ属性
CoreCLRのソースをVisual Studio 2017で読む - fujieda's tech blog
[速報]オープンソースの「.NET 5」がすべての.NETを引き継ぐ。.NET Frameworkと.NET CoreとXamarinは「.NET 5」に。Microsoft Build 2019 - Publickey
Microsoft、「.NET 5.0」を正式公開 ~C# 9.0/F# 5.0に対応、Windows ARM64もサポート - 窓の杜
[速報]マイクロソフト、新UIフレームワーク「.NET Multi-platform App UI」(.NET MAUI)発表。単一コードでマルチプラットフォーム対応。Microsoft Build 2020 - Publickey

DWM

WDDM, DWM: pros and cons - NyaRuRuが地球にいたころ
Futuremark Updates and Vista DWM - NyaRuRuが地球にいたころ
DWM による描画の現場を押さえる - NyaRuRuが地球にいたころ
Desktop Window Manager (DWM) の動作解説図 - NyaRuRuが地球にいたころ
Perforator による Desktop Window Manager (DWM) のプロファイリング (1) - NyaRuRuが地球にいたころ
Perforator による Desktop Window Manager (DWM) のプロファイリング (2) - NyaRuRuが地球にいたころ

GDI

GDI アクセラレーションについて整理する - NyaRuRuが地球にいたころ
Windows 7 と GDI/GDI+ の GPU アクセラレーションの可能性 - NyaRuRuが地球にいたころ
「Windows Vista での GDI/GDI+ 描画」についてのお詫び - NyaRuRuが地球にいたころ
Windows Vista での GDI/GDI+ 描画 - NyaRuRuが地球にいたころ

WDDM によるタイムアウトの検出と GPU の回復 - NyaRuRuが地球にいたころ
進化しすぎた GPU の災禍 - NyaRuRuが地球にいたころ
GPU を利用したテキストレンダリング - NyaRuRuが地球にいたころ
デスクトップの暗黒面 - NyaRuRuが地球にいたころ
デスクトップの裏側 - NyaRuRuが地球にいたころ
デスクトップの裏側 (2) - NyaRuRuが地球にいたころ
デスクトップコンポジションの無効化 - NyaRuRuが地球にいたころ
Windows Vista (x86) SP1 ではデスクトップヒープのデフォルト値が増やされてる - NyaRuRuが地球にいたころ
ウィンドウコンポジション (1) - NyaRuRuが地球にいたころ
Windows 7 のグラフィックスの変更点を整理する - NyaRuRuが地球にいたころ
Guidelines for Graphics in Windows 7 - NyaRuRuが地球にいたころ
Windows 7 Developer Guide とグラフィックスの改良点 - NyaRuRuが地球にいたころ
Windows Vista と CreateWindow 限界 - NyaRuRuが地球にいたころ
いまさら聞けない Windows Vista の基礎知識 グラフィックス編 解答 - NyaRuRuが地球にいたころ
いまさら聞けない Windows Vista の基礎知識 グラフィックス編 - NyaRuRuが地球にいたころ
New Magnification API - NyaRuRuが地球にいたころ
New Magnification API (2) - NyaRuRuが地球にいたころ
圧倒的な説得力! プレゼン資料より「プロトタイプ」:日経ビジネス電子版
ASCII.jp:2画面タブレット向けのWindows 10Xをエミュレーターで動かす (1/2)
ASCII.jp:Windows 10のスタートメニューのタイルに表示されるWin32アプリのアイコンを作成する (1/2)
ロボ太さんはTwitterを使っています 「そういえばWindowsの「砂時計カーソル」を最近見なくなったなぁ、と思ったら、今はWait Cursorと呼ばれていて、砂時計(Hourglass)カーソルと呼ばれてたのはVistaまでだったそうな。そうか、Vistaまでか。おっちゃん年よりだからさ、Vistaは「最近」な感覚なんだよ。 https://t.co/nlNq9nJ9mc」 / Twitter
Windows wait cursor - Wikipedia
ASCII.jp:キーボードのキー入れ替えにおける、仮想キーコードとキーボードスキャンコード (1/2)
マイクロソフト、Chromiumベースの「Microsoft Edge WebView2」.NET正式対応版リリース。バージョンを固定できる「Fixed Version distribution mode」も - Publickey

HTML

Mozilla

その他

Firefoxに「パフォーマンス」関連設定が実装される予定 | スラド IT
本の虫: Firefox 23では、デフォルトでSSLページ内で非SSLコンテンツの読み込みをブロックする
Firefoxの先読み機能の無効化とその確認手順 - ククログ(2017-06-16)
MozillaがFirefoxの拡張機能で難読化コードの使用禁止を発表した2日後、全拡張機能が動作しなくなるトラブルが発生 | スラド デベロッパー
Makoto Kato ︎︎さんのツイート: "いつも思うんだけど、GeckoをServoに置換するなんて言ってないのに、みんな勘違いするのはなんなんだろう https://t.co/5PwG6uh0LS"
IT エンジニアのための 流し読み Windows 10 - 新しい Microsoft Edge - from Build 2019
won't fix: New Firefox Preview for Android

Firefox

Mozilla

Bugzilla

Home :: Bugzilla :: bugzilla.org
なかのん&マジックさんのツイート: "bugzillaのREOPENってもうFIXEDからは禁止で良いと思うんだけどな。パッチの投入があると、そのステータス管理にそのバグは使わないといけないから、REOPENされるとそれができなくなるんだよな。"
なかのん&マジックさんのツイート: "それか、REOPENはFIXEDにした人とAssigneeにのみ可能な特権にしても良いんでは。"

Extension Compatibility Tester

Rockridgeさんのツイート: "Mozillaが、Chromeの拡張機能ファイルをアップロードするとWebExtensionsとの互換性を診断してくれるツール「Extension Compatibility Tester」を公開した。別途コマンドラインツールも提… https://t.co/idngQYPFip"
Introducing the Extension Compatibility Tester ★ Mozilla Hacks – the Web developer blog
Extension Compatibility Tester

MDN

Mozilla Developer Network
Mozilla Developer Network
Mozilla のソースコードに貢献する - Mozilla | MDN
Working with Mozilla source code - Mozilla | MDN
WebExtensions - Mozilla | MDN
Google Chrome からの移行 - Mozilla | MDN

Mozilla Flux

Firefox Developer Editionは早期Beta版として存続 未署名のアドオンも引き続き利用可能 - Mozilla Flux
ワンクリックで以前のセッションを復元する(Firefox 56以降) - Mozilla Flux

WebDINO Japan

WebDINO Japan (旧・一般社団法人 Mozilla Japan)
Mozilla JapanはなぜWebDINOに?瀧田佐登子さんに聞くMozilla・オープンソースコミュニティ、そしてWebの未来 | HTML5Experts.jp
Mozilla Japanが組織名を“WebDINO Japan”へ変更 ~7月3日より活動を開始 - 窓の杜

SecureDrop

Rockridgeさんのツイート: "MozillaがSecureDropというオープンソースソフトウェアに対し過去最高の25万ドルを授与。匿名の内部通報者が安全にメディア組織と文書のやりとりなどができるシステムを構築するもの。参照:… https://t.co/fVe5XGpspY"
SecureDrop | The open-source whistleblower submission system managed by Freedom of the Press Foundation.
freedomofpress/securedrop: GitHub repository for the SecureDrop whistleblower platform. Do not submit tips here!
文書を安全に匿名の情報筋から得ることを可能にするオープンソースシステム「SecureDrop」 - GIGAZINE
SecureDrop - Wikipedia

窓の杜

Mozillaなどが支援するRust製新ブラウザー「Servo」にWindows向けナイトリー版が登場 - 窓の杜
【レビュー】簡単ファイル共有サービス“Firefox Send” ~リンクが24時間経過で自動消滅 - 窓の杜
1,691個のタブを開いたセッションをわずか8秒で復元 ~「Firefox 55」が正式版に - 窓の杜
「Firefox Quantum」が正式公開 ~6カ月前と比べて2倍以上に高速化、新UIも導入 - 窓の杜

Twitter

histric-1

Rockridgeさんのツイート: "Firefox NightlyのリリースノートがAtomフィードに対応する模様。参照:https://t.co/JVw2bIikP6 情報提供感謝:@koyoskeh / “1359037 - Provide some synd…” https://t.co/UDSr8RkXce"
Rockridgeさんのツイート: "Mozilla関連の商標はWebDINO JapanからMozilla Corp.に移管されたらしい。1月にエンジニアとそれ以外でオフィスを分けたのも、エンジニアはMozilla Corp.と直接雇用契約を結ぶことになるから? https://t.co/QWVfZrl6K4"
Rockridgeさんのツイート: "Test Pilotの実験にSend(オンライン上のファイル共有)、Voice Fill(音声による文字入力)、Notes(サイドバーの簡易メモ帳)の3つが追加された。 / “New Test Pilot Experiments…” https://t.co/nX5evt73Bn"
Rockridgeさんのツイート: "Sendは「大きなファイル (最大 1 GB) をアップロード、暗号化し、オンラインで共有でき」「生成したリンクは 1 回のダウンロードあるいは 24 時間後に期限切れとなり、Send サーバーに保存されたファイルは自動的に削除」。 https://t.co/G7YeRCET3f"
Rockridgeさんのツイート: "Mozilla Information Trust Initiative (MITI)はインターネットの信用性・健全性を損なうフェイクニュースの排除を目指す活動だ。調査・研究やリテラシー教育のほか、誤情報に対処する技術の開発にも取… https://t.co/6RdAcdJXRb"
The Mozilla Information Trust Initiative: Building a movement to fight misinformation online - The Mozilla Blog
Rockridgeさんのツイート: "Mozillaは将来的にWindows版FirefoxのビルドツールをMSVCからclang-clへと移行させるつもりらしい。現時点では多数の課題を抱えており、すぐにどうこうできる話ではないようだが。 / “Firefox an…” https://t.co/ArzhX4DczO"
Rockridgeさんのツイート: "Windows版Firefoxのビルドツールがclang-clに移行する場合、リンカはLLDになる模様。参照:https://t.co/cKO2SGhBMC / “1384434 - (linker-lld) [meta] Li…” https://t.co/HPNBmn88kC"
Rockridgeさんのツイート: "Firefoxアカウントのシステムが外部のセキュリティ監査を受けており、安全であることをアピールした記事。 / “A Security Audit of Firefox Accounts | Mozilla Security B…” https://t.co/SwshVq6XbQ"
A Security Audit of Firefox Accounts | Mozilla Security Blog
Rockridgeさんのツイート: "Mozillaは音声認識システムをオープン化することで、大手企業による囲い込みを防ぎ、イノベーションを促進させる考えだ。 / “How Could You Use a Speech Interface? - The Mozill…” https://t.co/1y3pQ3JK6l"
How Could You Use a Speech Interface? - The Mozilla Blog
Rockridgeさんのツイート: "about:mozillaの文章がすべて掲載されている。背景の解説つき。 / “The Book of Mozilla - Wikipedia” https://t.co/Wimu01x8iS"
The Book of Mozilla - Wikipedia
Rockridgeさんのツイート: "「Mozilla 製品の日本語を統一感のある高品位なものとするため、用語の対訳表などと合わせて日本語化のガイドラインを作成・公開しています。」 / “styleguides/l10nguideline.md at master …” https://t.co/38KaSc853N"
Rockridgeさんのツイート: "Mozillaはすべてのビルド・テスト環境をクラウドに移行するのかと思いきや、そうでもないらしい。クラウドに適さない部分は新設のデータセンターに残すという。 / “IT/WeeklyMinIT - MozillaWiki” https://t.co/r0wItU30Xx"
Rockridgeさんのツイート: "Mozillaは各種オープンソースプロジェクトに寄付を行っており、その総額は2017年4月以降に限っても53万9000ドルに達する。たとえばwebpackプロジェクトは12万5000ドルを受け取った。 / “Mozilla Aw…” https://t.co/VhTXxYejZC"
Rockridgeさんのツイート: "Mozilla Corp.のDenelle Dixon氏が米TechCrunchの取材に回答したところによれば、Mozilla側が契約上の権利を行使して、Yahoo!(の承継会社)との契約を終了させたそうだ。 / “Mozill…” https://t.co/7u61MKvcXT"
Rockridgeさんのツイート: "Bloombergの報道によれば、Yahoo!の承継会社とみられるVerizon傘下のOath社は、「Mozillaの決定に驚いている。契約条件に関し同社と協議中である。」という趣旨のコメントを出した。すんなり終われないかも。 https://t.co/lbHYZbqeeR"
Rockridgeさんのツイート: "Mozilla Corp.の従業員数が1000人余り(おそらくRead It Later,Inc.を除く数字)、Mozilla Foundationの従業員数が80人と記載されている。 / “The State of Mozil…” https://t.co/xfNINXHbkX"
Rockridgeさんのツイート: "Mozilla Foundation及びその子会社における2016年版監査済財務諸表。検索エンジンとの提携契約収入がロイヤリティの94%、債権残高の79%を占める(注8)一方、ロイヤリティ収入中のYahoo!依存率は75%程度に低… https://t.co/surxlnii5A"
Rockridgeさんのツイート: "ブラウザエンジンを維持し続けるには多大なコストを要するが、Mozillaのミッションがそれを正当化する、との議論。あえて今この話題を持ち出してきた理由が気になる。 / “Eyes Above The Waves: Maintai…” https://t.co/12qge95fUZ"
Rockridgeさんのツイート: "Firefoxアカウントの予備アドレスをメインアドレスに切り替える方法について(未訳)。情報提供感謝:https://t.co/UmSaGf51MO / “Change primary email address on Fire…” https://t.co/obz8qd8rmZ"
Rockridgeさんのツイート: "Mozilla IRC Networkのログが集積されている。 / “LogBot” https://t.co/relGYU650A"
LogBot

Rockridgeさんのツイート: "Mozillaの開発者とMicrosoftの(おそらくEdgeの)開発者が議論するための、プライベートなオンラインフォーラムが存在するようだ。 / “1423550 - A load with an assigned appli…” https://t.co/P8AdYk7KlA"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャであるLockboxは、まずiOS向けの独立したアプリという形で試験的に提供される。参照:https://t.co/mes2CPqjlC / “QA/Mobile/LockboxiOST…” https://t.co/goYYMWMwgH"
Rockridgeさんのツイート: "Firefoxアカウントが二段階認証をサポート。対象ユーザーは順次拡大される。TOTPの採用によりGoogle認証システムなどのアプリを用いた認証が可能。参照:https://t.co/94h4ILkyyC / “Two-ste…” https://t.co/nZ8NQVYGgw"
なかのん&マジックさんのツイート: "Googleアカウントは複数使い分けが困難なサイトの作りしてくれてるんで、コンテナ使い出してるけど、これ基本的には必須の機能って感じだけど、イマイチ使い勝手が……"
なかのん&マジックさんのツイート: "Firefoxのコンテナ、ブックマークとの相性が本当に悪い……"
なかのん&マジックさんのツイート: "ブックマークとコンテナの組み合わせを限定できないんでpin止めしたタブが増えてる気もする。"

Firefox Hardware Report
Mozilla
donate.mozilla.org | Mozilla への寄付をお願いします
利益ではなく、人々のためのインターネット — Mozilla
より優れた、高速でプライベートな最新ブラウザー | Firefox
Mozilla サポート
Servo Developer Preview Downloads
プレリリース版でブラウザーの新機能を試そう | Firefox
Mozilla Firefoxのバージョンの変遷 - Wikipedia
Mozilla Japan コミュニティポータル
Mozilla Japan コミュニティ(@mozillajp)さん | Twitter
mozilla-japan – Medium
MozillaZine.jp
オフィス管理や雑務に時間をとられず、本来の仕事にだけ集中して取り組める環境 | サーブコープブログ
What is “chrome://FirefoxAccounts (Firefox Accounts credentials)” under “Saved Logins” section in Firefox? Can I delete it? : firefox
Thunderbird — メールをもっと簡単に。 — Mozilla
最新 Thunderbird トピック - Mozilla Discourse
Windows ビルド環境の準備 - Mozilla | MDN

ウェブサイトのセキュリティを自動判定する「Observatory by Mozilla」 -INTERNET Watch
【翻訳】ZAP を用いた Web セキュリティのベースライン運用 - Mozilla Security Blog 日本語版
hashedhyphen/mozsec-jp: Mozilla Security Blog 日本語版 (http://mozsec-jp.hatenablog.jp)
Observatory by Mozilla
mozilla/http-observatory: HTTP Observatory
Security/Guidelines/Web Security - MozillaWiki
Security/Server Side TLS - MozillaWiki
インターネットの安全を守る上での Mozilla の役割: 皆さんのご協力も必要です | Mozilla Japan ブログ
Analysis of the Alexa Top 1M Sites | Mozilla Security Blog
Mozilla、“Firefox アカウント”のセキュリティ監査を実施 ~15の問題を悪用前に対策 - 窓の杜
Firefox Release Calendar - MozillaWiki
「Firefox」をもっと安全に! “Firefox アカウント”を2段階認証で武装してみる - やじうまの杜 - 窓の杜
もはやマイナーブラウザの域に? Firefoxのシェアがついに10%を切り一桁台に突入へ【やじうまWatch】 - INTERNET Watch
IdM実験室: [FIDO]Firefox 60の正式版がリリースされたのでWebAuthnを試してみる
IdM実験室: FirefoxにSAML Tracerが復活
Firefoxへのフィードバックの仕方:Windows編 - ククログ(2018-07-03)
一ノ瀬 いろはさんのツイート: "FIrefox 版β も作ってるみたいなんでどうでしょ。 https://t.co/pZlW0Uw5T3 基本的には BOOTH で売ってる英辞郎使うことを念頭に置いてます。… "
Chrome拡張の高速な英語辞書ツールをつくりました - Qiita
Firefox Monitor
モジラ、「Firefoxアカウント」のリカバリキー生成機能を公開 - CNET Japan
Reset your Firefox Account password with Recovery Keys | Mozilla Support
「Firefox 67」正式版リリース、マイニングスクリプトのブロックや追跡防止機能の強化、ページロードの高速化など - GIGAZINE

窓の杜

Mozilla、「Firefox 59」を正式公開 ~新しいキャッシュ技術でパフォーマンス向上 - 窓の杜
HTTPサイトに“Not Secure”ラベルを表示、「Google Chrome」に続き「Firefox」でも - やじうまの杜 - 窓の杜
Mozilla、「Firefox 61」を正式公開 - 窓の杜
Mozilla、情報漏洩の被害に遭ってないかをチェックする“Firefox Monitor”をリリース - 窓の杜

OSDN

性能強化を継続、プライベートモードでのプライバシー保護も改善した「Firefox 59」 | OSDN Magazine
Quantum CSSを強化した「Firefox 61」が公開 | OSDN Magazine
「Firefox 64」リリース、タブの強化や新しいタスクマネージャ表示を導入 | OSDN Magazine
「Firefox 66」リリース、自動再生の音声がデフォルトでオフに | OSDN Magazine
「Firefox 67.0」リリース、仮想通貨のマイニングやフィンガープリントによる追跡をブロックする機能が実装される | OSDN Magazine

Mozilla Flux

Firefoxのパスワードマネージャーを刷新するLockboxプロジェクトが本格始動中 - Mozilla Flux
マウスホイールでページをスクロールする際の小技(Firefox 58以降) - Mozilla Flux
タブのダブルクリックで現在表示させているタブを閉じる小技(Firefox 61以降) - Mozilla Flux
タブの切り替えをスムーズにするTab Warming機能について(Firefox 61以降) - Mozilla Flux
Firefox 63に複数タブの選択・操作機能が実装される見込み - Mozilla Flux
ブラウザの「更新の確認は行わない」設定をFirefox 63で削除 - Mozilla Flux

Mozilla Security Blog

dynamis (でゅなみす)さんのツイート: "Mozillaが遂にすべての新機能はSecure Contextに限って実装していくと宣言。 Service Workerみたいな粒度ではなくCSSプロパティレベルでもHTTP環境には新機能を原則提供しない方針でかなりアグレッシブ https://t.co/dlTJEPeM2D"
Secure Contexts Everywhere | Mozilla Security Blog
Rockridgeさんのツイート: "Android版Firefox Nightlyにおいて、Google検索とFacebookを対象に、UA文字列をモバイル版Chromeに偽装するシステムアドオンが実験的に有効化されている。参照:… https://t.co/XgazSmUMDA"
When does Firefox alert for breached sites? | Mozilla Security Blog

Firefox サイト互換性情報

今後予定されている変更 | Firefox サイト互換性情報
カテゴリ別にドキュメントを参照 | Firefox サイト互換性情報
HTML コンテキストメニュー対応が廃止されます | Firefox サイト互換性情報
Basic 認証情報が ISO-8859-1 から UTF-8 によるエンコードに変わりました (影響あり) | Firefox サイト互換性情報

4x

Rockridgeさんのツイート: "Fx42:Android版で日本の一部Webサイトにおいてユーザーエージェント文字列の偽装を行い、モバイル版が正しく提供されるようにした。Yahoo!関連、mixi、LOHACO、ユニクロ、楽天、NHKが対象。 / “11772…” https://t.co/Oo11q5gtrL"
Firefox 44 は type="password" が暗号化されていないページで使われていると警告を表示 | フロントエンドBlog | ミツエーリンクス
RockridgeさんはTwitterを使っています: "Fx47:JavaScriptによって追加されたHTMLの要素にリンクのプリフェッチの指定が含まれていた場合も、プリフェッチが行われるようになった。 / “580313 – prefetch links not followed…” https://t.co/hOUAhPBbYN"
Rockridgeさんのツイート: "Fx47:CRX形式のアーカイブからファイルを抽出する機能をサポート。 / “1260836 – Add support for CRX file extraction” https://t.co/E9YT5ZpRoq"
Rockridgeさんのツイート: "Fx49:トラッキング防止機能が有効な場合は、Do Not Track(DNT)の設定が無効でも、DNTシグナルを送信するようにした(コメント2)。 / “1258033 – Fix the DNT loophole for t…” https://t.co/NwhRLwZFcK"
Rockridgeさんのツイート: "Fx48:読み込みが許可されていないファイル(Webページ)を読み込んだ際にエラーページが表示されるようになった。 / “682294 – Opening a page which we can't read should di…” https://t.co/VXVdPcfMqk"
Rockridgeさんのツイート: "Fx49:HTML5のdetails要素とsummary要素がリリースチャンネルでもデフォルト有効化。 / “1226455 – (ship-details-summary) ship support for <details>…” https://t.co/gXJtEpBsnG"
Rockridgeさんのツイート: "Fx49:a要素のreferrerpolicy属性にno-referrer-when-downgradeとorigin-when-cross-originの値を指定できるようになった。 / “1178337 – Valid re…” https://t.co/aj8IEovDCH"
Rockridgeさんのツイート: "Firefox 49で起動時に未送信のクラッシュレポートの送信を促すようにした理由は、Firefoxのシャットダウン時のクラッシュが、まさにシャットダウン中であるがゆえにこれまで送信されてこなかったら。 / “Fwd: [des…” https://t.co/xnwwG3qk36"
details要素がサポート追加となったFirefox 49リリース、Safari 10リリースやベンチマークのMotionMarkなど──2016年9月のブラウザ関連ニュース | HTML5Experts.jp
Rockridgeさんのツイート: "Fx49:マルウェアなどのダウンロードを防止する機能について、対象となるファイル拡張子の種類が増えた。 / “1291472 – Add more application reputation extensions” https://t.co/hKXAqLifkb"
Rockridgeさんのツイート: "Fx49:HTTPで接続したWebサイトに関し保存したパスワードが、HTTPS接続した同一ドメインにおいても自動補完されるようになった。 / “667233 – HTTP passwords should be used on …” https://t.co/5mj1yuHjpC"
Rockridgeさんのツイート: "Firefoxの製品内部で、ブラックリスト・ホワイトリストの呼び方をやめて、ブロックリスト・許容リストに置き換える作業が進んでいる。 / “1149485 - Rename 'blacklist' to 'blocklist' …” https://t.co/iQIdtcIkUh"
Rockridgeさんのツイート: "Firefoxのチャンネルを問わず、インストールするたびに別プロファイルを作成・使用する機能が実現に向けて動き出した。ダウングレードからプロファイルを守る機能と併せてFirefox 66以降に実装される。 / “Coming i…” https://t.co/4aSf8Hzk5c"

5x

50

Rockridgeさんのツイート: "Fx50:起動時に読み込みを保留しているタブがある中で「すべてのタブをブックマーク」すると、保存されたブックマークの名前欄に空欄が生じる問題を修正。 / “754623 – Name field of bookmarks sav…” https://t.co/sGM6GGyMfh"
Rockridgeさんのツイート: "Fx50:履歴とブックマークのデータベースにおいて、URLの同一性を判定するためのインデックスとしてURLの複製ではなくそのハッシュ値を用いるようにした。データベースサイズを圧縮できる。 / “889561 – moz_plac…” https://t.co/1nsi7JbFBb"
Rockridgeさんのツイート: "Fx50:各種パーミッションに関する通知アイコンは、ロケーションバーの「i」アイコンと南京錠アイコンの間(アイデンティティブロック)に表示される。 / “1267617 – Move notification anchors t…” https://t.co/MGSQcNJ6Rc"
Rockridgeさんのツイート: "Fx50:PointerLock APIのパーミッション要求が不要となった。 / “1273351 – Get rid of permission requirement for PointerLock API” https://t.co/HYigR20hla"
Rockridgeさんのツイート: "Fx50:ローテーションセンサーを備えていないPC(タッチスクリーン機能付きデスクトップなど)でもスクリーンキーボードが表示されるようになった。 / “1226522 – On-screen keyboard not displ…” https://t.co/z2T2De5o3w"
Firefox 50でページ内検索結果の表示方法が変更 - Mozilla Flux
Rockridgeさんのツイート: "Fx50:認証が必要なネットワークを検出したときは自動的にログインページを開く仕組みが実装された。当面はNightlyチャンネルでのみ有効。参照:https://t.co/OXgTMzHwCK / “989193 – Open …” https://t.co/mtjEnUqwSw"
Rockridgeさんのツイート: "Fx50:何らかのパーミッションを許可しているサイトでは、ロケーションバーの「i」マーク右上に印が付く。 / “1206246 – Show indication when some permissions have been …” https://t.co/Ykrty1fuI5"

51

Rockridgeさんのツイート: "Fx51:特定のサイトでパスワードを記憶しないという情報は、パーミッションの一部として扱われる。 / “1058438 – Password manager should use the permission manager t…” https://t.co/r6wcftGceQ"
Rockridgeさんのツイート: "Fx51:Yahoo!オークションやYahoo!ニュース、mixiなどについて、ユーザーエージェント文字列の偽装を解除した。 / “1301619 – Update Firefox Android User Agent over…” https://t.co/VydIn8OCRa"
Rockridgeさんのツイート: "Fx51:本体起動時、認証が必要なネットワークを検出したときは自動的にログインページを開く。 / “1282611 – Captive portal not detected at Firefox startup” https://t.co/5lJ56oXyUR"
Rockridgeさんのツイート: "Fx51:ログイン情報の送信にJavaScriptを用いているWebページにおいても、パスワードの保存とオートフィルが行えるようになった。 / “1166947 – Run login capture code upon pag…” https://t.co/MNuJVRw223"

52

Rockridgeさんのツイート: "Fx52:<input type="time">が指定されている場合の入力UIが実装された。参照:https://t.co/W0aCu9JqFX / “1283384 – Implement UI for <input type…” https://t.co/L2zWUtBSo9"
Rockridgeさんのツイート: "Fx52:Yahoo!関連はYahoo!天気・災害を除きユーザーエージェント文字列の偽装を解除した。 / “1314214 – Remove User Agent override for Yahoo! Japan” https://t.co/uI0o8XxJit"
Rockridgeさんのツイート: "Fx52:開発ツールのレスポンシブデザインモードで、低速回線(2G/3Gなど)による接続をシミュレートする機能が実装された。参照:https://t.co/yOZB4sWi9E / “Simulate slow connecti…” https://t.co/Y64SEgEyby"
Rockridgeさんのツイート: "Fx52:Windows版NightlyでQuantum Compositor(旧GPUプロセス)が有効化。 / “1314133 – Enable the GPU process in nightly, on Windows” https://t.co/PpVSi5pEQM"
Rockridgeさんのツイート: "Fx52:リーダーモードにおいても、base要素で指定された基点URLの指定が反映されるようになった。 / “1173823 – Reader View ignores <base href="...">” https://t.co/wTH6BbCnTl"
Rockridgeさんのツイート: "Fx52:Webサイト側で取得できるユーザー側のシステムフォントが、ホワイトリストに掲載されたものに限定された。フィンガープリンティングを防止する。参照:https://t.co/8yVqP7dDVp / “Firefox 52…” https://t.co/OeOFRQ1yX7"
Rockridgeさんのツイート: "Fx52:悪意のあるサイトが認証画面を繰り返し表示してブラウザを操作できなくすることを防止する措置を講じた。 / “1312243 – Trap site uses repeated http auth prompts to k…” https://t.co/IqXucQDfXt"
Rockridgeさんのツイート: "Fx52:リーダーモードのNarrate(音声読み上げ機能)で、現在読み上げられている単語に下線が表示されるようになった。 / “1290173 – Introduce word (and sentence?) tracking…” https://t.co/4MGV5GbYlF"
Rockridgeさんのツイート: "Fx52:巨大なサイズの画像が正しく表示されない場合がある問題を修正。なお、問題となるサイズはDPI環境により変動する。 / “591822 – Images taller or wider than 32767 (signed…” https://t.co/Qc8PW6NV6X"
Rockridgeさんのツイート: "Fx52:Webページ中のパスワードのフィールドでも、自動補完のUIが表示されるようになった。ユーザー名のフィールドが存在しない場合でも自動補完が使える。参照:https://t.co/PoAIjHw4XQ / “1289913…” https://t.co/IY9939kSnF"
Snappy by google
google/snappy: A fast compressor/decompressor
andikleen/snappy-c: C port of the snappy compressor
Rockridgeさんのツイート: "SnappyはGoogleが開発する圧縮・解凍ライブラリ。圧縮率よりも圧縮・解凍の速度を重視しているという。 / “Snappy by google” https://t.co/KpXFudSTEr"
Rockridgeさんのツイート: "Fx52:搭載するSnappyライブラリを最新版にアップデート。IndexedDBやDOMキャッシュなどで用いられているが、更新はFirefox 12以来だとか。参照:https://t.co/GdaSPottr2 / “Hea…” https://t.co/J7LNj4KMYX"

53

Rockridgeさんのツイート: "Firefox 53でapplet要素のサポートを廃止予定。参照:https://t.co/gOKCU0nPe0 / “1279218 – Remove <applet> element” https://t.co/v8xrxhSTk4"
Rockridgeさんのツイート: "Firefox 53ではネットワークライブラリ(Necko)にセキュリティチェック機能を実装し、チェックを必須化する。従来はGeckoの各コンポーネントがリクエストの前にその都度セキュリティチェック処理を行っていた。 / “En…” https://t.co/GgLzOpIErc"
Rockridgeさんのツイート: "Fx53:ページタイトルがタブの幅に収まらない場合、末尾に省略記号を入れずに文字列が薄れて消えるようにした。タイトルが多く表示されたほうがよいだろうとの判断に基づく。 / “658467 – Fade out tab label…” https://t.co/PwRhmpjWZ2"
Rockridgeさんのツイート: "Fx53:Web互換性上の問題を修正するシステムアドオンを導入(Fx49時点では実体がなかったらしい)。特定のサイト向けにユーザーエージェント(UA)文字列を修正する。参照:https://t.co/HZJzqo5ZpF https://t.co/vO76fptP8E"
Rockridgeさんのツイート: "Fx53:リンクをドラッグした際、ページの端にかかると、ページがスクロールするようになった。 / “41708 – Should be able to scroll in the viewport while dragging” https://t.co/sr76LoQkLc"
Rockridgeさんのツイート: "Fx53:<input type="date">が指定されている場合の入力UIが実装された。デフォルト無効でありdom.forms.datetimeをtrueにすると有効化される。 / “1283385 – Implement …” https://t.co/LylhN1wmNK"
Rockridgeさんのツイート: "HTMLフォームで日付・時刻を入力するUIのFirefoxへの実装状況について説明したスライド。参照:https://t.co/CHK2leXhDa / “Date/Time Input Types by Jessica Jong” https://t.co/lZtm7fh2bH"
TPE DOM/Date time input types - MozillaWiki
Rockridgeさんのツイート: "Fx53:Webページのプリレンダリング機能の実装を開始。link要素のrel属性でprerenderの指定がされているURLが対象。browser.groupedhistory.enabledとdom.linkPrerender… https://t.co/tgSs1nsCrx"
Rockridgeさんのツイート: "Fx53:フォームのドロップダウンメニューに40を超える項目が含まれるときは、項目の絞り込み検索が可能になった。 / “1309935 – Add ability to find within select dropdown w…” https://t.co/RWRs2bCLKT"
Rockridgeさんのツイート: "Fx53:他のブラウザからブックマークをインポートする際、処理をまとめて行うことで大幅な高速化を実現した。 / “1344759 - Use insertTree API to import bookmarks from oth…” https://t.co/BUx6WTS9u6"
Rockridgeさんのツイート: "Fx53:同一サイトに複数のアカウントを保有し、それらがパスワードマネージャに登録されている場合、ユーザー名またはパスワードのフィールドにフォーカスが当たった時点で、自動補完候補が表示される。 / “376668 – Impro…” https://t.co/UD4z2vKCBT"

54

Rockridgeさんのツイート: "Firefox 54でHTML5のdialog要素がサポートされる見込み。参照:https://t.co/LstQ4paiuJ / “Intent to implement: HTML5 <dialog> element - G…” https://t.co/O7MlfBikgB"
Rockridgeさんのツイート: "Fx54:Firefox Sync動作時、あるクライアントのブックマークの項目に欠損があると判断したときは、他のクライアントに対し、該当する項目をアップロードするよう求める(そしてこれに応答する)仕組みが実装された。 / “13…” https://t.co/A5DMPOFQRg"
Rockridgeさんのツイート: "Fx54:Firefox Syncがブックマークの欠けた項目を補うのは、他に未処理の項目がない場合に限られる。 / “1345754 - Only validate when there are no pending chang…” https://t.co/3v4mUsRS5J"
Rockridgeさんのツイート: "Fx54:layers.gpu-process.allow-softwareをtrueに変更するとGPUプロセスがソフトウェアcompositorを使用するようになる。そのほうがパフォーマンスや安定性が改善する環境もあるようだ。 https://t.co/6bpXWGo1s0"

55

Rockridgeさんのツイート: "Fx55:<script nomodule>を実装した。参照:https://t.co/CoF7seXJye / “1330900 - Implement <script nomodule>” https://t.co/Yy9cMrG2Do"
Rockridgeさんのツイート: "Fx55:mimeTypes.rdfの内容をhandlers.jsonに移行させ、今後は後者を使用するようにした。 / “1287658 - Migrate from "mimeTypes.rdf" to "handlers.j…” https://t.co/fy5RjLOG8W"
Rockridgeさんのツイート: "Fx55:新しい設定画面では〔アップデート〕のカテゴリーにFirefoxのバージョンが表示され、最新版かどうかも確認できる。アップデート履歴を表示するボタンもある。 / “1356507 - The Updates pane s…” https://t.co/yuWRfFt3AL"
Rockridgeさんのツイート: "Fx55:image.mem.animated.discardableの設定をtrueに変更すると、アニメーションGIFなど動的に変更される画像について、アクティブでなくなったものはデコード済みのデータがメモリから追い出されるよう… https://t.co/55CoESgyrg"
Rockridgeさんのツイート: "Fx55:ヘッドレスブラウジングモードをサポート。GUIのない状態で動作し、自動化テストなどに向く。なお、Chrome 59も同様のモードをサポートする。参照:https://t.co/qNrbFSRZkA / “1338004…” https://t.co/zE2yyvMeFe"
Rockridgeさんのツイート: "Fx55:アニメーション画像が非アクティブの場合にデコード済みのデータをメモリから追い出す機能が、デフォルト有効化された。省メモリ化に効果がある。 / “686905 - Discard animated images to s…” https://t.co/60lN1DASra"
Rockridgeさんのツイート: "Fx55:キャッシュ上のデータを使うか、新たにデータを取得するかを決める新しいアルゴリズムが実装された。network.http.rcwn.enabledの設定をtrueに変更すると有効化される。 / “show_bug.cgi…” https://t.co/NtFSyzMlRI"
Rockridgeさんのツイート: "Fx55:新規タブ内のサムネイルの生成処理が高コストであることから、再計算は1分間以上空けてから行うようにした。 / “1350781 - gBrowserThumbnails._topSiteURLs is super ine…” https://t.co/EWv2g59IhX"
Rockridgeさんのツイート: "Fx55:toolkit.cosmeticAnimations.enabledの設定が追加された。これをfalseにすることでタブやフルスクリーンなど複数のアニメーションを一括してオフにできる。新しい設定画面にはこの設定を操作する… https://t.co/zfLuzF2Esh"
Rockridgeさんのツイート: "Fx55:クリップボードにコピーされた画像を、テキストエリアに貼り付けることができるようになった。 / “1317322 - Pasting image from clipboard fails in some cases” https://t.co/8l4grl9sLf"
Rockridgeさんのツイート: "Fx55:GPUプロセスがクラッシュし、またはキルされた場合も、3回まではプロセスが再起動するようになった。 / “1337131 - Enable restarting the GPU process when it dies” https://t.co/JEdhKtMffq"
Rockridgeさんのツイート: "Fx55:初期状態でスマートロケーションバーにサジェストされる対象を、Alexaのトップ20サイトにまで拡大。 / “1344276 - Make sample list of top 20 websites (of …” https://t.co/8WGrhkdk8Q"
Rockridgeさんのツイート: "Fx55:大量のタブを含むセッションを復元する際、UIが応答可能になるまでの時間を大幅に短縮した。たとえば、330タブの復元だと従来の11秒が1.5秒になるという(コメント11)。 / “1345090 - Modify Ses…” https://t.co/6HeS9UqW4T"
Rockridgeさんのツイート: "Fx55:ブックマークの作成日時も同期されるようになった。 / “676563 - Bookmarks sync does not sync bookmark timestamps” https://t.co/otLpLpgQeN"
Rockridgeさんのツイート: "Fx55:マルチプロセス機能(e10s)有効時、beforeunloadイベントの作動記録を保持することでタブを閉じる際に毎回イベントの有無を確認する必要をなくし、処理を高速化した。参照:… https://t.co/94cHP0qIOj"
Rockridgeさんのツイート: "Fx55:キャッシュサイズの上限値を5%上回った時点でキャッシュの追加を停止するようにした。キャッシュの排出処理が追いつかず、総サイズが増え続ける問題に対処するための措置。 / “1342722 - Firefox cache …” https://t.co/g1klaSwQ3P"
Rockridgeさんのツイート: "Fx55:リンクに対するmousedownイベントを検知した時点で、mouseupイベントの検知を待たずに投機的に接続処理を行うようにした。読み込みの開始が50 - 300ミリ秒早くなるという。 / “1348278 - Spe…” https://t.co/YrWRcEcJiU"
Rockridgeさんのツイート: "現在の計画では、Android版Firefox 55でCustom TabsとスタンドアロンモードのプログレッシブWebアプリを、56でWebExtensionsとブックマークフォルダの操作を、57で新UI(Photon)をそれぞ… https://t.co/2QOm0ICp55"
Rockridgeさんのツイート: "Fx55:サイトがHTTPからHTTPSへリダイレクトされる場合、スマートロケーションバーにはHTTPSのものが表示される。 / “1341350 - Visiting an insecure (http://) site th…” https://t.co/OBetdfKaT6"
Rockridgeさんのツイート: "Fx55:セッションに保存されるDOMストレージのデータを2Kに制限し、I/O処理の低減を図った。 / “1362058 - Further limit the amount of sessionStorage data we …” https://t.co/EG44tHDpeL"
Rockridgeさんのツイート: "Fx55:Display Listの構築処理を改善。Wikipediaの"JavaScript"の項目で、5.5ミリ秒が4.3ミリ秒に。 / “1342009 - A fast path for BuildDisplayList…” https://t.co/uUx7SyzukK"
Rockridgeさんのツイート: "Fx55:font-size: larger/smallerの指定がある際のフォントサイズ計算を、競合ブラウザの処理を参照しつつ単純化した。具体的には、1.2倍ずつ変化する形となる。 / “1361550 - Make font…” https://t.co/8mykLnB03l"
1361550 - Make font-size: larger/smaller a simple ratio
Rockridgeさんのツイート: "Fx55:Firefox Syncの同期処理中にブックマークに変更が加えられた場合、追加で同期処理を行うことでブックマーク間の不整合を低減させた。 / “1335891 - Immediately trigger another…” https://t.co/sD6dBiR6M7"
Rockridgeさんのツイート: "Fx55:Firefoxがデフォルトのブラウザに設定されているかどうかのチェックは、2回目の起動から行うようにした。インストールから初回起動までの流れをスムーズに進ませる措置の一環。 / “1367073 - Ship move…” https://t.co/IyHBdk2HWQ"
Rockridgeさんのツイート: "Fx55:Windows向け軽量インストーラが64bit版をインストールする際に2GB以上のメモリを搭載しているかチェックする。 / “1366860 - Add 64-bit minimum memory requiremen…” https://t.co/0LOGMKjLhz"
Rockridgeさんのツイート: "Fx55:本体起動時のメインスレッドI/Oを減らして起動を高速化。 / “1363398 - GetShellFolderPath is expensive during startup” https://t.co/pYvNqNQwxM"
1363398 - GetShellFolderPath is expensive during startup
Rockridgeさんのツイート: "Fx55:バックグラウンドで動作するトラッキング用スクリプトについては、処理を反復する間隔を強制的に10秒に延ばすということらしい。参照:https://t.co/dUoAeG0Bbr https://t.co/tEUs2wcUhO https://t.co/2zyZyd1hZ4"
Rockridgeさんのツイート: "Fx55:起動時に複数のスクリプトのデコードをまとめて非同期に処理することで、起動完了までの時間を短縮した。 / “1364974 - Allow off-thread decoding multiple scripts for…” https://t.co/iWdwiFQQdv"
Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、フォームにカレンダーから日付入力する機能が有効化された。参照:https://t.co/bttKiU6dWs / “1366188 - Enable dom.forms.datetime b…” https://t.co/OTMFEXS59a"
Rockridgeさんのツイート: "Fx55:input要素のtype属性がdateのときはカレンダーからの入力が可能である一方、同属性がtimeのときはそうしたUIが用意されない。この差は、時刻についてはキーボードで直接入力したほうが早いとの考慮によるという。 https://t.co/GlfgrqUdsj"
Rockridgeさんのツイート: "Fx55:Linux版でヘッドレスブラウジングモードがデフォルト有効化。ただしSlimerJSまたはMarionetteとの組み合わせが前提となる。参照:https://t.co/isO8OeR6tf / “Shipping H…” https://t.co/JNrBMBiUL0"
Rockridgeさんのツイート: "Fx55:Cookie用データベースを閉じる処理を非同期で行うようにした。 / “867798 - Cookie Service closes DB on main thread” https://t.co/Zde7cppxfF"
Rockridgeさんのツイート: "Fx55:Windows版で、システムフォントの探索結果をキャッシュして再利用するようにした。開発者いわく150ミリ秒以上の処理短縮になる。 / “1371157 - cache results of system font l…” https://t.co/NJNlJyUnar"
Rockridgeさんのツイート: "Firefox 55.0.1以降、再びNetwork Predictorのプリフェッチ機能が無効化されている。 / “1388160 - Disable predictor prefetch (again!)” https://t.co/Fqac8Xv8LE"
Rockridgeさんのツイート: "Fx55:Firefox Syncのネットワーク処理を完全非同期化。 / “1355677 - Make all Sync network requests promise/async based” https://t.co/QPIeHGkkwb"
Rockridgeさんのツイート: "Fx55:タブIDの割当て処理を非同期化。 / “1337064 - Make tab ID allocation asynchronous” https://t.co/GMuOX7Jawb"
Rockridgeさんのツイート: "Fx55:ユーザーがアドレスバーにhttp、httpsやftpなどの文字を入力したときは、検索サジェストを行わないようにした。 / “show_bug.cgi?id=1280441” https://t.co/aafBIuqjir"
Rockridgeさんのツイート: "Fx55:colSpan/rowSpanの取扱いを最新の仕様に合わせた。 / “1359822 - Match standard for colSpan/rowSpan” https://t.co/gtLQfYZeFJ"
Rockridgeさんのツイート: "Fx55:スクロールバーをドラッグする場合もスクロールが非同期化されるようになった。 / “1211610 - (async-scrollbar-drag) [Meta] Enable async scrolling via s…” https://t.co/8w2DbITfY8"
Rockridgeさんのツイート: "Fx55:Windows版で、ダウンロードパネルに表示されたファイルを開く際、EXE以外のファイル形式(JARなど)であっても、起動の確認が行われるようにした。 / “1369771 - Confirm launching ex…” https://t.co/02WwQoJ9Sg"

56

Rockridgeさんのツイート: "Fx56:設定の保存処理を非同期化した。 / “789945 - Save preferences asynchronously” https://t.co/8urOjUThma"
Rockridgeさんのツイート: "Fx56:rel=noopenerが付与されたリンクを開くときは、新しいプロセスを使うようにした。 / “1370971 - Open `noopener` links in a new process” https://t.co/pHzxYbiKwi"
Rockridgeさんのツイート: "Fx56:style要素のscoped属性のサポートが廃止される見通し。Fx21からデフォルト有効化されていたもの。Chromeは37で削除済みだという。参照:https://t.co/ICNZ85S7gM / “Intent …” https://t.co/FZkQMqEM7O"
Rockridgeさんのツイート: "Fx56:Windows版でもヘッドレスモードをサポート。 / “1355150 - Support headless mode on Windows” https://t.co/Q7x1TkqIbQ"
Rockridgeさんのツイート: "Fx56:ブックマークをJSON形式でバックアップする処理を非同期化した。 / “1095426 - Convert JSON backups code to the new Bookmarks.jsm API” https://t.co/36RZufIan9"
Rockridgeさんのツイート: "Fx56:SQLiteのストレージが使用するメモリについて、圧縮処理をできる限り非同期で行うようにした。 / “1166166 - Shrink Sqlite memory on the async thread when po…” https://t.co/agQaOsszCe"
Rockridgeさんのツイート: "Fx56:Mozillaは以前からHTML Importsをサポートしないと宣言していたが、ついに実装部分を削除するに至った。参照:https://t.co/rBj4JXZcpy / “1197401 - Remove our …” https://t.co/SHEAAve24l"
Rockridgeさんのツイート: "Fx56:フォームコントロールに用いられる要素についてlabelsプロパティをサポート。 / “556743 - Implement the labels attribute” https://t.co/mt2Jmd4Te5"
Rockridgeさんのツイート: "Fx56:スペルチェッカーの動作が文字列の処理速度を著しく低下させないように調整を加えた、ということらしい。 / “1370754 - Setting innerHTML to editor is slower than Chr…” https://t.co/Fr4iOddIZT"
Rockridgeさんのツイート: "Fx56:セッション情報を保存したファイルをLZ4形式で圧縮するようにした。 / “934967 - [Session Restore] Read/write data with lz4” https://t.co/t4BJneL4ru"
Rockridgeさんのツイート: "Fx56:Nightlyチャンネルで行われているトラッキング用スクリプトの動作抑制について、フォアグラウンドタブの処理が重いときはバックグラウンドタブの抑制を強化するといった、きめ細かな制御を行うらしい。 / “1362322 …” https://t.co/4mvEylQkk6"
Rockridgeさんのツイート: "Fx56:ICU(International Components for Unicode)ライブラリが59へとアップデートされた。参照:https://t.co/DvjSCGgiJD / “1353650 - Update o…” https://t.co/am39SqxIR7"
Rockridgeさんのツイート: "Fx56:link要素の"rel=preload"をサポート。参照:https://t.co/wQPIUWPpyR / “1222633 - Add support for <link rel=preload>” https://t.co/4iX9imSbzj"
Preload を用いたリソースプリローディングの最適化 | blog.jxck.io
Rockridgeさんのツイート: "Fx56:Windows版/Linux版NightlyにQuantum CSSがデフォルト無効で投入された。layout.css.servo.enabledをtrueにすると有効化される。参照:… https://t.co/pYPZWUHOpK"
<isindex> 対応が廃止されました | Firefox サイト互換性情報
<applet> 対応が廃止されました | Firefox サイト互換性情報
Rockridgeさんのツイート: "Fx56:フレームが子要素のリフローを複数回発生させる場合の処理を高速化した(コメント62)。AmazonやNew York Timesなど実環境のWebサイトでも効果があるらしい。 / “1308876 - Nested in…” https://t.co/H4hu4ecm12"
Rockridgeさんのツイート: "Fx56:バックグラウンドのタブにおけるHTMLのパースをアイドル時に行うようにし、プチフリを低減。 / “1355746 - Parser should use idle dispatch and not a timer fo…” https://t.co/yDEI7x5yVk"
Rockridgeさんのツイート: "米国のen-US版ユーザーに限定して、Firefox 56でForm Autofill機能が有効化されるかもしれない。クリスマス商戦に間に合わせるべくFx57では全面的な有効化を行う見通し。参照:… https://t.co/FVbaLa8q3k"
Rockridgeさんのツイート: "Firefox 56では、Windows/macOS/Linuxのどのプラットフォームにおいても、Node.jsのselenium-webdriverパッケージを使用することで、ヘッドレスモードを制御できる。 / “Headle…” https://t.co/fUiobSP3sZ"
Rockridgeさんのツイート: "Fx56:フォームにカレンダーから日付入力する際、一定の間隔を空けた日付のみ選択できるUIが実装された。また、現在日を強調表示するようにもなっている。参照:https://t.co/MuMB1KHS64 / “1363672 -…” https://t.co/6UcbOBujVO"
Rockridgeさんのツイート: "Fx56:セッション復元時、復元されるのを待っているタブにおいて投機的なコネクションを実行するようにした。複数のウィンドウを復元する際の待ち時間が減るとみられる。 / “874533 - Use speculative conn…” https://t.co/f2BOWCRRWu"
Rockridgeさんのツイート: "Fx56:「最近の履歴を消去」でIndexedDB、Service WorkerとDOMキャッシュのデータも削除するようにした。参照:https://t.co/97uwog6f8N / “1047098 - 'Clear Rec…” https://t.co/uIN4WyqV4W"
Rockridgeさんのツイート: "Fx56:window.showModalDialogが常時無効化(有効化できない)。Fx57ではこのAPIに関するコードも削除された。参照:https://t.co/CD0DKO3GCa / “981796 - Remove …” https://t.co/e594Nn5s2M"
Rockridgeさんのツイート: "Fx56:アップデータがLZMA形式のデータ圧縮をサポート。従来のbzip2形式と比較して、20%近くデータサイズを削減できた。 / “641212 - LZMA support for updater” https://t.co/uyYV1niBly"

57

Rockridgeさんのツイート: "Fx57:ページの読み込みが150ミリ秒以内に終わるときは、停止・再読込ボタンのアニメーションを行わないようにした。 / “1384180 - Don't animate the stop->reload if the page…” https://t.co/ReVNI1QiQL"
Rockridgeさんのツイート: "Fx57:タブを閉じる際、閉じる処理が終わる前に隣のタブのフォアグラウンド化を先行させることで、体感上の速度を向上させた。 / “1355426 - When closing tabs, select the next tab …” https://t.co/Sa2AR1Oey4"
Rockridgeさんのツイート: "Fx57:Placesデータベースの期限切れ処理について、5分間アイドル状態が続いた場合に大きな処理を行うようにすることで、パフォーマンスの低下を抑えた。 / “1376533 - Use idleDispatch for Pl…” https://t.co/7FPF5o21QS"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、オートスクロールにもAsync Pan/Zoom(APZ)が適用されるようになった。参照:https://t.co/sWDHJLVj0V / “APZ autoscrolling enabl…” https://t.co/HdXj2v28It"
Rockridgeさんのツイート: "Fx57:Lazy Frame Constructionを編集可能領域にも適用。Webメールの入力やブログ記事の編集などの場面でパフォーマンスが向上する。参照:https://t.co/pnk51XaKNm / “1348073…” https://t.co/cB2gw5C4Bb"
Rockridgeさんのツイート: "Fx57:バックグランドのタブへのマウスオーバーがあった時点でタブ切り替え後の処理の一部を投機的に開始しておくことにより、体感上の速度を向上させた。 / “1385453 - Make it possible for async…” https://t.co/yZJkSpDAov"
Rockridgeさんのツイート: "Fx57:browser.tabs.loadBookmarksInTabsの設定をtrueに変更することで、ブックマークを開く際、新しいタブにコンテンツが表示されるようになる。 / “658245 - Open bookmark…” https://t.co/vgoyLKH1fi"
Rockridgeさんのツイート: "ディスプレイのリフレッシュのタイミングに合わせてmousemoveイベントをまとめて処理する仕組みがFirefox Nightly 57に実装されるらしい。イベントの実行コストを削減することが目的。 / “Enable coal…” https://t.co/WEgb5BNc1G"
Rockridgeさんのツイート: "Fx57:browser.xulからスクリプトをロードする際、サブスクリプトローダーを使用することで、プリローダーキャッシュから別スレッドの単一のゾーンに読み込むなどの処理が可能となり、本体の起動が高速化された。 / “1384…” https://t.co/B753EwzC2n"
Rockridgeさんのツイート: "Fx57:アクセシビリティ機能が有効の場合(高DPI環境でディスプレイ設定が拡大表示のときを含む)、タブバー上にインジケータが表示されるようになった。accessibility.indicator.enabledをfalseにする… https://t.co/WJ1RddRVJa"
Rockridgeさんのツイート: "Fx57:タブのコンテキストメニューに「タブを複製」が追加された。 / “455722 - Add context menu item to duplicate (clone) tab” https://t.co/qskO1EL3GD"
Rockridgeさんのツイート: "Fx57:本体起動時に各種設定ファイルやシステムスタイルシートなどを別スレッドで非同期に読み込むようにし、パフォーマンスを向上させた。 / “1363482 - Pre-load files needed during star…” https://t.co/rnjiiJuUcX"
Rockridgeさんのツイート: "Fx57:新規タブのサムネイル生成処理はアイドル時に行うようにした。 / “1348280 - Thumbnail causes jank on sites with a requestAnimationFrame” https://t.co/fhaGFRH9C2"
Rockridgeさんのツイート: "すべてのXPConnect JSモジュールを単一のコンパートメントに読み込む仕組みは、Firefox Nightly 57にデフォルト無効で投入された。この仕組みが有効化された場合のパフォーマンス向上の度合いは大きいようだ。 https://t.co/zPw8mwlmhk"
Rockridgeさんのツイート: "Fx57:ヘッドレスモードのコマンドラインからスクリーンショットを撮影できるようになった。--screenshot=/path/to/fileというコマンドを使用する。 / “1378010 - Take a screensho…” https://t.co/GKweM0uzUW"
Rockridgeさんのツイート: "Firefox 57の起動速度はFirefox 55と比較して約50%も高速化したという。 / “Photon Engineering Newsletter #16 | Dolske's blog” https://t.co/x26ABPpaCW"
Rockridgeさんのツイート: "Fx57:Fluentをベースにした新しいローカライズ用フレームワークを導入。参照:https://t.co/wRK9Vxc6R5 https://t.co/v2sqxF4SSl / “1333980 - Land L10nRe…” https://t.co/DJ8xOstoX2"
Rockridgeさんのツイート: "Fx57:eTLD(effective TLD)のルックアップ機構を改良し、省メモリ化とパフォーマンス向上を同時に実現した。Chromeの技法を採り入れたという。 / “1380154 - Improve Effective T…” https://t.co/BrRY7DEuob"
Rockridgeさんのツイート: "Fx57:Async Iterationをデフォルト有効化。 / “1352312 - Update Async Iteration to follow the proposal change and let it ride t…” https://t.co/qfcsqSTqJS"
Rockridgeさんのツイート: "Fx57:入力イベントの処理の優先順位を高めることで、応答性を向上させたらしい。 / “1351148 - Add an event queue to nsThread for input events and annotate…” https://t.co/VkAm8javR3"
Rockridgeさんのツイート: "Fx57:戻るボタンで履歴を遡る際、新規タブページに戻ることができるようになった。 / “776167 - can't go back to the new tab page” https://t.co/xiwLGviB3B"
Rockridgeさんのツイート: "最小タブサイズを従来の半分にする新仕様に対しては賛同者が多く、Firefox 57にも投入されそうな雰囲気だ。 / “Changes to tab min-width” https://t.co/IfnDzXtZsz"
Rockridgeさんのツイート: "Fx57:ブックマークをHTMLからインポートした場合、Firefox Syncの処理としては新しいブックマーク項目の追加として扱うようにした。これまではリストアの扱いになっていた。 / “1353217 - importing…” https://t.co/FDzZCuVtR4"
Rockridgeさんのツイート: "Fx57:iframe内に読み込まれたデータURLはクロスオリジンとして扱われるようになった。クロスサイトスクリプティング(XSS)の危険を軽減するための措置。 / “Treating data URLs as unique o…” https://t.co/CIAosZzaxO"
Rockridgeさんのツイート: "Fx57:アドレスバーの検索サジェストの候補に、過去の検索履歴の項目が含まれるようになった。 / “1181644 - search suggestions in the awesome bar should include l…” https://t.co/YTT5oiMBWP"
Rockridgeさんのツイート: "Fx57:MS-IMEやGoogle日本語入力を使用しつつアドレスバーにフォーカスを当てると入力モードがオフになるというIME側の仕様に、対策を施した。 / “show_bug.cgi?id=1404206” https://t.co/2lX511vr3T"
Rockridgeさんのツイート: "タブの最小サイズを76にするのは最終決定のようだ。Firefox 57もこれでいく。参照:https://t.co/tsIVZifLOs / “Changes to tab min-width” https://t.co/hxCxWq71om"
Rockridgeさんのツイート: "Fx57:ツールバー上に「伸縮自在のスペース」を配置した場合、それによってできる空白領域をドラッグして、ウィンドウを移動させることができるようになった。 / “1387415 - Use flexible spaces (and…” https://t.co/rZtK0IqiuD"
Rockridgeさんのツイート: "Fx57:設定画面でフォントを列挙する処理を非同期化した。 / “1375978 - Enumerating fonts should not block about:preferences from being display…” https://t.co/B75IaWWwOJ"
Rockridgeさんのツイート: "Fx57:Web版Twitter上で既に多数のツイートを表示している場合などに、タイムラインにおける新規ツイートの表示に時間がかかる問題を修正。 / “1368852 - twitter's load "new results"…” https://t.co/coNg3CdeDr"
Rockridgeさんのツイート: "Fx57:日本語版に初期登録されるフィードリーダーがFeedly/Inoreader/AOL Readerの3つに決まった。Feed Watcherはフィード登録用のURLが存在しないため今回は採用が見送られた。 / “1383…” https://t.co/6oa5Hkp0XQ"
Rockridgeさんのツイート: "Feed Watcherの開発会社がフィード追加用URLを公開し、急遽Firefox 57にも追加されることが決まった。 / “1413155 - [ja] Add Feed Watcher as feed handler” https://t.co/Yk2l9M0YTs"
Rockridgeさんのツイート: "Fx57:フォームにカレンダーから日付入力する機能がデフォルト有効化された。 / “1399036 - Enable date/time input by default on all builds” https://t.co/gSVuvpDgKH"
Rockridgeさんのツイート: "Fx57:設定画面の〔プライバシーとセキュリティ〕にサイトデータのディスク使用量が表示され、ユーザーがサイトデータを個別に・まとめて削除できるようになった。 / “1399398 - Turn on the Storage Ma…” https://t.co/2UF2a7XLCh"
Rockridgeさんのツイート: "Fx57:ウェブ開発メニューのWebIDEで、シミュレーター機能が削除された。 / “1398061 - Remove simulators from WebIDE” https://t.co/EEAd8BPE3G"
Rockridgeさんのツイート: "Akamaiが大規模なデータを基に調査したところによると、Firefox 57はFirefox 52との比較でDOM Content Loadedの時間が24%改善したという。 / “measuring-performance-…” https://t.co/9jfkJeNknt"
Rockridgeさんのツイート: "Fx57:ホームタブ・新規タブのセクションごとに、「?」マークのアイコンを置き、設定画面へのショートカットが表示されるようにした。セクションをオフにする方法がわかりにくいという声に配慮したもの。 / “1404345 - Use…” https://t.co/Za2EigAEVs"
Rockridgeさんのツイート: "Fx57:仕様上、Firefox Screenshotsはプライベートブラウジングモードでは使用不可。 / “1403661 - Stop Screenshots from activating in private brows…” https://t.co/mlvaQpBby1"
Rockridgeさんのツイート: "Firefox 57で発生していた、スクリーンリーダー使用時に本体のパフォーマンスが低下する問題は、Firefox 58でおおむね解消されたとのこと。 / “NVDA and Firefox 58 - The team is r…” https://t.co/1uclU9zVpi"
Rockridgeさんのツイート: "Fx57:検索プラグインにeBayを追加。Fx50で外れていたが、eBayと再契約したことにより戻ってきた。 / “1406164 - Bring eBay back” https://t.co/DYoo3zIDrB"
Rockridgeさんのツイート: "Fx57:Windows版インストーラが使用する画像ファイルが高DPIに対応した。 / “1337856 - Installation assets in Windows are low dpi” https://t.co/DyuRIkoe82"

58

日本語版Firefox 58では初期登録のフィードリーダーが3つに - Mozilla Flux
Rockridgeさんのツイート: "リリース版でPointer Events(マウス・タッチ・ペン入力)がデフォルト有効化されるのは、Firefox 58になる見通し。 / “Firefox/Channels/Meetings/2017-07-06 - Mozil…” https://t.co/ttXU9hB2WU"
Rockridgeさんのツイート: "Fx58:一定の条件を満たす場合にgetComputedStyleがリスタイリングをスキップするようにして処理を高速化。参照:https://t.co/QsQ3FjtetY / “getComputedStyle now ski…” https://t.co/mMrL6L1DFg"
Rockridgeさんのツイート: "Fx58:Windows版Nightlyで、描画処理の非同期化(OMTP:Off Main Thread Painting)が有効になった。 / “1403935 - Enable OMTP by Default on Wind…” https://t.co/7oVJrPLJYk"
Rockridgeさんのツイート: "Fx58:browser.tabs.tabMinWidthの設定を復活させ、その初期設定値を100から50に下げた。Chromeのようにタブバー上に大量のタブが並ぶことになる。 / “1404465 - Add back `br…” https://t.co/TJd9x74IV4"
Rockridgeさんのツイート: "Firefox 58で<a ping>のサポートを検討中。リンクが押された際にリンク先とは別にログ用のURLにリクエストを投げることが可能になる。参照:https://t.co/eGE9yxM3MT … https://t.co/q8zvG775fA"
Rockridgeさんのツイート: "link要素の"rel=preload"はWeb互換性の問題が生じているため、Firefox 57でいったん無効化し、Firefox 58での再有効化を目指すという。 / “Intent to unship: rel=prelo…” https://t.co/NwBqqAD8kD"
Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58でデフォルト有効化の見込み。 / “Firefox/Meeting/10-Oct-2017 - MozillaWiki” https://t.co/WuQJbntFRW"
Rockridgeさんのツイート: "複数のタブを選択する機能は、Firefox本体に実装の予定があるらしい。Firefox 58に入るかも。参照:https://t.co/yrd8Scdooj / “Firefox/Meeting/10-Oct-2017 - Mo…” https://t.co/JzKaLEVRCb"
Rockridgeさんのツイート: "Fx58:general.smoothScroll.msdPhysics.enabledをtrueにすると、スムーズスクロールの挙動が変更される。新しいアルゴリズムを採用したらしい。変更後の挙動のほうが加速が大きくなる印象だ。 https://t.co/Fp4qts3l2d"
Rockridgeさんのツイート: "Fx58:軽量インストーラがレジューム機能を備えた。ダウンロード中にネットワーク接続が途切れた場合、接続再開後はダウンロードの途中から復帰する。 / “798005 - Add resume support to the stu…” https://t.co/9bm9CnpE46"
Rockridgeさんのツイート: "Fx58:Shiftキー + ホイールの縦スクロールでコンテンツの横スクロールが可能に。16年前に登録されたバグの修正となる。参照:https://t.co/W9z5tNaCz1 / “Intent to ship: New d…” https://t.co/AtTWu05dEi"
Rockridgeさんのツイート: "Fx58:Pointer Events(マウス・タッチ・ペン入力)がデフォルト有効化へ。参照:https://t.co/PT8iVENNx4 / “Intent to ship: Pointer Events (Desktop)” https://t.co/0iJTd4ZGcb"
Rockridgeさんのツイート: "Fx58:パスワードやセキュリティ証明書を保存するデータベースが、SQLiteを用いた新しいファイルフォーマット(cert9+key4)に移行した。 / “783994 - switch Mozilla to use the c…” https://t.co/iunqpvVTvk"
Rockridgeさんのツイート: "Android版Firefox 58でWebアプリマニフェストをサポート。HTTPS接続したサイトが正統なマニフェストを持つ場合、ホームスクリーンに追加するとアプリ的に振る舞う。 / “Add Progressive Web A…” https://t.co/7yPKale3Rg"
Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58リリース版に投入される見通し。 / “These Weeks in Firefox: Issue 26 – Firefox Nightly News” https://t.co/YcDbKagjZT"
Rockridgeさんのツイート: "Fx58:ポップアップブロックのアイコンが、アドレスバーの右端ではなく、左端の情報領域に置かれるようになった。 / “1331931 - Move the popup blocked icon into the identity…” https://t.co/KgxlTIkYGu"
Rockridgeさんのツイート: "Fx58:Android版Firefoxのビルド環境がGCCからClangに移行した。参照:https://t.co/jNmNvXnqrm / “Fennec now builds with clang instead of g…” https://t.co/guOap9dZxr"
Rockridgeさんのツイート: "Fx58:Android版FirefoxのビルドにGradle Build Toolが用いられるようになる。参照:https://t.co/BdAhqay5zS / “[ann] Default Fennec build con…” https://t.co/FK5aUptWTk"
Rockridgeさんのツイート: "Fx58:Webサイトがcanvas要素のImageDataを使用する際、ユーザーに許可を求めるようになった。ユーザーの識別に利用されるおそれがあるため。 / “Firefox 58 warns you if sites use…” https://t.co/KPOTyvt6YX"
Rockridgeさんのツイート: "Fx58:ユーザーが追加する検索エンジンのアイコンについて、サイズの上限が10KBから20KBに引き上げられた。アイコンが表示されない問題が起きにくくなる。 / “361923 - Can't use remote search…” https://t.co/QHTU72eXw7"
Rockridgeさんのツイート: "Fx58:バックアップしておいたブックマークを復元する際、エラーが出た項目をスキップして処理を行うようになった。一部が原因で全く復元できないという事態を避けられる。 / “1404631 - Firefox 56: "Unabl…” https://t.co/aCzwQknT2z"
Rockridgeさんのツイート: "Fx58:YouTubeのように複数のファビコンが設定されている場合、適切なものを取得してタブに表示するようにした。これまでは最後に記述されたファビコンを取得しているだけだった。 / “1403829 - YouTube ico…” https://t.co/yg8blFHbvP"
Rockridgeさんのツイート: "Fx58:Async Places Transactionsが有効の場合に、フォルダをまたいで大量のブックマークをコピー・移動する際のパフォーマンスが改善された。 / “1413843 - Cut/Copy/Move opera…” https://t.co/Vfi0G8A5Rf"
Rockridgeさんのツイート: "Firefox 58では、WebページがデータURLドキュメントを開くことやデータURLドキュメントに遷移することがブロックされるという。 / “Blocking Top-Level Navigations to data UR…” https://t.co/nRc41rjpEK"
Rockridgeさんのツイート: "Fx58:ページ内検索で、不可視のテキストまでヒットしてしまう後退バグを修正。 / “1302470 - Find in page should only find visible text” https://t.co/o5Qp14cE9m"
Rockridgeさんのツイート: "Firefox 58にデフォルト無効で実装された、Webサイトがcanvas要素のImageDataを使用する際にユーザーに許可を求める機能は、もう少しきめの細かい制御を可能にしつつ、サンドボックス化されたiframeで有効化する… https://t.co/hFoVooV2hn"
Rockridgeさんのツイート: "Fx58:マウスでスクロールバーを操作してスクロールする際、一部のページでバーのつまみ部分が追随しない後退バグを修正。 / “1402995 - Scroll thumb not synchronized with mouse” https://t.co/nem7u17IgR"
Rockridgeさんのツイート: "Fx58:about:profilesで、プロファイルの削除処理を非同期化し、サイズの大きなプロファイルを削除しても本体の応答性に支障が出ないようにした。 / “1406818 - Firefox hangs when dele…” https://t.co/Waj7LdxOJq"
Rockridgeさんのツイート: "Fx58:アドレスバーのメニューから〔リンクをコピー〕した際、「コピーしました」とのメッセージが表示される。 / “1408135 - Copy URL confirmation message should appear wh…” https://t.co/p2vVgWMlqW"
Rockridgeさんのツイート: "Fx58:大きなデータURIが開かれているタブの切り替えを高速化。 / “1408854 - Very slow tab-switching when a tab with a large data URI is open” https://t.co/3HPbCce4Dd"
Rockridgeさんのツイート: "Firefox 58の主な改良点について。Firefox Quantumの前では霞んでしまうが、通常であれば新機能が多数実装された、大きめのリリースと言えるだろう。 / “Firefox/Roadmap/Updates - Mo…” https://t.co/oVJkmx70Y1"
Rockridgeさんのツイート: "Fx58:ショートカットキーを用いてブックマークを登録する場合も、デフォルトのフォルダが「他のブックマーク」となり、挙動が統一された。 / “1120110 - Standardize default output folder…” https://t.co/3fU22oBPBo"
Rockridgeさんのツイート: "Fx58:常に適切なサイズのファビコンが取得されるよう調整を加えた。 / “1347532 - The page-icon protocol should default to the best size for most UI…” https://t.co/mVwLfuyYkm"
Rockridgeさんのツイート: "Fx58:Cookieデータベースの起動処理を非同期化した。 / “870460 - Lazy load of cookie service blocks main thread while cookie database lo…” https://t.co/bkrPRgpn9P"
Rockridgeさんのツイート: "Fx58:プライベートブラウジングモードにおいても、ブラウジングライブラリーで「このサイトの履歴を消去」が使えるようになった。 / “1394824 - "Forget About This Site" is missing i…” https://t.co/WOmj0B1LaK"
Rockridgeさんのツイート: "Fx58:トラブルシューティング情報(about:support)のページに「国際化とローカライズ」のセクションが加わり、ロケール関連の情報が表示されるようになった。 / “1414975 - Add locale inform…” https://t.co/9HzZircWJ9"
Rockridgeさんのツイート: "Fx58:Firefoxをリフレッシュした際、ブックマークツールバーにデフォルト以外のブックマークが4つ以上あるときは、ツールバーを隠さないようにした。 / “1415692 - New/Reset profiles shoul…” https://t.co/ncvaBujGCR"
Rockridgeさんのツイート: "Firefox 58のFirefox Screenshotsはプライベートブラウジングモードに対応しており、スクショのクラウド保存はできないがダウンロードは可能。モード終了時に削除される。参照:… https://t.co/xswmfdeMjW"
Rockridgeさんのツイート: "Firefox 58の紹介記事だが、CSS Font DisplayやPromiseの新機能にスペースを割くあたりがMozilla Hacksらしさか。 / “Firefox 58: The Quantum Era Contin…” https://t.co/cVFKD47t7o"

59

Rockridgeさんのツイート: "Fx59:textarea要素のautocomplete属性をサポート。参照:https://t.co/axCbzT9I7r https://t.co/EFTGGMOuXr / “Intent to Implement and …” https://t.co/JBhwK3kGI5"
Rockridgeさんのツイート: "Fx59:スリープ時におけるFirefox Syncの動作を抑えるべく、スリープ前に簡易同期を、スリープ復帰後に完全同期を行う。参照:https://t.co/ckTeDo2zD1 / “1416322 - Schedule a…” https://t.co/Am50jLUyM2"
Rockridgeさんのツイート: "Firefox Nightly 59でCustom Elementsがデフォルト有効化される見込み。 / “Intent to implement: Custom Elements” https://t.co/B4DkLHshgW"
Rockridgeさんのツイート: "Fx59:@-moz-documentルールがWebコンテンツから使用できなくなる。参照:https://t.co/hlLgfrJHdP / “Intent to unship: @-moz-document from cont…” https://t.co/XbWA54HUWY"
Rockridgeさんのツイート: "Fx59:ページのメタデータは変更があるときのみPlacesデータベースに書き込まれるようになった。無駄な書き込み処理が減ることに。 / “1420571 - Reduce I/O caused by storing page …” https://t.co/t08UABotdy"
Rockridgeさんのツイート: "Fx59:Race Cache With Network(RCWN)がデフォルト有効化。ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワーク要求を送り、応答が早ければそちらを利用する。 / “139284…” https://t.co/NKFFK3xWoD"
Rockridgeさんのツイート: "Fx59:古く、標準化もされなかったpcast/feedプロトコルを削除。フィードの購読機能には影響しない。参照:https://t.co/fDsD8FYi5X / “Intent to remove pcast and fee…” https://t.co/4JJ0i6IFKB"
Rockridgeさんのツイート: "Fx59:オプション画面の「保存されたログイン情報」において、コンテキストメニューからURLをコピーしたり、タブに開いたりすることができるようになった。 / “1334663 - Allow users to copy save…” https://t.co/1AKnxeRATp"
Rockridgeさんのツイート: "Fx59:最近の履歴を削除するなどして、フォーム履歴をまとめて削除した場合、Firefox Syncの同期処理にそれが反映されるようになった。 / “1404427 - Sync mass Form History deleti…” https://t.co/8RzyvKuAij"
Rockridgeさんのツイート: "Fx59:Firefox Screenshotsに、スクリーンショットをクリップボードに追加する機能が実装された。 / “1419148 - Export Screenshots 25.0.0” https://t.co/p5KTIXXrky"
Rockridgeさんのツイート: "Fx59:ピン留めしたタブのコンテキストメニューにも、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目が出るようになった。ただし閉じられるのはピン留めされていないタブに限られる。 / “1419537 - Unabl…” https://t.co/pgriZiNVXX"
Rockridgeさんのツイート: "Fx59:文字列の選択時、アンダースコアを文字列の一部として扱うようにした。従来は文字列の区切りとして扱われていた。 / “196175 - underscore should be part of word, not punc…” https://t.co/gnVqfOedtJ"
Rockridgeさんのツイート: "Fx59:オプションの〔プライバシーとセキュリティ〕内の「許可設定」欄で、通知の許可設定のUIに、すべての通知を拒否する設定が追加された。 / “1368744 - Provide a way for users to deny…” https://t.co/NKtKw6MKQp"
Rockridgeさんのツイート: "Fx59:Activity Stream導入後のホームタブ・新規タブにおいて、トップサイトの項目をドラッグ&ドロップで並び替えられるようになった。 / “1402192 - Top Sites drag and drop” https://t.co/Fz9UukKKZA"
Rockridgeさんのツイート: "Fx59:JAR形式のファイルに対する読み書きが非同期化され、本体の起動が高速化された。 / “1373708 - Convert Jar channels to stop using main thread I/O” https://t.co/vqj2t1HpqT"
Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、Web Authenticationがデフォルト有効化。参照:https://t.co/wfLGpyeoKL / “1428918 - Web Authentication - Enable…” https://t.co/to6Sb30OBf"
Rockridgeさんのツイート: "2017年12月19日時点のFirefox Nightly 59に約8万6000項目のブックマークをインポートしたテスト結果。Async Places Transactionsが無効だと処理終了までに優に3時間以上を要するが、有効… https://t.co/V3bXMtG39D"
Rockridgeさんのツイート: "Fx59:Placesデータベースの破損を検知した場合、データベースを新規作成して、元のデータベースから可能な限りテーブルを移し、当該新データベースで置き換える処理が、自動的に実行される。 / “1411538 - Add a …” https://t.co/kLYg40TPRH"
Rockridgeさんのツイート: "Fx59:オプション画面の〔検索〕に、アドレスバーにおいて履歴からのサジェストよりも検索結果からのサジェストを優先する設定が追加された。 / “1426216 - Allow users to choose whether se…” https://t.co/wOVt0TmuWV"
Rockridgeさんのツイート: "Fx59:プライベートブラウジングモードでは、リファラーポリシーがデフォルトでstrict-origin-when-cross-originに設定されるようになった。参照:https://t.co/V0ucWrNl6v / “5…” https://t.co/72lIIfzNf4"
Rockridgeさんのツイート: "Fx59:Windows以外のプラットフォームでは、プロファイルのパスが正規のUTF-8でない場合、本体が起動しないようにした。 / “1423855 - Refuse to run on non-Windows platfor…” https://t.co/1RpOPtdKXS"
Rockridgeさんのツイート: "Fx59:ディスプレイリストに変更がない場合もRetained Display Listsが機能するようになった。 / “1419021 - Retain display list when there are no chang…” https://t.co/KLrCoR0XW2"
Rockridgeさんのツイート: "Fx59:ピン留めされたタブ上でCtrl(Command)+ Wキーを押した場合、ピン留めされていない最初のタブがアクティブになるようにした。 / “1420601 - Let Accel+W in a pinned tab s…” https://t.co/oa40Tb6TuX"
Rockridgeさんのツイート: "Fx59:ロケールのリストは、新たに設けられたintl.locale.requestedの設定内に記述されることになった。 / “1414390 - Introduce a pref to store BCP47 locale …” https://t.co/xw6xs76gzU"
Rockridgeさんのツイート: "Fx59:fileプロトコルのURIについては、同期対象から外されることになった。 / “664590 - History sync: ignore file:/// URIs” https://t.co/g9Wj0glJW0"
Rockridgeさんのツイート: "Fx59:table要素内でもposition: stickyが有効となった。 / “975644 - Make position: sticky work on table parts” https://t.co/FGGUilMpMH"
Rockridgeさんのツイート: "Fx59:dom.webcomponents.enabledの設定名をdom.webcomponents.shadowdom.enabledへと変更した。 / “1428685 - Consider renaming pref …” https://t.co/LDyy1rKxdl"
Rockridgeさんのツイート: "Fx59:tab warming機能が有効の場合、タブの閉じるボタンにカーソルをホバーさせた時点で、そのタブを閉じた際にアクティブになるタブのwarming処理が始まる。 / “1430292 - Warm up tab we'…” https://t.co/3UTy7j4YWX"

6x

60

Rockridgeさんのツイート: "Firefox 60リリース版において、USB接続されたFIDO U2Fデバイスがサポートされる見通し。その後もFIDO 2.0デバイスのサポートが拡充されていくという。 / “Intent to Ship: Web Authe…” https://t.co/jYn7i7b5b6"
Rockridgeさんのツイート: "Firefox 60で、Webコンテンツから使用されるjarプロコトルのサポートが廃止される見込み。参照:https://t.co/SwIrq4Fecp / “Intent to unship: remote jar: prot…” https://t.co/Q8mvHfpqXZ"
Rockridgeさんのツイート: "Firefox 60ではNightly/Developer Editionにおいてアプリケーションキャッシュ(AppCache)の利用が安全なコンテキストに限定される見通し。Firefox 62リリース版でも同様の措置へ。参照:… https://t.co/l58xbEEYLd"
Rockridgeさんのツイート: "Firefox 60でPolicy Engineが実装されるのに伴い、AutoConfig機能は廃止予定となる見込み。 / “1434655 - Make AutoConfig ESR only starting with Fi…” https://t.co/gIefqhB6OI"
Rockridgeさんのツイート: "Fx60:Rust言語製の新しい設定パーサが実装された。従来よりも高速かつ安全で、エラーメッセージがわかりやすく正確になり、メンテナンスもかなりしやすくなったという。参照:https://t.co/YlVSP1Gep3 / “N…” https://t.co/DY50wXxS0L"
Rockridgeさんのツイート: "Fx60:設定画面の〔プライバシーとセキュリティ〕の「サイトデータ」で、"すべてのデータを消去"を選択すると確認画面が表示され、キャッシュも削除できるようになった。 / “1422163 - Make a new confirm…” https://t.co/tfEBO7oghi"
Rockridgeさんのツイート: "Firefox 60に実装されたStructured Bookmark Applicationを取り上げている。ブックマークの同期時、サーバから読み込まれた内容をそのままデータベースに書き込むのではなく、中間的なツリーを構築するの… https://t.co/UhQfOqbHmj"
Rockridgeさんのツイート: "Fx60:スクリーンの横幅が十分にある場合、新規タブに表示されるトップサイトを1列あたり8つに増やすとともに、ハイライトのカードサイズを大きくするようにした。 / “1385944 - Support wider layout …” https://t.co/KctiojbENY"
Rockridgeさんのツイート: "Fx60:軽量インストーラがダウンロードを行う際、HTTPS接続を用いるようにした。 / “1246387 - Use https for stub installer requests” https://t.co/rPdBG5f2OZ"
Rockridgeさんのツイート: "Fx60:browser.urlbar.openintabの設定をtrueに変更すると、アドレスバーに入力された内容(URLまたは検索クエリ)は、常に新規タブで表示される。 / “1394304 - Support always…” https://t.co/oyF3ZqvmCv"
Rockridgeさんのツイート: "Fx60:security.insecure_connection_text.enabledの設定をtrueに変更すると、HTTP接続のページでは、アドレスバーに"Not Secure"つまり「安全でない接続」と表示されるようにな… https://t.co/sDMQzLG4ey"
Rockridgeさんのツイート: "Fx60:network.ftp.enabledの設定をfalseに変更すると、FTPプロトコルを無効にできる。 / “1374114 - Add a pref to disable ftp://” https://t.co/2DX18Pxfyo"
Firefox ESR60以降でのPolicy Engineによるポリシー定義の手順 - ククログ(2018-02-19)
Rockridgeさんのツイート: "Fx60:security.mixed_content.upgrade_display_contentの設定をtrueにすると、静的混在コンテンツにおいてHTTP接続が指定されたリソースを、HTTPS接続によって取得するという。 https://t.co/hCExsfu3kB"
Rockridgeさんのツイート: "Fx60:Cookie関連の設定がサイトデータのセクションに移された。Cookieはサイトデータの一部として扱われ、Cookieのみを一覧から削除することはできなくなった。 / “1432743 - Move cookie se…” https://t.co/onK6zsWjpt"
Rockridgeさんのツイート: "Policy EngineはFirefox 60で、ESRに限らず通常版でも利用可能になるようだ。ただし、一部の重要なポリシーはESRでのみ有効となる。 / “Intent to Ship: Enterprise Policies” https://t.co/2vf50eZCg8"
Rockridgeさんのツイート: "Fx60:新規タブ内のセクションごとにコンテキストメニューが設けられた。セクションを閉じたり削除したりできるほか、新規タブの設定を呼び出すことも可能。 / “1422079 - Add section context menu …” https://t.co/nikNbXfr8k"
Rockridgeさんのツイート: "Fx60:「ページのソースを表示」する際、新規ウィンドウに表示させる設定が廃止された。常に新規タブに表示されることになる。参照:https://t.co/JETAsOLAq1 / “Feature Removed: View S…” https://t.co/n6NebKKPCp"
Rockridgeさんのツイート: "Fx60:フレーム数の多いアニメーションGIF画像やAPNG画像を表示させた際、大量のメモリを消費する問題を修正。 / “523950 - Long animated images (GIF, APNG) makes Firef…” https://t.co/iWzpUYTCWc"
Rockridgeさんのツイート: "Fx60:長大なテキストファイルを表示する際、パフォーマンスが著しく低下する問題を修正。 / “1427625 - Performance cliff loading a Taskcluster log” https://t.co/IN56Y6rovT"
Rockridgeさんのツイート: "Fx60:Windows向け64bit版で、プラグインプロセスによるプロセス間通信がSSLによって保護されるようになったらしい。 / “1429643 - Restrict SSL brokering in NPAPI proc…” https://t.co/z7HFh3ohMq"
Rockridgeさんのツイート: "Fx60:Web Authentication利用時のパーミッションUIが実装された。 / “1430150 - Web Authentication - Prompt for permission before permitt…” https://t.co/oNqyW3BPZV"
Rockridgeさんのツイート: "Fx60:フォーム履歴の処理を非同期化。 / “888784 - FormHistory.jsm migration and DB creation should be off the main thread” https://t.co/uJ3qhQQ1rt"
Rockridgeさんのツイート: "Fx60:他のブラウザからブックマークや履歴などをインポートする際の処理について、非同期化を進めた。参照:https://t.co/j4gd1MhPeH / “862127 - profile migrators do all …” https://t.co/SV3KzEXyE0"
Rockridgeさんのツイート: "Fx60:workerが常時有効化。 / “1434934 - Get rid of dom.workers.enabled pref” https://t.co/n5Puw0CfqV"
Rockridgeさんのツイート: "Fx60:HTMLテキストでもCSSのpaint-orderプロパティがデフォルト有効化された。参照:https://t.co/ygLlo9FN8w / “Firefox 60 – Modules and More – Mozi…” https://t.co/ScyIRlmQG1"
Rockridgeさんのツイート: "MozillaがFirefox 60以上を使用するen-USロケールユーザーの1%を対象に、ファイルのダウンロード先としてクラウドストレージを指定可能にする機能の実験を行った。実験は今後も形を変えて継続される見込み。 / “Un…” https://t.co/ebDLXgiJfH"

61

Rockridgeさんのツイート: "Firefox 61以降、ビルドの際にNode.jsが必須となる模様。参照:https://t.co/rKdElYR1j2 / “Intent to require Node to build Firefox 61 and la…” https://t.co/pTb3yIO7k4"
Rockridgeさんのツイート: "Fx61:contentプロセスの生成時、メインスレッドをブロックしないようにした。パフォーマンスの改善が期待できる。 / “1348361 - Remove sync IPC when launching a child pr…” https://t.co/ZNOhFaKKPr"
Rockridgeさんのツイート: "Fx61:Windows版で、Async Pan/ZoomのコントロールをGPUプロセスのメインスレッドが担当するようになった。ユーザー入力時の応答性が向上するという。 / “1441324 - Make the APZ con…” https://t.co/DYPO4Hqtu0"
Rockridgeさんのツイート: "Fx61:browser.tabs.closeTabByDblclickの設定をtrueに変更すると、選択したタブをダブルクリックするだけで、そのタブを閉じることができる。 / “1435142 - Pref to enable…” https://t.co/SpyVyNcaBy"
Rockridgeさんのツイート: "Fx61:最終同期時間の表示が、日時ではなく、相対的にどれくらい前か(例:4時間前)を示すものになった。 / “1184265 - Make last sync date be relative” https://t.co/J1f2flpJ9Q"
Rockridgeさんのツイート: "Fx61:mousewheel.autodir.enabledをtrueに変更すると、縦書きのサイトでふつうにマウスホイールを回転させるだけで横スクロールが行われる。 / “1358017 - (autodir) autodir…” https://t.co/kwYm4EiRBk"
Rockridgeさんのツイート: "Fx61:「ページ情報」ウィンドウのセキュリティ欄からCookie以外のサイトデータも消去できるようになった。 / “1348223 - Organize site data (persistent storage) bette…” https://t.co/IHe1sqedfA"
Rockridgeさんのツイート: "Fx61:新規タブがページのサムネイルを取得する際、トラッキング防止機能が常に働くようになった。データ漏洩を予防するだけでなく、コネクションが減るのでスピードアップも実現できるという。 / “1449294 - Capture …” https://t.co/hXV9luZJqD"
Rockridgeさんのツイート: "Fx61:セッション復元の際、常に、前回終了時にアクティブだったウィンドウがアクティブになる形で、復元が行われるようになった。 / “1034036 - [Session Restore] Load windows by des…” https://t.co/1lD4vhya1W"
Rockridgeさんのツイート: "Fx61:Web互換性上の問題を修正するシステムアドオンがバージョン2にアップデートされた。特定のプラットフォームでUA文字列を上書きする機能や、特定のサイトを対象にJavaScript/CSSを挿入する機能が実装されている。 https://t.co/byIYxS2vKa"
Rockridgeさんのツイート: "Fx61:HTTP(S)ページによるFTPサーバーからのリソース読み込みをブロックする理由について。FTPは古いプロトコルであり、暗号化がされずセキュリティに問題があるので、少しずつ利用可能な範囲を狭めていくようだ。 / “Bl…” https://t.co/NRpjVzzRId"
なかのん&マジックさんのツイート: "自分で書いてたけど却下されてUIチームが引き取ってくれてた"browser.tabs.insertAfterCurrent"という設定、Firefox 61から入ってたことに今気付いた。"
なかのん&マジックさんのツイート: "これで仕事がはかどる。"
なかのん&マジックさんのツイート: "イライラしてカッとなって書いたパッチだったのに投入されてるのに9ヵ月も気付いて無いとか("

62

Rockridgeさんのツイート: "Variable Fontのデフォルト有効化はFirefox 62に延期された。 / “1455785 - Pref off OpenType Font Variations (Variable Font) support” https://t.co/h5EwnqNk2L"
Rockridgeさんのツイート: "Fx61:ブロックリスト関係のAPIを非同期化し、本体のパフォーマンスを改善した。 / “1447680 - Make blocklist APIs asynchronous” https://t.co/rgaLEgUpyw"
Rockridgeさんのツイート: "Fx62:RDF形式のファイルのサポートを廃止した。 / “833098 - Kick RDF out of Firefox and Gecko” https://t.co/6JqJiY55Tz"
Rockridgeさんのツイート: "Fx62:browser.tabs.loadBookmarksInTabsの設定がtrueの場合であっても、現在のタブが空白のときは、現在のタブにブックマークされたページを読み込むようにした。 / “1417133 - When…” https://t.co/VanNJcR53v"
Rockridgeさんのツイート: "Fx62:アドレスバーの自動補完機能のアルゴリズムが改善された。 / “1239708 - Improve the autofill decisions algorithms” https://t.co/vzGQvo57YJ"
Rockridgeさんのツイート: "Fx62:アドレスバーからポップアップされるコントロールセンターに、「Cookieとサイトデータを消去する」ボタンが付いた。ページを閲覧しながら、そのサイトのプライバシー情報を消せるので便利だ。 / “1462469 - Add…” https://t.co/6bPEwgkE8Z"
Rockridgeさんのツイート: "Fx62:browser.tabs.multiselectを有効化し、複数のタブを選択した状態で、うち1つのタブを閉じると、選択したタブすべてを閉じることができる。 / “1458022 - Implement ability …” https://t.co/yZSEZKmkp9"
Rockridgeさんのツイート: "Fx62:Firefox Syncの接続を切断した際、ローカルに保存されたSyncのデータを削除するかどうか尋ねるようにした。 / “1409208 - Provide users on disconnect an option…” https://t.co/ZiYSWtgbDs"
Rockridgeさんのツイート: "Fx62:メニューパネルに、トラッキング防止機能のオン・オフを切り替える項目を追加。Fx63では設定画面から防止対象を細かく制御できるようにする計画がある。参照:https://t.co/63RFOfeJ5U / “146246…” https://t.co/N3yU88pu4d"
Rockridgeさんのツイート: "Fx62:Android版FirefoxでもRace Cache With Network(RCWN)がデフォルト有効化。 / “1377570 - Enable RCWN on mobile” https://t.co/zZZTJdIx69"
Rockridgeさんのツイート: "Fx62:新規タブ・ホームタブ内で使用されるPNG画像について、データURIではなくBlobとすることで、省メモリ化を実現した。 / “1436615 - Lots of memory used for activity str…” https://t.co/CJ7xGZGO62"
Rockridgeさんのツイート: "Fx62:個別のブックマークのプロパティやブラウジングライブラリーから、「説明」欄が省かれた。データ自体は保持されているが、将来のバージョンで自動的に削除される模様。 / “1463738 - Remove the Bookma…” https://t.co/FHJtD297LU"
Rockridgeさんのツイート: "Fx62:アドレスバーの候補表示において、古すぎる履歴がヒットしないよう調整した。 / “1464454 - Consider an higher use_count limit for adaptive history” https://t.co/xMCLbDB1xv"
Rockridgeさんのツイート: "Fx62:storage.localのIndexedDBバックエンドはデフォルト無効化されており、extensions.webextensions.ExtensionStorageIDB.enabledをtrueにする必要がある。… https://t.co/57Ph71fK0T"
Rockridgeさんのツイート: "Fx62:デフォルト有効化予定であるシェイプパスエディタについて。文章が図形を回り込む際の位置関係を直感的に調節できる。 / “Jen Simmonsさんのツイート: "I’m proud to show you the nex…” https://t.co/Q2dCa1OkQK"
Rockridgeさんのツイート: "Fx62:開いているタブを異なるコンテナで開き直すことが可能に。 / “1376119 - containers: "reopen in .." option” https://t.co/fkXyyiqunr"
Rockridgeさんのツイート: "Fx62:アイデンティティパネル中のトラッキング防止機能のUIが改善された。サイト単位のオン・オフを切り替えることができるほか、設定画面にも飛ぶことができる。 / “1462470 - Update Tracking Prote…” https://t.co/WfFojmZvdj"
Rockridgeさんのツイート: "Fx62:複数タブの選択機能を有効化し、現に複数のタブを選択した状態でCtrl+wキーを押すと、選択したタブをすべて閉じることが可能に。 / “1467340 - Ctrl+w/Ctrl+f4 should close all …” https://t.co/bfjzrOVyr4"
Rockridgeさんのツイート: "Fx62:ブックマークの追加時などに表示されるダイアログで、そのページのサムネイルが表示されるようになった。 / “1460248 - Display preview image and favicon in the New B…” https://t.co/et1l8rrw8v"
Rockridgeさんのツイート: "Fx62:ブックマーク追加時、ブラウジングライブラリーに保存した旨のメッセージが表示されるようになった。 / “1459907 - Implement new bookmark confirmation” https://t.co/CPWRvwWxmv"
Rockridgeさんのツイート: "Fx62:アドレスバーにURLを貼り付けた際、URL末尾に空白が含まれている場合はそれを除去するようにした。 / “1460097 - Hidden character in pasted url gets wrongly in…” https://t.co/ZjA6h9rAMR"
Rockridgeさんのツイート: "Fx62:リリースチャンネルで、AutoConfig機能の利用はオリジナルAPIの範囲に限定されることになった。もっとも、general.config.sandbox_enabledの設定を追加してfalseに変更すれば回避できる… https://t.co/wMnyXXYL2o"
Rockridgeさんのツイート: "MozillaはFirefox 62のリリース後、en-US版のユーザーを対象として順次、Firefox Monitor(情報流出判別ツール)を利用可能にしていく模様。参照:https://t.co/zMMiYeTnWV https://t.co/qxmUsBhwEG"
Rockridgeさんのツイート: "Fx62:1つのホストにおけるCookieの上限数を150から180に引き上げた。 / “1460251 - Up limit to 180 cookies and expose limit prefs” https://t.co/2grfhLUH2Q"
Rockridgeさんのツイート: "Fx62:Windows版ではbrowser.startup.blankWindowの設定がデフォルト有効化されているので、起動開始後すぐに空白のウィンドウが表示される。 / “show_bug.cgi?id=1473142” https://t.co/93GQXVmjNI"
Rockridgeさんのツイート: "Firefox 62においてLayout関連で修正されたバグ一覧。CSS Parsing and Computation、DOM: CSS Object Model、Layout、Layout: Block and Inline、… https://t.co/mLXBE7FZaj"

63

Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化し、現に複数のタブを選択した際、現在のタブが選択対象となっているかどうかが判別しやすくなった。 / “1468705 - Cannot tell that a tab is multisele…” https://t.co/Mg3Ug7b9tA"
Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化した場合、複数選択したタブをまとめてピン留めし、あるいはそのピン留めを解除することができるようになった。 / “1458060 - Implement ability to pin/unpin…” https://t.co/v6iTAfTnkn"
Rockridgeさんのツイート: "Fx63:ブックマークの追加時などに表示される編集パネルにおいて、ブックマーク追加時に同パネルを表示するかどうかを選択するチェックボックスが付いた。チェックを外すと直ちにブックマークの追加処理が行われる。 / “1459878 …” https://t.co/zQMGvABZhN"
Rockridgeさんのツイート: "Fx63:オプションの〔ホーム〕欄で、「既定値に戻す」ボタンは設定の変更があった場合にだけ表示するようにした。 / “1434751 - Add Restore Defaults button to Home” https://t.co/zpd78Itbs1"
Rockridgeさんのツイート: "Fx63:検索結果を新規タブで表示する設定(https://t.co/cuNRKYzzc7.openintabがtrue)にしている場合でも、現在のタブが空白のときは、そのタブに検索結果が表示される。 / “1455326 - When brow…” https://t.co/yS9ifouIZ9"
Rockridgeさんのツイート: "Fx63:ブックマークに付随する「説明」欄のデータが、Placesデータベースから削除された。 / “1402890 - Stop supporting and remove the description annotation” https://t.co/5VOvnk5HVy"
Rockridgeさんのツイート: "Fx63:Placesデータベースのnotificationsシステムに大きな改修が加えられた。今後、ブックマークや履歴に適用されて本体のパフォーマンスが向上する見通し。 / “1340498 - Redesign the Pl…” https://t.co/3z5tSfmEJT"
Rockridgeさんのツイート: "Fx63:ブロックリストの読み込み時にプチフリが起きないようにした。 / “1454378 - Loading the blocklist is janky” https://t.co/wFVB3iaOMf"
Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効にし、現に複数のタブを選択した状態で、Shift+Ctrl/Cmdキーを押したまま他のタブを選択すると、選択範囲を拡張できる。 / “1473187 - Add ability to selec…” https://t.co/I6xxhK6iqB"
Rockridgeさんのツイート: "複数タブの選択機能は、将来的にデフォルト有効化される見通し。 / “1474938 - Enable the multiselect tabs feature by default for release and beta bu…” https://t.co/qWCCOUZFFT"
Rockridgeさんのツイート: "Fx63:about:performanceから"Memory usage of Subprocesses"欄が削除された。利用率の低さなどが理由だが、開発者の中にも代替機能の実装を望む声がある。参照:… https://t.co/BKyAU4YHKQ"
Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、複数タブの選択機能がデフォルト有効化された。具体的な機能は今後も随時実装されていく。複数タブのブックマークや別ウィンドウへの移動が実現されてからが本番だろう。 / “1474704 - En…” https://t.co/qI8YeVjoQP"
Rockridgeさんのツイート: "Fx63:Windows版で、ジャンプリストの生成処理を非同期化し、パフォーマンスを向上させた。 / “1425144 - 0.34 severe hangs / khr in CreateFileW while creatin…” https://t.co/yHjVRWsvwz"
Rockridgeさんのツイート: "Fx63:contentプロセス間で本体の設定データを可能な限り共有する仕組みとし、省メモリ化を図るとともにプロセスの起動を高速化した。参照:https://t.co/90Ad0YVcBF / “1471025 - Use sh…” https://t.co/8d8nfxMIb8"
Rockridgeさんのツイート: "Fx63:ショートカットに"-no-remote"を指定していない場合であっても、about:profilesの「プロファイルを別のプロセスで起動」が正しく動作するようになった。 / “1367743 - About:profi…” https://t.co/6wtZJsWw1x"
Rockridgeさんのツイート: "Fx63:about:policiesのページにアクティブなグループポリシーが列挙されるようになった。参照:https://t.co/Uy7ILTieUf / “show_bug.cgi?id=1472528” https://t.co/Myzr4906xT"
Rockridgeさんのツイート: "Firefox Nightly 63で、Content Blocking(旧トラッキング防止)を有効化し、"Slow Tracking Elements"を"Always block"に設定すると、Webページの読み込みが高速化す… https://t.co/TKwSTe48KR"
Rockridgeさんのツイート: "Fx63:オプションの〔プライバシーとセキュリティ〕の「トラッキング防止」は、妨害コンテンツのブロックへと名称が改められ、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能が加わった。 / “1476217 -…” https://t.co/urzksJTKME"
Rockridgeさんのツイート: "Fx63:Content Blocking(妨害コンテンツのブロック)に関する設定UIを常時有効化。 / “1476879 - Remove the privacy.trackingprotection.ui.enabled p…” https://t.co/MUfScrRH69"
Rockridgeさんのツイート: "Fx63:FastBlockでサードパーティのコンテンツを何でもかんでもブロックしてしまうとWebページの表示が崩れるため、スタイルシート、フォントおよび画像はブロックの対象から除かれている。 / “1482129 - Exem…” https://t.co/7xjFgY408E"
Rockridgeさんのツイート: "Fx63:Windows版Firefoxを規定の「メール」アプリに設定できるようにした。 / “675428 - register firefox as default mail client” https://t.co/5G8E7sNAJM"
Rockridgeさんのツイート: "Fx63:browser.newtabpage.activity-stream.asrouterExperimentEnabledの設定をtrueに変更すると、Contextual Feature Recommender(CFR)… https://t.co/sQKhaLdD2F"
Rockridgeさんのツイート: "Fx63:1つのホストにおけるCookieの上限数が180を超えた場合、期限切れのものや古いものから優先的に削除して、150まで減らすようにする。 / “1357676 - Implement batch eviction fo…” https://t.co/C94v54mshX"
Rockridgeさんのツイート: "Fx63:ページ内翻訳機能にGoogle Translation APIのサポートを追加。有料のAPIキーが備わっていないので一般ユーザーが恩恵を受けるには至らない。参照:https://t.co/vK1tCTzXSK / “1…” https://t.co/jDjrmQmzni"
Rockridgeさんのツイート: "Firefox 63においてLayout関連で修正されたバグ一覧。14項目に分かれる。 / “Platform/Layout/ReleaseNotes/63 - MozillaWiki” https://t.co/pvOdGutBbI"
Rockridgeさんのツイート: "Fx63:Windows版で、プロセスの優先度を調節する仕組みが実装された。 / “1394710 - Changing priority on Window processes” https://t.co/Dq8cFgmY0k"
Rockridgeさんのツイート: "Fx63:Policy Engineのポリシーがアクティブになるまで関連するコードを読み込まないようにし、消費メモリを削減した。 / “1470324 - Don't load EnterprisePoliciesContent…” https://t.co/r7gs2jwE8l"
Rockridgeさんのツイート: "Fx63:サイクルコレクションの処理が長引いてプチフリが発生するのを防止。 / “1397297 - nsCycleCollector::FreeSnowWhite() could be more incremental” https://t.co/p6t3FhUgUE"
Rockridgeさんのツイート: "Fx63:Windows版で、firefox.exeが直接メインプロセスを起動させるのではなく、まず起動プロセスを開始し、それがメインプロセスを生成するという仕組みが実装された。Firefox 64で有効化を目指す。 / “14…” https://t.co/WlBue8VCCm"
Rockridgeさんのツイート: "Fx63:contentプロセスに読み込まれるコンテンツ内検索バーのコードを最小化し、消費メモリを削減した。 / “1479318 - Minimize the amount of content Findbar code lo…” https://t.co/ESwy49pzly"
Rockridgeさんのツイート: "Fx63:タブの複数選択時には、コンテキストメニューに「タブを複製」の項目が表示されないようにした。 / “1481473 - Hide the "Duplicate Tab" menuitem when there is a …” https://t.co/1isv7c9cT2"
Rockridgeさんのツイート: "Firefox 63 Beta 5でタブの複数選択機能が有効化された。early betaにおけるテストとのことで、Beta 6でも有効のままだが、通常Beta 5はearly betaの期間外とされていることから、いつまで続くか… https://t.co/yhRsno0R3R"

64

Rockridgeさんのツイート: "Fx64:選択した複数のタブを端末に送信する機能が実装された。 / “1470555 - Implement ability to send a selection of tabs” https://t.co/JnAuJNffCk"
Rockridgeさんのツイート: "タブの複数選択機能のデフォルト有効化はFirefox 64に延期。一部機能の実装が間に合わなかったため。 / “1488904 - Enable multiselect tabs feature on early beta bu…” https://t.co/WTElNXtsLj"
Rockridgeさんのツイート: "Fx64:複数選択したタブをドラッグ&ドロップによってまとめてブックマークに追加できるようになった。 / “1480907 - Implement ability to bookmark a selection of tabs …” https://t.co/jzsdOrqW6T"
Rockridgeさんのツイート: "Fx64:about:crashesのUIが変更され、すっきりした感じになった。 / “1476062 - about:crashes user interface update” https://t.co/oZh6jWUvlm"
Rockridgeさんのツイート: "Fx64:キャッシュの利用によりサイクルコレクションの処理を改善。 / “1488413 - Investigate if CycleCollector could use a cache on top of the graph…” https://t.co/Kebcd4bmRJ"
Rockridgeさんのツイート: "Fx64:ブックマークをエクスポートする際、browser.bookmarks.max_backupsの設定値が正しく反映されるようにした。 / “show_bug.cgi?id=1066992” https://t.co/gebonavwQN"
Rockridgeさんのツイート: "Fx64:Mac版でも、Windows版のグループポリシーに相当するEnterprise Policyをサポートした。 / “1445943 - Enterprise Policy support for macOS” https://t.co/6RT0khRCZe"
Rockridgeさんのツイート: "Fx64:ホームタブ・新規タブで、検索フィールド以外のセクションの表示をすべて無効にした場合、検索フィールドの上部にFirefoxのロゴが表示されるようになった。Activity Stream以前に近い印象となる。 / “148…” https://t.co/PB1A71tQhW"
Rockridgeさんのツイート: "Fx64:タブの複数選択機能がデフォルト有効化された。 / “1474938 - Enable the multiselect tabs feature by default for release and beta builds” https://t.co/okhLNYE9J1"
Rockridgeさんのツイート: "Fx64:ハンバーガーメニューの「その他」にある"Task Manager"から、about:performanceのページを呼び出せるようになった。 / “1498186 - Add a 'Task Manager' item…” https://t.co/iv89VC5iKk"
Rockridgeさんのツイート: "Fx64:当初導入予定だった仕様を撤回し、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目はサブメニューに回らず、従前どおり独立した項目として表示される。 / “show_bug.cgi?id=1502083” https://t.co/xOZh27FAY1"
Rockridgeさんのツイート: "Fx64:選択した複数のタブは別のコンテナに送ることもできる。 / “1500098 - The user is unable to open multiple tabs in Container” https://t.co/sCoXmFwGf6"

65

Rockridgeさんのツイート: "Firefox Nightly 64にFeaturePolicyが実装される。Fx65でデフォルト有効化の見通し。参照:https://t.co/L9pPbp4DPZ / “Intent to implement: Featur…” https://t.co/Qu5vDDWIjd"
Rockridgeさんのツイート: "Fx65:macOS版で、WebブラウジングのHandoffをサポート。参照:https://t.co/89Uhx7z3dH / “1085391 - Support Yosemite Handoff "web browsing…” https://t.co/HITp4eaEPm"
Rockridgeさんのツイート: "Fx65:img要素にalt属性がない場合、src属性の指定の有無にかかわらず、置換要素が生成されるようになった。参照:https://t.co/5uSnkStghd / “show_bug.cgi?id=1196668” https://t.co/t1071LtPz2"
Rockridgeさんのツイート: "Fx65:従前の仕様を撤回し、タブの複数選択時においても「タブを複製」の項目が表示されるようになった。 / “show_bug.cgi?id=1497980” https://t.co/puMGrTPyrp"
Rockridgeさんのツイート: "Fx65:起動時に前回のセッションを復元する設定になっている場合であっても、ブラウザ終了時に警告を出す設定が無効化されなくなった。 / “550559 - Decouple Session Restore from Quit w…” https://t.co/DnuOkkuwaE"
Rockridgeさんのツイート: "Fx65:Nightlyチャンネルで、a要素などにtarget=_blankの設定がされているときは自動的にrel=noopenerが付与されるようにした。 / “1503681 - Make target=_blank on …” https://t.co/Vh5Im3UDfd"
Rockridgeさんのツイート: "Fx65:Async Pan/Zoom(APZ)のrelative scroll offset updatesという機能がデフォルト有効化された。 / “1507356 - Let apz.relative-update.ena…” https://t.co/6DBDWQp08q"

66

Rockridgeさんのツイート: "Fx66:すべてのタブを表示するドロップダウンメニューに「タブを検索する」という項目が追加された。アドレスバーにジャンプして検索が行える。参照:https://t.co/BCAVvM0glv / “1516083 - Add "…” https://t.co/W5LtD6dNiH"
Rockridgeさんのツイート: "Fx66:Scroll Anchoring機能をサポート。Nightlyチャンネルでのみ有効。設定はlayout.css.scroll-anchoring.enabled。参照:https://t.co/eZ2oRu6g5w https://t.co/28QHprCtlm"

67

Rockridgeさんのツイート: "Fx67:タブの複数選択時、選択されたアクティブでないタブについてタブ全体の色が変わるようになった。選択範囲がわかりやすくなる。 / “1515686 - Update multi-selected tab colour so it's more visible in default theme” https://t.co/Pi8vXfzJJH"
Rockridgeさんのツイート: "Fx67:Windows版Nightlyチャンネルで、Process Priority Managerがデフォルト有効化。バックグラウンドのタブのみを含むcontentプロセスについて処理の優先度を下げる。参照:https://t.co/jI2liaOBEW / “1476981 - Turn on dom.ipc.processPriorityManager.enabled in Nig…” https://t.co/WWMu9QGHVB"

Twitter

@rockridge07

histric-1

Rockridgeさんのツイート: "Firefoxのプロファイルフォルダ内に保存されている各種データファイルについて。 / “Profiles - Where Firefox stores your bookmarks, passwords and other u…” https://t.co/uKWJS6uRDn"
Profiles - Where Firefox stores your bookmarks, passwords and other user data | Firefox Help
Rockridgeさんのツイート: "Webブラウザの各種パーミッション機能の動作を試すことができる。 / “https://t.co/oZaDDgu7Vz” https://t.co/EdhybgqFmx"
Rockridgeさんのツイート: "Firefoxのセッション保存機能がSSDに対する大量の書き込みの原因になっているという記事。筆者の環境では1日12GBに達するそうだが、追記によればChromeだと1日24GBになったらしい。参照:… https://t.co/M6i353iuGJ"
Rockridgeさんのツイート: "Race Cache With Network(RCWN)は、ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワークリクエストを送り、応答が早かったデータを利用する新機能。Firefox Nightly 55… https://t.co/oHyzlzgz0J"
Rockridgeさんのツイート: "Firefoxは2017年末までにCustom Elementsをサポートする見通し。Shadow DOMについては未定。 / “1367205 - (QF-Polymer) Very poor Polymer performa…” https://t.co/Ar1HgAJlP3"
Rockridgeさんのツイート: "link要素のrel属性でprerenderの指定がされているURLを対象にWebページのプリレンダリングを行う機能をFirefox 53に実装したものの、先行するChromeが廃止の方針を示したので、有効化されないまま機能が削除… https://t.co/37U7zd8c30"
Rockridgeさんのツイート: "Firefoxは他のブラウザと異なりbutton要素内にリンクを置けない実装となっているが、仕様に適合しているのはFirefoxのほうであるらしい。 / “hyperlinks in buttons are probably n…” https://t.co/DrwqdTohEK"
Rockridgeさんのツイート: "Test PilotのSendで、ファイルのダウンロードに必要なパスワードを設定できるようになった。 / “Firefox Test Pilotさんのツイート: "We added password support to …” https://t.co/p2PPXtww89"
Rockridgeさんのツイート: "Bugzilla@MozillaでもGoogleアナリティクスが有効化される模様。ただしDo Not Trackをオンにしているユーザーは適用対象外となる。 / “208002.html” https://t.co/kZ736XHk9t"
Rockridgeさんのツイート: "MozillaのDoryプロジェクトはFirefoxの既存の設定をドキュメント化し、不要な設定を整理することを目指す。また、パフォーマンスが最適化される設定値の調査も行うようだ。 / “Project Dory - Mozill…” https://t.co/IDyL10TzOm"
Rockridgeさんのツイート: "Mozillaは2018年第3四半期ころまでに、ストレージ/データベース/同期にまたがる新システムを開発する計画だ。デスクトップ版・モバイル版双方で使う。参照:https://t.co/n0Uv6DYQFb / “0008-sy…” https://t.co/eK90st9S4Q"
Rockridgeさんのツイート: "Firefoxのヘッドレスモードにおいてできることの概略を述べた記事。 / “Using Headless Mode in Firefox – Mozilla Hacks – the Web developer blog” https://t.co/1VlvMDSVI4"
Rockridgeさんのツイート: "Firefoxに現存する3000以上の設定を整理したうえ、今後はガイドラインを設けて設定追加の要否をチェックしていく。参照:https://t.co/ojz5nNguyj / “All about Prefs” https://t.co/9X9fcpKE9a"
Rockridgeさんのツイート: "Firefox Nightlyで近々デフォルト有効化される見込みのtab warming機能について解説した記事。タブにカーソルをホバーさせた時点で予めレイヤーのレンダリング等を開始しておくことにより、タブの切り替えをスムーズにす… https://t.co/Cu5obZSjAw"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャでは、最新の暗号化技術によってパスワード等が保護される一方、Firefoxアカウントによるログインが必須になるかもしれない。 / “Firefox Lockbox alpha by Mo…” https://t.co/gZ81L14Enj"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャは、パスワードの生成機能を備えるほか、Firefoxアカウントでのサインインを前提に、クラウドへのバックアップも行えるようになりそうだ。 / “FAQs - Lockbox Extens…” https://t.co/QSxqSkLkgk"
Rockridgeさんのツイート: "2018年1月15日以降にGeckoに実装される、Webページ/サーバーからアクセス可能な新機能は、安全なコンテクスト(HTTPSなど)にあることが求められる。Distinguished Engineerが是認しない限り例外は認め… https://t.co/qlK5bwI4FM"
Rockridgeさんのツイート: "今後、Firefoxにはアドレスバーの入力・検索結果を新規タブに常時表示するための設定(browser.urlbar.openintab)が改めて追加される模様。また、将来的にはオプション画面からこの設定を制御できるようにする。 https://t.co/XEBRZtXZG2"
Rockridgeさんのツイート: "Geckoに新しくAnimationモジュールが設けられ、Brian Birtles氏がモジュールオーナーに就任した。 / “New module proposal: Animation” https://t.co/3Ed1ZHcip3"

Rockridgeさんのツイート: "将来的にFirefoxの軽量インストーラには、Mozillaの公式アドオンをダウンロードしてインストールする機能が実装されるようだ。 / “1414268 - Stub installer allows installing a…” https://t.co/W3mMrCoDhs"
Rockridgeさんのツイート: "Mozillaが2017年12月にアンケートを実施し、11.5万人以上のFirefoxユーザーから回答を得た。それによると、アンケートの際、76%のユーザーは5つ以下のタブしか開いていなかった。 / “The First Ina…” https://t.co/GIn1bO2cgU"
Rockridgeさんのツイート: "Mozillaは、いわゆるLooking Glass問題の再発防止策として、Shieldの実験において遵守すべき原則を公表した。参照:https://t.co/vv30EN0QqP / “Retrospective: Looki…” https://t.co/iMtmQLs8C2"
Rockridgeさんのツイート: "既にバックグラウンドで動作するスクリプト全般を抑制する仕組みが実装されているので、トラッキング用スクリプトだけを強く抑制する措置は執らないようにする模様。 / “Intent to remove: Throttling of t…” https://t.co/cIq9vTYGfS"
Rockridgeさんのツイート: "最小タブサイズを従来の半分(100 -> 50)にする新仕様に対し、Nightlyテスター等から異論が多く出された結果、サイズは70に引き上げられることに。 / “1404465 - Add back `browser.tabs…” https://t.co/b5fdmvDg9A"
Rockridgeさんのツイート: "Firefoxの設定関連のバックエンドにおける改修状況がまとめられている。 / “Platform/PrefsOverhaul - MozillaWiki” https://t.co/Jf9TYfiojH"
Platform/PrefsOverhaul - MozillaWiki
Rockridgeさんのツイート: "Firefox開発版のインストール時、独立したプロファイルを割り当てる機能の開発が進められている。割り当てられるプロファイルは新規のものではなく、リリース版のプロファイルのクローンになるようだ。 / “1419505 - All…” https://t.co/d5t4DrKXZO"
Rockridgeさんのツイート: "Firefoxアカウントにおいて、予備のメールアドレスを追加し、メインのメールアドレスに切り替える機能が、正式に公開された。 / “Changing your primary email in Firefox Accounts …” https://t.co/ogRBlMvo4p"
Rockridgeさんのツイート: "Firefox QuantumでFirefox Screenshotsがツールバーから消え、撮影数が一時減少したものの、概ね回復した。新UIで撮影完了までいく率は高まった。スクショはダウンロードする人が多く、最近はクリップボードへ… https://t.co/EiGzExOzZD"
So, How’s Screenshots Doing? – Firefox Test Pilot – Medium
Rockridgeさんのツイート: "Firefox/Thunderbird搭載のパスワードマネージャーについて、現在の水準からすると暗号化強度が低いのではとの指摘。コメント2では、Mozillaの開発者が、だからLockboxプロジェクトが進行中なのだと述べている。 https://t.co/VmKwBBrASb"
Wladimir Palant's notes: Master password in Firefox or Thunderbird? Do not bother!
Rockridgeさんのツイート: "MozillaはFirefoxのポップアップブロッカーの強化を検討中。必要なデータを収集するため、本拡張機能を通じて、ユーザーにページ内ポップアップが存在するURLを報告してほしいようだ。 / “In-Page Pop-up R…” https://t.co/lm1GM0VYOR"
In-Page Pop-up Reporter – Firefox 向けアドオン
Rockridgeさんのツイート: "tab warming機能は、タブ切り替え時の応答性向上に大きく貢献しているという。また、新規プロファイルでスマートブックマーク機能をなくす計画がある。 / “These Weeks in Firefox: Issue 35 –…” https://t.co/1HpOftnWbb"
Rockridgeさんのツイート: "Firefoxの複数タブ選択時におけるコンテキストメニューの案が掲載されている。また、従来、タブバーにタブが収まりきらない場合にメニューが表示される仕様だったが、このメニューを常時表示させる方針らしい。 / “Firefox b…” https://t.co/Nl7YRmGw4K"
Rockridgeさんのツイート: "MozillaがFirefoxユーザーを対象に調査したところ、Nehalem/Silvermont/Bulldozer以前のCPUを使用する割合が約20%だったという。 / “How much do we care about …” https://t.co/2wJylv0cnR"
Rockridgeさんのツイート: "Firefoxの複数タブ選択機能の実装状況について。モックアップもある。参照:https://t.co/khhPAfyMCX / “Email update for "Multi-Select tab in Firefox" p…” https://t.co/CViHzswxc5"
Rockridgeさんのツイート: "Firefoxのアドレスバー上のアイコンやページ操作メニューの項目を右クリックして表示されるコンテキストメニューから、アドレスバー上のアイコンの追加・削除が可能という小技を紹介。 / “How to add the share …” https://t.co/sCof4BPPn9"
Rockridgeさんのツイート: "Mozillaは、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能のことをFastBlockと呼ぶ。Nightlyチャンネルでは今後この機能をデフォルト有効化する見通し。参照:… https://t.co/vuUIZBM4FW"
Rockridgeさんのツイート: "Firefox 62でFirefox Monitor(情報流出判別ツール)を展開していく計画だったが、延期に。 / “1483430 - Backout fxmonitor system add-on from central …” https://t.co/yEFy0eLaB7"
Rockridgeさんのツイート: "Placesデータベースの新バックエンドとなることを目指したデータストレージシステムのMentatが開発中止に。プロダクトの投入に間に合うように開発することが難しく、採用先がなくなってしまった模様。 / “Pausing wor…” https://t.co/f3RuQkFnCr"
Rockridgeさんのツイート: "デスクトップ版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “notable-moments-in-firefox-desktop-ua-string-histor…” https://t.co/QxHkh1jfZl"
Rockridgeさんのツイート: "Android版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “Notable moments in Firefox for Android UA string h…” https://t.co/7ntQPN84Ul"
Rockridgeさんのツイート: "about:performanceの新UIに関するモックアップ。今後は、コントロールセンターに、閲覧中のサイトに関する消費電力への影響やメモリ使用量を表示するようにしていく模様。 / “Loading...” https://t.co/PjMbbb5dTz"

@d_toybox

サイト分離機能

なかのん&マジックさんのツイート: "意外なことにFissionにはAPZ必須になりそうなので"layers.async-pan-zoom.enabled"はabout:configから削除されるのかな? それとも無効な場合に現在のe10sモードとして動くようにするのかな? / 「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan https://t.co/h5Ww2THbIQ"
「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan
なかのん&マジックさんのツイート: "APZCは真剣に何をやってるのかまったく理解できないんだよな。もはや綺麗なのか汚いのかも分からんレベルで本当に難しい。"
なかのん&マジックさんのツイート: "もし担当辞めたら、まったく引き取れる気しないけど、こっちに来そうで怖い。"

なかのんクエストさんのツイート: "<meta property="og:url" content="http://" /> これで指定されてるURLになるのか、FirefoxのTwitterでの共有。"
なかのんクエストさんのツイート: "ワードラップとかネストとかもありますよ。Firefoxの実装が遅れてるの批判してた人の9割は何も考えてなかった印象。 https://t.co/WD8sWPOVdQ"
なかのんクエストさんのツイート: "日本で昔から見かける、パッチすら書かずに同じような事言ってる場合もアイデアそのものが全然イマイチなパターンの方が多い。逆に共感できたアイデアだと実際にパッチ書いたりしたことある。大きいのだと、マウスホイールにトランザクションの概念追加とか。"
なかのんクエストさんのツイート: "最近はあんまし一般のバグ報告者と直接やりとりすること無くなってるけど、それでも時々、バグである根拠を他のブラウザと違うこと、とする残念な人とのやり取りがつらい時ある。標準仕様に入らないグレーゾーンでなおかつ他のブラウザの動作がベターなら普通に同意するんだけどね。"
なかのんクエストさんのツイート: "グレーゾーンかつレガシーな部分って、今さら動作を変えると、Firefoxをちゃんとサポートしてるサイトが今度は壊れるんだよってパターンも多いんだよね。この場合、新しいAPI使ってくれるようにサイト側にお願いするしかない。"
なかのんクエストさんのツイート: "サブドキュメントがスクロール可能だった場合の処理がChromeとちょっと違うんだけど、Firefox 57の動作の方が何が起きてるか分からない感じは無いと思う。visibility:hiddenにはまだ非対応。ひとまず、よく使われるdisplay:noneだけ。 #もずでぶ"
いざてんさんのツイート: "Chromeは font-family: monospace; するとフォントサイズが一段小さくなるのをまず何とかしてくれませんかねぇ?"
なかのんクエストさんのツイート: "Firefoxも言語が日本語以外だとそうなる。各国の印刷での慣習とかもあるのかもしれないけど、この差異の直接の原因は、漢字のビットマップグリフが綺麗に見えるサイズをデフォルトにする必要があったので、同じフォントサイズを日本語には設定したんだと思う。"
なかのんクエストさんのツイート: "Netscape Navigatorや、初期のGeckoで、MacOSでのみ、日本語のデフォルトフォントサイズが小さかったのは、やはりビットマップグリフの問題で、他と同じ16pxでは綺麗じゃなかったと聞いてる。"
なかのん DAYS''さんはTwitterを使っています: ".@cobodo 最初はchrome 1プロセス、content 1プロセス、plugin 1プロセス。windowed pluginを除けば全てのユーザの入力はchromeプロセスでハンドリングされて、非同期通信で他のプロセスに送信される。"
なかのん&マジックさんのツイート: "ユーザがサイトごとに、Webアプリによる、ブラウザのショートカットキーの横取りを許可・不許可に出来るようになりました。 https://t.co/FbqIuRqSPG #もずでぶ"
なかのん&マジックさんのツイート: "Firefoxのmiddlemouse.pasteってデフォルトtrueで良くない? Ctrl + 中クリックで引用貼り付けという、メニューに無い貼り付けが利用できるんだし。"
なかのん&マジックさんのツイート: ""一番困ったのが Cmd+W に対する反応が遅くて(処理落ちしてる感じ)" https://t.co/Mdu91Cl5fl 体感速度でまだまだってのは分かってるし、感想とかはまあ良いんだけど、この点が私も絡んでるんで気になる。"
Firefox やめた - @kyanny's blog
なかのん&マジックさんのツイート: "Cmd+Wは数少ない、Webアプリに押した通知すら行かないreserved shortcutキーなんだけど、 https://t.co/S8WMeklEFQ つまり、そもそもリモートプロセス(タブの中身を表示してるプロセス)に送信していないので、全てがメインプロセスのメインスレッド内で完結している。"
browser-sets.inc - mozsearch
なかのん&マジックさんのツイート: "ということは、メインプロセスのメインスレッドがbusyということで、これと通信を行う必要のあるリモートプロセスもそもそも高速な動作は期待できない(入力に至っては、全てメインプロセスのメインスレッド経由なので、モロに影響ある)。"
なかのん&マジックさんのツイート: "なので、そもそも、こちら(開発者側)が想定していない何かがこの人の環境で起きてる感じある。それが環境によるものなのか、なんらかのパフォーマンスバグなのかは分からんけど。キー押してからタブが閉じられるまでのprofileをむっちゃ見てみたい。"
なかのん&マジックさんのツイート: "ちなみに、普通は、keydown/keypressイベントがreservedか検査され、すぐにリモートプロセスに非同期で送信される。で、リモートプロセス内でイベントが発火された後、非同期でその結果をメインプロセスに通知、preventDefaultされてなかったらショートカットキーとして実行という流れ。"
なかのん&マジックさんのツイート: "なので、ショートカットキーはどうしても超高速にユーザの入力に対して反応するというのが今のAPIでは無理。Webアプリ独自のショートカットキーを登録するAPIってのがあれば良いんだけど、そういうの要るよねってW3Cで提案したらGoogleとか一部の企業以外には要らんやろっていう理由で却下に。"
なかのん&マジックさんのツイート: "Webアプリを最小限のコードで、あらゆるキーボードレイアウト対応にするには、そういうAPIが無いと困ると思うんだけどな。特にユーザ数の少ない、発展途上国のキーボードレイアウト使っているユーザさんに。例えば、USキーボードレイアウト前提でコーディングすると、だいたい動かない。"
なかのん&マジックさんのツイート: "ただ、この人の書いてる内容で思うのは、そうそう連打する訳ではないショートカットキーって、処理落ち時に過剰に処理されちゃわないように、timestamp見て、ある程度捨てた方が良いんだろうかってのは思う。それはそれで慎重にやらないと処理落ちしてても承知で、先行入力していく人も居てるはず。"
なかのん&マジックさんのツイート: "Ubuntu Weekly Recipe:第540回 Firefoxをあらためて見つめ直す #gihyojp https://t.co/oBwH3WvtF2"
第540回 Firefoxをあらためて見つめ直す:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
なかのん&マジックさんのツイート: "Containerは本当にまだ使いにくい。開発止まってるのかな……これが無いと仕事にならないんだけど、今のところ。"
おこめ/つなもりさんのツイート: "それは…content-typeの設定問題 IEは見てなかったらしいけど… "
アイヴァーンさんのツイート: "なんかアーカイブのダウンロードで、Chromium が勝手に HTML コンテンツそのもののと解釈して展開されてしまい、適切にダウンロードできない、とかいう局所的な問題が生じたことがあった記憶もあるので、Web 側だけでなくブラウザ側の視野狭窄も問題につながりかねない懸念しかない…… https://t.co/3r35zPjQZZ"
池田 泰延 / ICSさんのツイート: "作る人が、目の前の手元のツールで動くことばかりにしか意識しない。 ちらほら増えてきた「Chromeでしか動きません」というやつ。 作ってるのは標準仕様のウェブコンテンツでなく、Chromeという一つのツールでのみ動くコンテンツ。"
なかのん&マジックさんのツイート: "あったなぁ、そんな話。Mozillaも途中から折れて、ASCIIの制御文字にぶち当たったらダウンロードに切り替えるとかそんな感じで対応したんだったか。"

@xharaken

Kentaro Haraさんのツイート: "Firefoxがframe間での協調的スケジューリングを実装したというプレスリリースを見て、どうやったらそんなものを(セキュアに)作れるのか考えてもわからなかったので、Firefoxの中の人に聞いてみたら教えてもらえた。こういうのがオープンソースの良いところ^^"
Kentaro Haraさんのツイート: "最近のWebページは、「本体のコンテンツ+大量の広告」という構造になっている場合が多くて、広告のせいで本体のコンテンツが遅くなるのをいかに防ぐか(=どうやってframe間で性能を独立させてスケジューリングするか)というのが大きな問題になっている。"
Kentaro Haraさんのツイート: "frameごとにユーザレベルスレッドを作って協調的スケジューリング、frameごとにOSスレッドを分離、frameごとにOSプロセスを分離など、いくつか解決法はあるけど、いろんな事情でどれもものすごく大変。"

Form Autofill・Web Payments

5x

Rockridgeさんのツイート: "Fx56:Firefox SyncがForm Autofillの住所情報とクレジットカード情報に対応。同期の有効・無効はUIから制御できる。参照:https://t.co/fHJARwCEBR / “1374500 - New …” https://t.co/lN12ormhK1"
Rockridgeさんのツイート: "Fx56:米国のen-US版ユーザーに限定してForm Autofill機能が有効化された。 / “1385196 - [Form Autofill] Enable the feature based on locale and…” https://t.co/LOlkqS8bWk"
Rockridgeさんのツイート: "Fx57:Form Autofillにおいて、ユーザーがどの程度まで入力すれば次回の入力補完に使うかは難しい問題だ。FirefoxではChromeの挙動を参照しながら調整している。 / “1401411 - Autofill i…” https://t.co/iBdk1Std8Z"
Rockridgeさんのツイート: "Fx57:Form Autofillがクレジットカード情報に対応。参照:https://t.co/L4K0QlRR1n / “1390757 - [Form Autofill] Enable credit card featur…” https://t.co/6fOTBybzLP"
Rockridgeさんのツイート: "Fx58:Form Autofillでクレジットカードの自動補完機能がデフォルト有効化。 / “1417336 - [Form Autofill] Enable credit card autofill by default o…” https://t.co/ZgOP2bCq7I"
Rockridgeさんのツイート: "Fx58:米国のen-US版ユーザー限定という状況に変わりはないものの、Form Autofillの基本機能が、段階的なロールアウトのフェーズからデフォルト有効化のフェーズへと移行した。 / “1430522 - [Form A…” https://t.co/jYxFrKlG9u"
Rockridgeさんのツイート: "Fx58:Form Autofillが有効な環境では、自動補完に用いられるクレジットカード番号もデフォルトで同期されるようになった。 / “1395123 - Unhide credit cards sync engine by…” https://t.co/5C0JZsvHQB"
Rockridgeさんのツイート: "Fx59:Form Autofillにおいて、ハイフン付きのクレジットカード番号をサポート。 / “1413120 - [Form Autofill] Accept credit card numbers with hyphens” https://t.co/RWIkOMAiqn"

Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/ZP2cwSD9kP"
Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/sCmgTxV73M"
Rockridgeさんのツイート: "Form Autofill v2ではローカライズに対応するほか、マルチセクションの概念が導入され、個別の欄に消去ボタンが付く。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/ol53lYB1Vd"
Rockridgeさんのツイート: "検討が開始されたForm Autofillプロジェクトでは、ユーザーがフォーム送信時に許可を与えると、Firefoxが名前や住所などのプロファイルを保持し、別のフォームで自動的に補完するという機能の開発を目指す。 / “Thes…” https://t.co/R9W9LRdHXF"
Rockridgeさんのツイート: "Nightlyチャンネルで有効化されているForm Autofill機能について、フォームに入力した住所を自動的に保存して再利用するようになった。保存時にドアハンガーの通知が出るので、そのときオプトアウトすることも可能。 https://t.co/llIPbB20Qj"
Rockridgeさんのツイート: "FirefoxのForm Autofill機能は、クレジットカードのセキュリティコードを保存しない仕様となっている。 / “Online shopping: Autofill your credit card info safe…” https://t.co/iL5OOCepqg"
Makoto Kato ︎︎さんのツイート: "FirefoxのWeb Payments APIのUX実装って、custom element使ってるんだ"
Rockridgeさんのツイート: "2018年5月末時点でも、Form Autofillはen-US版ユーザーの20%しか有効化されていない。 / “1449055 - Convert formautofill to a webextension” https://t.co/Dd2vXTAihL"
Makoto Kato ︎︎さんのツイート: "AndroidのAutofill Framework使ったアプリ、パッケージ名見てるの多くて、新しいブラウザ作っても動かないパターン多い"

dynamis (でゅなみす@もじら)さんのツイート: "新しいFirefoxではWebフォントブロックできるようになったよ。Androidで通信量削減したい人にお勧め https://t.co/nG6VNCv92J"
Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: HTMLMarqueeElement https://t.co/4SOMK9yEfI"
dynamis (でゅなみす)さんのツイート: "Firefoxがインストール後にUI言語の追加を公式にサポートし始めたので他の言語でのUI確認が楽になった。 https://t.co/XQMRWutqom… "
Changing the Language of Firefox Directly From the Browser | Mozilla L10N

Mozilla Developer Street (modest)
Firefox マルチプロセス化の今後 | Mozilla Developer Street (modest)
local MDC: Downloading Source Archives (/ja/developer_guide/source_code/downloading_source_archives)

Google

その他

Google Chromeに受信データ量を大幅に節約する「データセーバー」モード追加へ - GIGAZINE
Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ - Publickey
WebAssembly、CPU Throttling、Custom Elementsの最新情報を解説──2016年10月のブラウザ関連ニュース | HTML5Experts.jp
Google Chrome、ページロード途中のレイアウト変動を抑える技術を導入 | スラド IT
「Google Chrome 58」はIndexedDB 2.0やフルスクリーン版プログレッシブウェブアプリに対応 - GIGAZINE
Intent to unship: HTML scoped style sheets (<style scoped>) - Google グループ
Official Google Webmaster Central Blog: The new evergreen Googlebot
Web上でお絵描きしやすくなるキャンパスの改善や数字の可読性を向上させるセパレーターなどが含まれるGoogle Chrome 75安定版リリース - GIGAZINE
Chromium ソースコード珍百景

本の虫

本の虫: Chromeがいつのまにかruby要素をサポートしている件について
本の虫: Chromeがいつの間にか縦書きを実装し始めていた

フロントエンドBlog

Google Chrome 58安定板リリースと59の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
Headless Chromeでのスクリーンショット取得とGoogle Chrome 60の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
遂に来る! Chrome 75にてLazyLoadが正式に実装されるようです🎉 | フロントエンドBlog | ミツエーリンクス

Google Developers Japan

Google Developers Japan: ページリロードの高速化および軽量化について
Google Developers Japan: Chrome 59 ベータ版: Headless Chromium、macOS のネイティブ通知、Service Worker のナビゲーション プリロードなど
Google Developers Japan: Chrome 61 ベータ版:JavaScript モジュール、デスクトップ版 Payment Request API、Web Share API、WebUSB
Google Developers Japan: Chrome 68 ベータ版: ホーム画面に追加、Payment Handler、Page Lifecycle

Chromium Blog

Chromium Blog: A secure web is here to stay
Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet
Chromium Blog: Evolving Chrome's security indicators
Chromium Blog: How we designed Chrome 10 years ago
Chromium Blog: 10 years of Speed in Chrome
Chromium Blog: Chrome 70 beta: shape detection, web authentication, and more
Chromium Blog: Trustworthy Chrome Extensions, by default
Chromium Blog: Notifying users of unclear subscription pages
Chromium Blog: Chrome Dev Summit 2018 Day 2: Ready for the next movement
Chromium Blog: Data Saver is now Lite mode
Chromium Blog: Chrome 75 Beta: low latency canvas contexts, sharing files, and numeric separators
Chromium Blog: Improving privacy and security on the web
Chromium Blog: Google I/O 2019: What's new with Chrome and the Web
Chromium Blog: Taking Action on Deceptive Installation Tactics
Chromium Blog: Chrome 76 Beta: dark mode, payments, new PWA features and more
Chromium Blog: New Chrome Protections from Deception
Chromium Blog: Easier Payments with Chrome

INTERNET Watch

Google、2017年1月提供予定の「Chrome 56」で、一部のHTTPサイトに警告を表示へ -INTERNET Watch
Google、10月提供のChrome 62以降で、入力欄のあるすべてのHTTP接続ページで警告を表示 -INTERNET Watch

窓の杜

「Google Chrome 58」が正式版に ~“Indexed DB 2.0”対応と29件の脆弱性修正 - 窓の杜
「Google Chrome 59」は“ヘッドレス”モードをサポート ~ベータ版でテスト中 - 窓の杜
最新版「Google Chrome」では再読み込み処理が大幅に高速化 - 窓の杜
「Google Chrome 62」が正式版に ~HTTP接続のフォームはすべて“非セキュア”扱いへ - 窓の杜
「Google Chrome 63」ベータ版では開発者向け機能が充実 ~非同期イテレーターなど - 窓の杜
Google、不正なリダイレクトやナビゲーションを「Google Chrome」から排除 - 窓の杜
「Google Chrome」の“監視対象ユーザー”機能が廃止、12日以降新規作成は不能に - 窓の杜
「Google Chrome 68」ではすべてのHTTP接続サイトが“安全でない”サイト扱いに - 窓の杜
「Google Chrome 66」では“CSS Typed OM”や“AudioWorklet”などが利用可能に - 窓の杜
「Google Chrome 67」はデスクトップ“PWA”をサポート!……で、“PWA”って何? - やじうまの杜 - 窓の杜
「Google Chrome 70」のベータ版、顔・バーコード・テキストを識別するAPIを搭載 - 窓の杜
Chromeには3種類の“再読み込み”があるって知ってた? Webページ上の画像などを最新の状態にするテク - 窓の杜
「Google Chrome 69」からはHTTPSが“当たり前”に ~“保護された通信”ラベルを除去 - 窓の杜
TLS 1.0/1.1対応などが終了 ~Google、「Chrome 72」の新機能と廃止機能を明らかに - 窓の杜
Chromeで3つ前に見ていたページへ一気に戻りたい! [戻る]ボタンの便利な小技 - 窓の杜
「Google Chrome 77」は新たなパフォーマンス測定の仕組み“LCP”を搭載 ~ベータ版でテスト中 - 窓の杜

TechCrunch Japan

ChromeはHTTPの死を早めている…1月からHTTPSでないページに警告を表示 | TechCrunch Japan
Chromeがモバイルでの不快なページジャンプを追放―スクロール・アンカリングを追加 | TechCrunch Japan

スライド

Future of Blink-in-JS - Google スライド
Chrome の marquee 要素が 優秀だった話 // Speaker Deck
State of Chrome's Memory - Google スライド

OSDN

ページ読み込み時間が5%高速化、「Google Chrome 27」が登場 | OSDN Magazine
新たに「Blink」エンジンを搭載した「Google Chrome 28」リリース | OSDN Magazine
画像検索機能が安定版に登場、米Googleが「Chrome 30」安定版リリース | OSDN Magazine
プッシュ通知にカスタムボタンが加わった「Google Chrome 48」が公開 | OSDN Magazine
開発者向けの機能を強化した「Google Chrome 51」が公開 | OSDN Magazine
IndexedDB 2.0をサポートした「Chrome 58」がリリース | OSDN Magazine
「Google Chrome 72」リリース、TLS 1.0/1.1が非推奨に | OSDN Magazine
「Google Chrome 73」リリース、macOSのダークモードに対応 | OSDN Magazine
「Chrome 74」リリース、Windows向けにダークモードを導入 | OSDN Magazine

Twitter

Chrome loading 下周りの実装

Kinuko Yasudaさんのツイート: "少し前から Chrome loading 下周りの実装の速度・安定性・安全性を高めるためにいろいろ大きめの改良を(ものによっては数年かけて)やってたんですが、それが最近ぼちぼち ship されてるので少しまとめてみました。→… "
Kinuko Yasudaさんのツイート: "It’s a rainy Friday in Tokyo, thought that tweeting about some cool✨ re-architecturing projects Chrome has done around loading could be good😀☕️, because there're many and they're shipping! Network Service, Service Workers, OOR-CORS, infra change for Script Streaming, etc... →"
Kinuko Yasudaさんのツイート: "1) Network Service👾! Chrome has been experimenting moving its network stack into its own service process, and it's now shipped on most platforms! This required massive work🔧 but has also significantly improved stability + security🔒👌"
Kinuko Yasudaさんのツイート: "2) Service Workers⚙ Did you know that Chrome's SW implementation has been completely renewed since around M72? For this @FalkenMatto and the team have done massive redesign, which has reduced per-fetch process-hops, resulted in perf win🚅, correct behavior and healthier code!"
Kinuko Yasudaさんのツイート: "3) OOR-CORS🔐 @toyoshim and @hirano_y_aa have been working on a project to move the CORS implementation out-of-renderer process. This makes cross-origin loading more spec conformant & securer, and CORB behavior more complete. We're *about to* enable it (i.e. fixing bugs)! 🤞🙏"
Kinuko Yasudaさんのツイート: "4) Script Streaming🚀 @hirano_y_aa and @MakotoShimazu have done great loading "data pipe" plumbing🔧 work, which enabled V8's direct script streaming from network to the parser. You can read more about this change in V8 release v7.5 blog: https://t.co/p6rpEe0QhE"
V8 release v7.5 · V8
Kinuko Yasudaさんのツイート: "5) Off-main-thread script fetch✈! @bashik7, @nhiroki_ and the team have been moving top-level worker script loading off-main-thread, which is enabled on ToT (https://t.co/pyWgoGVf6I). This is a part of efforts to make Service Workers startup faster. Let's hope this sticks😀"
service worker: 2nd attempt to enable OTMT service worker script fetch (I774e39d3) · Gerrit Code Review
nhirokiさんのツイート: "最近 off-the-main-thread worker script fetch を頑張っていて、shared worker / service worker 向けには Chrome 76 で有効にしました。今は dedicated worker 向けに実装中です。細かい話は以前記事に書きました (記事書いたのちょうど一年前だ!) https://t.co/iX0emUcuBx… https://t.co/wzRbWQS2nv"
ネットワーク API のメインスレッド依存をなくす話

Rockridgeさんのツイート: "Chrome 51は、Credential Management APIをサポートしたほか、スクリーン外のクロスオリジンなフレームにつきレンダリング処理を行わないことで、消費電力を最大30%削減した。 / “Chromium B…” https://t.co/NW9wOIzPbe"
なかのん DAYS''さんのツイート: "<isindex>って残ってるけど何もできない使えない要素だと思い込んでたけど、動作してたのね……(Blinkはすでにドロップ済みで、Geckoも https://t.co/FoNouOsBwT で作業中) #もずでぶ"
Yosuke FURUKAWAさんのツイート: "パスワードフォームを http で作ろうとすると警告ラベルが出るように / “Google Online Security Blog: Moving towards a more secure web” https://t.co/x1UxdV691D"
Rockridgeさんのツイート: "ChromeとSafariでは、「オートフィル可能なフォームが表示された場合、住所やクレジットカード情報をブラウザがサジェストしてくれ」るうえ、「オートフィルの情報はデバイス間で同期可能」である。 / “モバイルウェブのコンバー…” https://t.co/PPi2H2MxuO"
Kentaro Haraさんのツイート: "Blinkカンファレンスで、「Chromeのメモリ使用量を分解してみた」話をしました。 スライド:https://t.co/KdWXsI05PE"
Rockridgeさんのツイート: "Chrome 56以降で有効化されているスクロールアンカー機能は、Webページ閲覧中に画像が読み込まれるなどしてページの長さが変わっても、スクロール位置が動かず、閲覧を邪魔されないというもの。 / “Chromium Blog:…” https://t.co/wNcJFNA9BQ"
Kentaro Haraさんのツイート: "Blinkに協調的スケジューリングを入れてみようという話を書いてみた。単刀直入に言ってしまえば、Web広告が重たいJavaScriptを実行中に(もっと重要な)メインコンテンツの処理を割り込ませるにはどうすればよいか、という話。 https://t.co/xrBVpNtbIn"
Rockridgeさんのツイート: "ブラウザにいったん機能を追加すると廃止するのがたいへんなので、追加するときに必要性をよく考えるべき、とChrome開発者が実感を込めて語るスライド。 / “Deprecating features (is hard) - Goo…” https://t.co/8guV1SxJrD"
なかのん&マジックさんのツイート: "Mozillaのmarqueeの実装って、たぶん、Netscape 6 (Mozilla M18) よりも前に、中国語圏のマーケット事情で渋々実装したという感じで、それ以降、いじられてないだろうなぁ。 / Chrome の marquee 要素が 優秀だった話 // Speaker Dec https://t.co/4KqG0SAkak"
なかのん&マジックさんのツイート: "<blink>要素の削除の時に、CSS Animationsで<marquee>をもっと軽くできないかなとか思って、ちょっと調べてみたけど、一部属性の実装は(JSでごにょごにょしないと)無理って思って無かったことにした。"
Shigeki Ohtsuさんのツイート: "Chrome69の新UI「Material Refresh」で鍵アイコン等が灰色に変わりました。ChromeでHTTPS通信を緑色で判別する時代は9月に終わりますのでご注意ください。「保護された通信(Secure)」の文字も削除される予定です。https://t.co/jbKxqS4AjG… https://t.co/gIOh4Ra18E"
Rockridgeさんのツイート: "Chromeは2006年に開発が開始された。ユーザーがコンテンツに集中できるようにUIを簡素化し、スピード・応答性・安定性を高め、セキュリティも強化。当初はWindows版のみで後にクロスプラットフォーム化に苦労したという。 https://t.co/PsMVrqClWT"
Rockridgeさんのツイート: "ChromeのOmniboxのデザインを変更するにあたって考慮した事情など。 / “f6af7b8161a2” https://t.co/OmE0RIfFXE"
Makoto Kato ︎︎さんのツイート: "これ、実装したharakenさんがいかにスムーズにしたかっていうプレゼンかブログ見たことあるんだけど、多分発表者は知らないんだろうな。。。 https://t.co/tuZLygLqFc"
Shigeki Ohtsuさんのツイート: "既に Canary で HTTPが not secure になっている。この後に続く最終段階は、赤字に変わるやつ(actively dangerous)です。 https://t.co/XYKSuz1cKB… "
なかのん&マジックさんのツイート: ""Google previously recommended the superior practice for website creators of checking which features are present rather than browser name/version, but has since weakened this stance with their browser's growing market share. " https://t.co/VabMOtGR4R HAHAHA!"
なかのん&マジックさんのツイート: ""Scroll Anchoring"とか、これとか、UX周りは良い仕事してるよな。 / Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE https://t.co/8xvmMdPz9L"
Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE
なつきさんのツイート: "Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ https://t.co/THQKTglTjc Chromeのキャッシュをメモリに保存すれば高速になるのではと思ってはいたけど、ようやくサポートされるのか。"
Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ
なかのん&マジックさんのツイート: "Firefoxがめっちゃ昔から搭載してるヤツだ。むしろ無しで今までやってたんだな。Firefox for Androidでは多めに設定して使ってるけど、デスクトップのブラウジングではあまり恩恵を感じなくなった。たぶん、タブをフル活用できるから、戻る、進むを使わなくなってるんだと思う。"
Chromeの戻る/進むを高速化する技術 - PC Watch
Addy Osmaniさんのツイート: "Native <img> lazy-loading is coming to the web! https://t.co/LgF7F1iMgR <img loading=lazy> defers offscreen images until the user scrolls near them. Shipping in Chrome ~75 https://t.co/4gR7lvx4zx… https://t.co/MVhFCLPqR6"
ゆきさんのツイート: "Blocking high-risk non-secure downloads https://t.co/MymT5sBRr7 Chromeの中のひとが、非セキュアなダウンロードについて対策を考えたいとのこと"
Blocking high-risk non-secure downloads from Emily Stark on 2019-04-09 (public-webappsec@w3.org from April 2019)
KIMATA RobertHisasiさんのツイート: "https://t.co/x0szHUQ54V https://t.co/qFSHLHDesn Mobile版のGoogle Chromeで、body要素配下のtext nodeの合計文字数が244と245でfont sizeが変わり、`position: absolute;`が指定されたcontentの文字のサイズは更に別計算? 何を言っているのか自分でもよく分からない。なんなんだ、これは"
KIMATA RobertHisasiさんのツイート: "はい。あとデスクトップ版でもデベロッパーツール開いて、Android版にしたら発生しました… "
なかのん&マジックさんのツイート: "ASCII文字だけのテキストノードなので、245文字未満だとUTF-16じゃなく、ASCIIでストアしてるとか、そういう感じでの条件分岐だと思います。Geckoも内部でやってます。キリが悪いのは、その差分の部分に何かの内部処理用のフラグを持ってるんじゃないかと。… https://t.co/X08Uu9VGC0"
Makoto Kato ︎︎さんのツイート: "preventScroll、Chrome/Androidで動いてないよねというか誰もテストしてない系ぽいな。Geckoも人のこと言えないが。software keyboardが表示されたというlistenerがAndroidに存在しないからhackなコード入れざるをえないし"
なかのん&マジックさんのツイート: "web-compatとしてChromeの動作に寄せていくのは基本的には誰にとっても良いことになると思ってやってるんだけど、最大の問題はChrome側のバグだった時なんだよなぁ。そしてこの場合にChrome開発者が動いてくれないというのが問題で……"
mattnさんのツイート: "僕「Accept-Language は ja_JP じゃなく ja になるよ」 某「どのブラウザ使ってるの、Accept-Language は - か _ で区切られた ja_JP の様な物を返すんだよ。もしそんなブラウザがあるならそのブラウザだけ特例で回避すべきだ」 僕「Google Chrome だよ」 と返信したらレスが返って来なくなりました。"
なかのん&マジックさんのツイート: "いやその通りにシェアに関係無く、間違ってる実装に対するハックをブラックリスト形式で(かつ、可能なら修正されても壊れないように)やっておかないと、その実装側の修正時に壊れてしまう。Firefox/Geckoの長らく存在するバグを互換性のために修正すると、世界のどこかから壊れた報告が毎度毎度……"
Chrome Developersさんのツイート: "🖼 Image Lazy Loading on the web is happening! and it's as easy as adding `loading="lazy"`. It is available behind flags on Chrome Canary! Go try it out 🙌… https://t.co/fViARDbuSB"
ゆきさんのツイート: "[Chrome] Q1 Summary from Chrome Security https://t.co/TeW7aghynu Chromeのセキュリティについてのまとめ。よい。"
Q1 Summary from Chrome Security - Google グループ

Out-of-Process iframes (OOPIFs) - The Chromium Projects
Experiment Time: Scroll Anchoring  |  Web  |  Google Developers
Simple way to download Google Chrome/Chromium source code - Stack Overflow

Apple

iOS10.changesets · uupaa/WebKitChangeLog Wiki
uupaa/LatestLog
開発者のための WebKit (“WebKit for Developers” 日本語訳)
Rockridgeさんのツイート: "WebKitの新しいポリシーによれば、実験的な機能にベンダープレフィックスを付けず、ランタイムのフラグで管理する。既存のプレフィックス付き機能についてもケースバイケースで見直していく。 / “Updating Our Prefi…” https://t.co/InqdWd6vp8"
WebAssembly(wast)を書こう! - Qiita
Rockridgeさんのツイート: "次期Safariではフォームのバリデーション機能が強化される模様。たとえば空欄のフィールドには入力を促すポップアップメッセージが出る。 / “HTML Interactive Form Validation | WebKit” https://t.co/PDbwXx2EIi"
Rockridgeさんのツイート: "Safari 10.1は高速かつ標準適合度の強化された新URLパーザを搭載。また、CSSパーザもBlinkから移植されたものが有効化され、パフォーマンス、仕様適合度および他のブラウザとの互換性が改善された。参照:… https://t.co/7QZ6izyhoY"
Rockridgeさんのツイート: "次期Safariでは投機的なリソースの読み込みをサポートする。また、バックグラウンドタブの動作を抑制して消費電力を低下させる。参照:https://t.co/hOBf5Ht3pJ / “Release Notes for Saf…” https://t.co/owAS63uTJ6"
Safari 11に新機能追加、プライバシー改善
azuさんのツイート: "iPhone Xなど四角でない画面にフィットさせるための`viewport-fit=cover`やセーフエリアの概念を扱うための`constant()`(`env()`)についての解説 "Designing Websit…" https://t.co/SwRxRllQv4"
なかのんクエストさんのツイート: "えー、プレゼンテーションの指定にmeta要素使わせるの……なんでroot要素にのみ指定可能なプロパティを提案しないんだ。"
Rockridgeさんのツイート: "MozillaがNightlyを強化しているのとは対照的に、WebKitはNightlyのアップデートを止めてビルドのアーカイブを公開する形式に移行した。日常的に使うならSafari Technology Previewをどうぞ、… https://t.co/ESnWxbVcDp"
Eiji Kitamuraさんのツイート: "AppleがWeb App Manifestの実装を開始! https://t.co/ySCc3LlctY"
Safari による User-Agent 固定化と Web における Feature Detection | blog.jxck.io
SafariのUA文字列が固定されて固定されなくなったおはなし - fragmentary
Makoto Kato ︎︎さんのツイート: "https://t.co/XWuOl8QPpa を見てて、Firefox AndroidでUAにAndroidのバージョンを入れる入れないでWeb Compatibilityが向上する話を思い出した。バージョン入ってないとAndroidとして認識してくれないサイトがあるとか"
Web Inspector Styles Sidebar Improvements | WebKit
Apple、「Safari 12」を「macOS Sierra」「macOS High Sierra」向けに一般公開 - 窓の杜
Link Click Analytics and Privacy | WebKit
Intelligent Tracking Prevention 2.2 | WebKit
Dark Mode Support in WebKit | WebKit

MS

Google

高梨陣平さんのツイート: "名前出しての告発。JoshuaJB曰く、Edgeチームで働いていたけどEdgeを止めた理由の一つはGoogleが自社のサイトに他者ブラウザを遅くする変更を加え、我々はそれに追従できなかったから。例としてYoutubeは隠された空のdivを追加してEdgeのハードウェアアクセラレーションを効かなくした。… https://t.co/YNkOvrOcRp"
comexさんのツイート: "“I very recently worked on the Edge team, and one of the reasons we decided to end EdgeHTML was because Google kept making changes to its sites…” https://t.co/BQKYNUlXAm"
"For example, they may start integrating technologies for which they have exclus... | Hacker News
dynamis (でゅなみす)さんのツイート: "YouTubeってブラウザがハードルアクセラレーションのレイヤー境界を判断するコードも標準機能が出来て久しいのにBlink用ハックだけ入れ続けてGecko搭載機器で困ってたし(簡単なCSS追加を指示して解決してもらった)、悪意があるかどうかはともかく他ブラウザへの無配慮は常態化してたと思ってる。"
なかのん&マジックさんのツイート: "この手の話、多分ほじくればなんぼでもbugzilla上にあるんじゃないかな。私のweb-compatは大物がほとんどで件数少ないけどそれでもあるんだから。"
dynamis (でゅなみす)さんのツイート: "MozillaがWebPサポートしないと言ってたのを方針転換したのもYouTubeがWebPサポートしないと表示されない画像を入れ続けてたからだし、Google検索はFirefoxに劣化版出してくるし、あれだけエンジニアと利用者のいるGoogleの主要サービスがChrome以外に配慮しないのはWebの方向性に影響大きいよね"
なかのん&マジックさんのツイート: "自分達が欲しいAPIは迅速に実装、仕様案出して来て、他のブラウザベンダの状況関係なく自分たちで使い出す、逆に興味ないAPIや自分達が困ってないバグ修正は放置してるよね。ビジネスとしては、実験段階のものを実際に使うの以外は普通なんだけど立場を考えて欲しい。"
はじめてのにき(2018-12-17)
KIMATA RobertHisasiさんのツイート: "Chromiumが独占的な地位を得てしまっているので、例えばJavaScriptを独自拡張して「この拡張に対応していないとGoogle DocやYoutubeが使えません(or 激重になります)」みたいになると結果としてFirefoxのSpiderMonkeyエンジンが市場から排除される恐れがあるんだよなあ"
なかのん&マジックさんのツイート: "既にそういうサービスちょいちょい作ってなかったっけ。"
dynamis (でゅなみす)さんのツイート: "Chrome以外のブラウザ無視についてはGoogleなどより中国と日本のサイトが圧倒的に酷くてMozillaが苦渋の思いでwebkit接頭辞サポートをしたのはそれが原因。 修正コードや自動変換ツールまで持って行ったMozillaの修正依頼を、エンジニアに教育するコストが出せないと断った日本の大手IT企業が典型例"
dynamis (でゅなみす)さんのツイート: "明らかにビジネス判断遅かったし他にも都合があるが、Mozillaがモバイルでシェアを獲得できる機会を繰り返し失った主要因はサイト側が修正する気が無かった(サイトに影響力のある企業もそれを推進する気が無かった)ことがあったし、ブラウザ動向を決めるのは結局サイト制作側なんですよね。"
dynamis (でゅなみす)さんのツイート: "ブラウザシェアを大きく左右するのはサイト制作側よりもOSであったり検索サービスなどでの圧倒的な広告であったりするけど、Webの進化の方向を決める最後の鍵を握るのはサイト制作側なんだと理論でなく体感した15年だったなと思う年末です。"
dynamis (でゅなみす)さんのツイート: "即座に修正対応してくれたり、内製から外注に変えて仕様調整が難しいと告白しつつ努力してくれたり、マネージャが断っても現場から変えて数年後に対応してくれたり、無駄ではなかったです。 ただ業界を変えるには人手と時間が足りないし、大手IT企業ほどお断りされたのは事実であり限界はあったなと… https://t.co/izJCLzlCSD"
dynamis (でゅなみす)さんのツイート: "念のため書き足すと簡単なCSS追加をしたのはYouTube再生機能を持った機器側。メーカーからのYouTubeへの修正要望は受け付けられていなかったためブラウザ側にサイト固有ハックを入れるのがYouTubeのプレイヤーとしての性能要件を定めた認証を通す唯一の手段だったケース。"
SKSの申し子さんのツイート: "Edgeの開発をしていたという人がHNで「Googleはyoutubeとかでわざと他のブラウザを遅くしている」みたいなコメントして注目を浴びてるけど,「MSはサービスのクライアントをLinuxで遅くするのやめろ」みたいな突っ込みが入っていて,憎しみが連鎖している"
KIMATA RobertHisasiさんのツイート: "https://t.co/4jMT2MZdq2 https://t.co/t4lhNM483w この話「Web標準に沿ったコードを書いても、それ自体は会社の利益を生まないし、作業者の給料や評価が上がりもしない」のが辛い。だからアクセシビリティなどが優れるサイトは褒め称えるなどして社会的な評価上げないといけないのだろうなあ"
なかのん&マジックさんのツイート: "実際問題、今みたいにブラウザ屋さんになる前からWeb標準化の活動とかし始めたあたりから、この会社は信用できないなとかってのをWebサイトの出来から考えるようになったな。"
なかのん&マジックさんのツイート: "あ、この会社ヤバそうだからお近づきになるのやめとこう、みたいなの。"
なかのん&マジックさんのツイート: "なんでこの人達は全てのブラウザが同じHTML/CSS/Javascriptを受け取ると思い込んだ上でしたり顔トークしてるだろう…… https://t.co/nqAvMlrYsx"
なかのん&マジックさんのツイート: "転送容量の膨大さから、あえてinvalidなHTMLにして容量削減したりしてたぐらいの企業ですよ?"
Makoto Kato ︎︎さんのツイート: "YouTubeの話はpolymerがたまたま変なHTML生成しただけじゃないの?だし、彼らはなんも考えてないだけとしか思わないけどね。Blinkに対して最適化入れてるだけで"
Makoto Kato ︎︎さんのツイート: "自分たちはちゃんとGoogleへレポートしてるけど、彼らはちゃんとバグ登録してくれてる。問題は同じ会社なのにChromeチームと話があってないことだけ。大きい会社なんだ感あるだけだよ。それはMSもそうだけど、大きい会社の宿命だよ。いろいろ難しいよね"
Googleが「Microsoft Edge対策にYouTubeのコードを変更した」という指摘を否定 - GIGAZINE

- Microsoft Edge Development
Microsoft Edge、レスポンシブイメージ対応の「srcset」に対応。夏以降は主要ブラウザすべてでsrcsetサポート - Publickey
新しくなったMicrosoft Edgeを試してみよう!ーWindows 10 Creators Updateで入ったEdgeの新機能一挙解説 | HTML5Experts.jp
Chrome/Firefoxよりも断然エコ ~「Creators Update」における「Edge」の消費電力削減 - 窓の杜
Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeは、マウスホイールによるスクロールだけでなく、タッチ操作によるスクロールやサイドバーのスクロールについても処理の非同期化を達成している。 / “Scrollin…” https://t.co/2epkgtBAih"
Rockridgeさんのツイート: "Microsoft EdgeはIE時代のDOMツリーを、3フェーズに分けて次第に新しいアーキテクチャに移行させた。Creators Update後のEdge 15では処理高速化の成果が出ているという。今後はDOM周辺のサブシステム… https://t.co/nIPjowqY4i"
Modernizing the DOM tree in Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
最新バージョン「Edge 15」が大進化、応答速度3倍、高い電力効率を実現 - INTERNET Watch
Windows Creators Update,Firefox 53,Chrome 58リリース──2017年4月のブラウザ関連ニュース | HTML5Experts.jp
Rockridgeさんのツイート: "Windows 10 Fall Creators Update後のMicrosoft Edgeには、お気に入りのURL編集とタスクバーピン留め、音声読み上げ、パーミッション設定、CSS GridとPayment Request A… https://t.co/B3RKz3QkI9"
Windows 10 Fall Creators Updateに搭載されるMicrosoft Edgeの新機能 | HTML5Experts.jp
なかのん&マジックさんのツイート: "Edgeさん、そろそろ、KeyboardEvent.keyの値を仕様にあわせて変更してくれませんかね。あと、KeyboardEvent.codeの実装も。"
パルポーさんのツイート: "Windows 10 Insider Preview Build 17063 の Microsoft Edge でフルスクリーン時に画面上部にマウスを持ってくることでタブやアドレスバー, お気に入りなどにもアクセスできるようになってた #WindowsInsiders #win10jp… https://t.co/PZMUVhPM3n"
Internet Explorer および Microsoft Edge での Flash の今後の対応予定について – Japan IE Support Team Blog
なかのん&マジックさんのツイート: ""Recent Microsoft Edge tabs now show in Alt + Tab" https://t.co/ItBwlQD3Kd これうざいだけでは……"
なかのん&マジックさんのツイート: "タブをそんなに開くユーザは少数派という、テレメトリの情報からの判断なのかなぁ。"
KIMATA RobertHisasiさんのツイート: "RS5で使い始めていますが、(Edgeをメインで使っていない自分としては)あまり問題になってないのですが、タブを数十開く人の場合うざそうだなあ、などと。あと、Setsで「+」おして必ずEdgeが開くのもうざいです。普通同じアプリの新しいタブが開くことを期待するのではと思うの次第… https://t.co/GdQgS4XebV"
Microsoft Edge: Making the web better through more open source collaboration - Windows Experience BlogWindows Experience Blog
Rockridgeさんのツイート: "Mozilla Blogに掲載された「Goodbye, EdgeHTML」の和訳。他にも和訳はいくつか存在しているが、これが一番読みやすい。 / “「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozill…” https://t.co/OZ5vLalGzS"
「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozilla – P2Pとかその辺のお話R
won't fix: RIP EdgeHTML. Software lifecycle is difficult
Edge 終了に寄せて - mizchi's blog
米Microsoft、Chromiumベースの「Microsoft Edge」プレビュー版を公開 | OSDN Magazine
dynamis (でゅなみす)さんのツイート: "新しいEdgeのUA文字列は Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24 注意すべきはEdgeなのにEdgeではなくEdgでありEdgiOSやEdgAと微妙なそろえ方をしてきてること https://t.co/hUsJ8AO7rh"
Fadisさんのツイート: "UserAgent、読んでも何もわからん情報っぷりに磨きがかかってるなぁ。イマドキのWebでUserAgentを見て何かの機能が利用可能かどうか判断しているJavaScriptが居たら流石に直した方が良い案件ではあるわけだけど"
7594591200220899443さんのツイート: "今時UAの文字列にどんだけ意味あんのかね、サーバサイドは今更QUICで接続してきておきながらlike Geckoとか言われても死ねよという感想しかないわけだしJSは所詮ローカルプロセス内でもっとgranularな情報取れるし意味なくねえか… https://t.co/hLn9k1zm7U"
なかのん&マジックさんのツイート: "え、UA文字列、普通に使われてるよ? なんでもかんでもfeature detection可能じゃないし、下手に関連性のないブラウザ間の非互換部分でブラウザ判定するほうが害悪。"
なかのん&マジックさんのツイート: "ここ半年ぐらい、そういうWebアプリとの互換問題やりまくっててウンザリしてる。"
Makoto Kato ︎︎さんのツイート: "ブラウザ作ってる会社のWebサービスがUA文字列見てるくらいだから、現状ではFeature Detectionでまかなえると思ってない"
なかのん&マジックさんのツイート: "Feature Detectionで何でもWebアプリを適当に書けると思ってる人は間違い無く素人さんです。"
なかのん&マジックさんのツイート: "特定のUAであるかどうかを判定するのにUA名のチェック以外により良いものなんてないんだと思うんだけどな。もし、全ブラウザがバグ無く未実装があるだけ、かつ、標準仕様が存在しない世界なんだったらブラウザ自体を判定しようっていう行為が愚行なことには同意できるけど。"
Microsoft、音声認識とAIを組み合わせたインテリジェントエージェントのビジョンをBuildで公開 ~ChromiumなMicrosoft EdgeにはIE互換のタブを実現するIEモードを追加 - PC Watch
[速報]次期Micrsoft Edgeに「Internet Explorer mode」搭載。企業向けにIE11のレンダリングも提供。Microsoft Build 2019 - Publickey
MicrosoftがEdgeのmacOS版やIEモードの搭載を発表 - GIGAZINE
ユーザー エージェント文字列の変更 (Windows)
ドキュメント『モダンブラウザーの今と、Web標準に対応したWebコンテンツの作り方』公開! | Microsoft Edge Japan
2016 年の展望: Microsoft Edge の開発者向け情報 | Microsoft Edge Japan

headless

Qiita

WindowsでPuppeteerを使ってヘッドレスChromeを操作するための環境構築手順 - Qiita
動的に生成されたページをpuppeteerでスクレイピングする - Qiita
--headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita
PuppeteerでヘッドレスChromeを操ってみる - Qiita
puppeteerでスクレイピング - Qiita

Docker で Puppeteer 動かして Slack にスクショを通知してみた · tail -f /var/log/ryysud.log
Headless Chrome をさわってみた | CYOKODOG
ヘッドレス Chrome ことはじめ  |  Web  |  Google Developers
Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発 - Publickey
Headless Chromeでデザイン変更履歴を追える魚拓を作ってみた - pixiv inside
PuppeteerによるヘッドレスChromeの使い方 evaluate | iwb.jp
[puppeteer] ヘッドレスブラウザの操作でスクレイピング、クローリング │ Web備忘録
Puppeteerでできることまとめ | GMOアドパートナーズグループ TECH BLOG byGMO
Puppeteer  |  Tools for Web Developers  |  Google Developers
Puppeteer でのヘッドレス Chrome の使用  |  Node.js 用 App Engine スタンダード環境に関するドキュメント  |  Google Cloud
E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog
[Node.js] puppeteerでスクレイピングしてみる - 筋肉エンジニアの備忘録
Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ

自動入力

【やじうまPC Watch】ChromeやSafariの自動入力でクレジットカードなどの個人情報が盗まれる危険性 - PC Watch
暮らしに役立つITコラム ChromeやSafariの自動入力機能が、なぜ「悪いデザイン」なのか
Rockridgeさんのツイート: "Fx55:NightlyチャンネルでForm Autofill機能がデフォルト有効化。名前や住所などの入力フォームを自動的に補完する。ただし、当初はinput要素のautocomplete属性が指定されたフィールドに限られる。 https://t.co/plmEjkWchV"
Rockridgeさんのツイート: "Fx55:Form Autofill機能の対象にクレジットカード情報が追加された。 / “1359978 - [Form Autofill] Implement the credit-card storage” https://t.co/PahNcUMXig"
Rockridgeさんのツイート: "Fx55:Form Autofill機能に関し自動補完の対象となる入力フィールドを選別する機能が実装・有効化された。処理のパフォーマンスにも影響。参照:https://t.co/jFgqkhWj9g … https://t.co/1uZGKszQ2e"
Rockridgeさんのツイート: "入力済みの名前や住所などのプロファイルをFirefoxが保持し、フォームを自動的に補完するForm Autofill機能は、Firefox 57(2017年11月14日リリース予定)でシステムアドオンとして提供される見通し。 https://t.co/gFN21vBl9J"
Rockridgeさんのツイート: "Form Autofill機能で利用されるプロファイルは、将来的にFirefox Syncの同期対象となる。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/tqas9XAnfg"
Rockridgeさんのツイート: "Form Autofill機能は今後、autocomplete属性以外のフィールドも対象に含めていく。補完される情報の追加・編集機能も実装される見込みだ。 / “Preview Form Autofill in Firefox …” https://t.co/ICdJwGTefX"

OGP

OGPを設定しよう!SNSでシェアされやすい設定方法とは?
meta 要素 OGPの基本的な設定方法 - by Takumi Hirashima
OGP画像を設定してみよう! - Qiita
OGP設定の正しい方法とは?確認の仕方と注意するポイント | Marketing Native(マーケティング ネイティブ)

Internet Message Format

Kazuho Okuさんのツイート: "別の言い方をすると、ウェブのフォームバリデーションむけに作られた業界標準の正規表現なので、その目的で使うなら最強に近い https://t.co/QrgpKm8K5d"
Kazuho Okuさんのツイート: "living standardを定めている団体がwillful violationだと言っているものを、さもformalであるかのように(つまり「きちんと定義されている」と)言及したら反発くうのはしょうがないよね"
Dai MIKURUBEさんのツイート: "念のため言っておくとHTML(5)仕様中の<input type="email">のための正規表現は、本文中に"willful violation of RFC 5322"だって明確に書かれてるので、それはそれでいちおう要注意。まあそれなりにauthorizeされているしだいたい… https://t.co/wsVFCfkKnX"
RFC 5322 - Internet Message Format
RFC5322(Internet Message Format)
メールアドレス - Wikipedia
Email address - Wikipedia
RFC 5322のメッセージ書式
RFC 5322
SMTP の新しい RFC が公開
Outlook から RFC で認められていない形式のメール アドレスにメールを送信すると、配信不能メールが返され送信できない

HTML 3.2

HTML 3.2 Reference Specification
HTML 3.2 仕様書

HTML4

HTML 4.0 Specification
Index of the HTML 4.0 Elements
Index of the HTML 4.0 Attributes
Index
HTML 4 Changes
HTML 4.0 解説
HTML 4.01 Specification (ja)
HTML 4.01の正しい記述方法、最小構成編 | マイナビニュース
なかのん&マジックさんのツイート: "cite要素の定義、変わりすぎではって思ったけど、HTML4.01の仕様を確認すると、思いのほか何も定義してなかった。"

HTML5

W3C

HTML5
HTML 5.1
HTML 5.2
HTML 5.2 is done, HTML 5.3 is coming | W3C Blog

水底の血

2016年5月のdl要素にまつわるエトセトラ - 水底の血
HTML 5.1仕様とその日本語訳についてちょっと一言 - 水底の血
2016年下半期のw3c/wcag GitHubメモ - 水底の血
ITS 2.0の日本語訳を公開した - 水底の血
「縦書き」に関する総務省の行政事業についての報告書の感想のようなもの - 水底の血
HTMLのコメント中に余分なハイフンが出現してもよくなった - 水底の血
HTMLチェッカーはchecker.html5.orgを推してみたい - 水底の血
Re: コンテンツのデザインとウェブデザイナーにできること - 水底の血
W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血

contenteditable 属性

Twitter

histric-1

なかのんクエストさんのツイート: "なんか、ちょっと詳しく書きたくなる内容なんだけど、ブラウザの実装調べて無いでしょ、この人…… / LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog https://t.co/boJRmratd2"
なかのんクエストさんのツイート: "というか、多分、関連仕様書も読んでないのでは。"
なかのんクエストさんのツイート: "まあ、かと言って、私も、私基準では語れるほど詳しくはない。"
なかのんクエストさんのツイート: "Geckoは基本的にはChromiumの動作に合わせて修正していくんで、やりたい企業は基本的にはブラウザベンダと緊密に連絡とった方が良い。Microsoftさんはかなり頑張ってる。"
なかのんクエストさんのツイート: "何て言うか、Webで真剣にサービスやるなら、フルタイムで各ブラウザのバグを修正する部隊を社内で編成した方が良いですよ。このレベルのことやりたいなら。"
なかのんクエストさんのツイート: "とりあえず、一言だけ言っとくと、仕様が未熟な時期に実装するとブラウザ側や仕様側の変更で凄いコストかかるし、そういう実装が先にメジャーになってしまうと、ブラウザも仕様も合理的な方向に変更できなくなって新規の開発に悪影響出まくりなんで、その辺の覚悟と責任は知ってて欲しい。"
なかのんクエストさんのツイート: "DOMイベント周りは私も頑張って、地獄感がかなり減ったけど、contenteditableはかなりの地獄よ? (現Gecko Editorモジュールオーナー談"
もんどさんのツイート: "HTMLの本でcontenteditableを取り上げる可能性は限りなく低いと思っている"
さねさねさんのツイート: "userland側から見てもcontenteditableからむコードできれば書きたくない"
なかのんクエストさんのツイート: "多分無い。相当な資金力無いなら少なくともあと5年は手を出してはいけない。"
もんどさんのツイート: "ここはじーごーくーじーごーくー(ry"
Rockridgeさんのツイート: "contenteditableは仕様が未熟なのでアプリに実装するならブラウザベンダと緊密に連絡をとる方がよく、覚悟が必要で責任も伴うという。参照:https://t.co/UwqbkjQyT6 … https://t.co/GogPxoW2qq"
なかのんクエストさんのツイート: "なんか、contenteditableのネタが未だにちょいちょい、RTとかFav延びてるけど、みなさん、ご存知なくての話なのか、だよねーー的な感じなのか……"
なかのんクエストさんのツイート: "contenteditable="plaintext"なんて案もあって、bugzillaにも実装要望報告来てたんだけど、汎用性無さすぎな仕様で、速攻で仕様案からlegacy扱いになってたのはなかなかのギャグ。"
なかのんクエストさんのツイート: "現在の仕様案は悪くないと思うんで、Chromiumが先行するなら追随したいとこらではある。"
なかのんクエストさんのツイート: "実際に私が実装する事は無いと思うけど、テキストエディタの使い勝手って、IME並みに重要だと思うので、上手く抽象化してから、vimやemacsのキーバインドをGeckoで実装したいって人が来るならwelcome。個人的には。"
なかのんクエストさんのツイート: "まあ、まずは抽象化するっていう作業が必要ですけどね。今はキーの組み合わせをハードコーディングで確認したり、XULであらかじめ決定してるキーバインディングでコマンド実行したりしてる。これを全部、キーイベント発火タイミングでコマンドを関連付けるようにしないといけない。"
なかのんクエストさんのツイート: "Quantum Flowがらみでその辺は今、ぼんやりと考えてる段階。"
なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"

histric-2

LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog
Rockridgeさんのツイート: "Fx55:Windows版で、テキストエリア内においてATOKの定型文章入力を行った際、改行が無視される後退バグを修正。 / “1339331 - [TSF] new line is ignored when use ATOK'…” https://t.co/T6qhU8hzEk"
なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"
なかのんクエストさんのツイート: "常に<br>置換でも良いような気もするものの、ハングルのIMEの挙動を考えると、普通にEnter押したときの動作でないとまずいし、でも、ATOKだとそれじゃ、変な結果になるよな、という……"
なかのんクエストさんのツイート: "プレーンテキスト脳なATOKのhacky動作を無視するのが一番なのかなぁ。"
Rockridgeさんのツイート: "Fx60:contenteditable/designModeの編集領域において、ユーザーがEnterキーを入力した場合、他のブラウザと同様にdiv要素が挿入されるようになる。従来はbr要素が挿入されていた。 / “Intent…” https://t.co/eHZAPYMIbO"
なかのん&マジックさんのツイート: "あー、やっと、Chromeの微妙に納得いかない動作に合わせる方法思いついた。contenteditable="false"絡みはどこのブラウザベンダもちゃんとテストしてないから、実装の癖がそのまま出ちゃうんだよな。"
なかのん&マジックさんのツイート: "なので、最大シェアのChromeが、理屈的に微妙な動きをしてるときにどうすべきか、ケースバイケースで難しい。"
なかのん&マジックさんのツイート: "本当にこの辺は標準化しないと使い物にならないよな。穴埋めみたいな入力画面をcontenteditable="false"を活用して作ると、undo/redoが全編集可能エリアで統合されるんで、場合によっては便利そうなんだけど、いかんせん、互換性とか以前のレベル。"
なかのん&マジックさんのツイート: "contenteditableの実装、invalidなHTML内での編集も処理しないといけないの、複雑さを悪化させてたり。<div><li></li></div>で、<li>内でEnter押した時とか。"
なかのん&マジックさんのツイート: "そーいや、EdgeもBlinkも、contenteditableでの編集中に、平然とHTML的にInvalidなDOMツリーを作るんだけど、どうなってんだ……"
なかのん&マジックさんのツイート: "孫以降にInvalidな要素を作ってしまうのであれば、パフォーマンス的に分からなくもないんどけど、流石に子供として挿入しちゃうのは……"
Pascal Chevrelさんのツイート: "My Firefox Dev Tools tip of the day, live edit your Web content by setting contenteditable=true to the body tag ;) #FirefoxHowTo… https://t.co/TCxpCtk49C"
なかのん&マジックさんのツイート: "うおおおお。バグ報告一杯来そうで嬉しいやら悲しいやら。"
なかのん&マジックさんのツイート: "正直、contenteditableで生成されるツリーは綺麗ではない。"
なかのん&マジックさんのツイート: "Edgeなんか、Enterキー押した時に、親が<span>とか<p>でも、<div>を突っ込んで来たりするしね。"
なかのん&マジックさんのツイート: "日本人ではゼロかもしれないですけど、FirefoxのcontenteditableやdesignModeで表示される固有UIの、画像等のリサイザや、絶対配置要素の位置変更、テーブルのセルの追加、削除のUI、これらを日常的に(頻度は問いませんが)使っている人居ますか? #もずでぶ"
なかのん&マジックさんのツイート: "全世界のNightlyとBetaユーザの利用率を調べると、削除するには無視できないぐらいには、割合は少ないものの明らかに意図的に操作している人が居るのが分かって、驚いています。"
なかのん&マジックさんのツイート: "今のところ、トラブルが無ければ、Firefox 64 (2018年12月リリース)で、標準では無効化(非表示)にして、execCommand経由でWebアプリが有効化したり、あるいはユーザが強引にabout:configから有効にできるようにする予定です。"
なかのん&マジックさんのツイート: "ちなみに、Chrome、Safari、Edgeはこれらのビルトインな特殊要素の編集UIを持っていませんので、デフォルトで非表示にすることでブラウザ間の互換性が向上します。"

なかのん&マジックさんのツイート: "<blockquote>の挙動が分からないって言ってるの、HTML4(.01)を知らないからか。明日か明後日、体調戻ってたら解説記事書くのも面白いか。 / noteと"contenteditable"|ct8ker|note https://t.co/6vcjcqDAw2"
noteと"contenteditable"|ct8ker|note
なかのん&マジックさんのツイート: "HTML 4.01の<blockquote>の仕様はこちら: https://t.co/VSx974gYKp"
Paragraphs, Lines, and Phrases
なかのん&マジックさんのツイート: "というかこの人、専門でやってるという割には仕様を調べたことなさそうな感じだし、まあ、そもそも仕様書もどきに辿りつくのも大変だと思うんでやっぱりなんか書きます。"
なかのん&マジックさんのツイート: "Firefoxのcontenteditableの動作、超複雑怪奇になる条件が重なったケースというのを除けば、だいたい理解はできる感じなんだよな。"
なかのん&マジックさんのツイート: "Geckoのエディタモジュールのオーナーであるにも関わらず知らなかったんですが、contenteditable内に可視化されたstyle要素を置いて、そのCSSのルールをいじると、ちゃんとその結果がページ全体に反映されるんですね…… https://t.co/aZk1TwaLAr"
A Pen by Masayuki Nakano
KIMATA RobertHisasiさんのツイート: "HTMLの仕様を読むと最初の方で「この仕様はHTMLを知らない人向けじゃないよ。そういう人は先に別に用意されたチュートリアルを読んでね」的な事が書いてあるのだが、そのチュートリアルはどこで見つければ、と言う気持ち。正直HTML4.01を勉強したころに比べて今は難しいと感じる"
なかのん&マジックさんのツイート: "contenteditable周りを開発する人は今からでもHTML 4.01は読んでおいた方が良い。なんでかっていうと、HTML5以降廃止されたブロックレベル要素、インラインレベル要素っていう概念を元にブラウザが実装してるし、そこの互換性がまだまだ低くて、"
なかのん&マジックさんのツイート: "なおかつ、それぞれがバグ持ちで標準化不能になってるから、HTML 4.01での概念を分かってないと意味不明な挙動に見えるんだってのをこないだ学んだ。"
かさんのツイート: "Twitterの新しいWeb版がやらかしてくれました…日本語入力が狂うなと思ったら案の定textareaを使わずに謎の編集可能なdivとspan… これやられるとマジで入力がおかしくなる環境の人がいるから全Web技術者は真似しないで欲しい… https://t.co/U3p4QcsB6s"
なかのん&マジックさんのツイート: "特にFirefox Nightlyでは問題無いなぁ。なんかのブラウザのバグを踏んでる?"
Makoto Kato ︎︎さんのツイート: "Twitterがやりたいことをやるためには、<textarea>じゃ実現できなくて、contentedtiable使うしかないってわかってない多そう。例えばURLを入力すると色が変わるとかはtextareaとかじゃ実現できない"
Makoto Kato ︎︎さんのツイート: "Twitterがほしいのはcontentediable=plaintext-onlyなんだろうけどさ。入力とかペーストはhtmlのエレメント欲しくなくて、プレーンテキストだけを許可したいとか"
Makoto Kato ︎︎さんのツイート: "contenteditableで日本語入力がおかしくなるのは、ブラウザかスペックのバグなのでブラウザ作ってる人たちが直すしかないので。無理難題多いけど自分も含めてどうにかするしかない。"
なかのん&マジックさんのツイート: "あれ結局、実装してるブラウザもやっつけ実装だし、細かい仕様出せってなった後反応無くなったしで黒歴史。"
Makoto Kato ︎︎さんのツイート: "Linuxでの日本語入力がChromeで問題あるのは、まぁリソースの問題じゃないのかなぁ。彼らにとってプライオリティ高くないし。Firefoxで問題があるのであれば、すみませんというしかないけど。(あのim moduleの仕組みはバグ増やすだけだからよくないとは思ってる)"
なかのん&マジックさんのツイート: "contenteditable=plaintext-onlyの一番分かりやすい疑問点はEnterキーを押した時に、<br>を入れるのか\nを入れるのかってところ。<p>に\n入れてもスペースだし、かといって<pre>に<br>入れるのも変。"
なかのん&マジックさんのツイート: "ようするに雑やねん、あれ……"

君はHTML5の contentEditable 属性を知っているか | Tips Note by TAM
contenteditable 属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP
HTML5/グローバル属性/contenteditable属性 要素内容が編集可能かどうかを指定する - TAG index
【HTML5】contenteditable属性 - Qiita
[HTML5API] contentEditable 属性を使用したリッチテキストエディタの実現 – monoe's blog
contenteditable=contenteditable - コンテンツの編集許可
HTMLのcontenteditable属性 - 備忘帳 - オレンジ工房
contenteditable 属性 | HTML5 タグリファレンス | W3 Watch Reference
Re: noteと"contenteditable"|ct8ker|note - WebStudio

Publickey

「HTML5 Rocks」だけじゃない、ブラウザ各社のHTML5チュートリアルを集めました - Publickey
WebIntentsとSocket APIでブラウザから家電が操作できる。HTML5 Conference 2012 - Publickey
まだぼやけているHTML5の将来、WHATWGとの二重管理のジレンマ。W3C TPAC 2015 - Publickey
W3C、「HTML5.1」を今年9月に勧告とする計画。仕様はGitHubで公開 - Publickey
W3Cが「HTML 5.1」を勧告、レスポンシブイメージへの対応など。次のHTML 5.2は2017年末頃を目指す - Publickey
HTML 5.2の勧告を2017年11月とする工程表が提案される - Publickey
W3C、「HTML 5.2」勧告。同時にHTML 5.3のファーストドラフトを公開 - Publickey

Qiita

<a href="#top">がHTML5で正式仕様になってた件 - Qiita
サイトに埋め込まれたHTMLのmeta(メタタグ)あれこれまとめ - Qiita
なつき@コーディングスクール開催さんのツイート: "Googleは以前head, body省略を推奨するような記事書いてましたよね…私はおすすめしませんが。p要素も条件次第で省略可能です。 "HTML5 で省略できるタグ - Qiita" https://t.co/4kqHmgDz82"
HTML5 で省略できるタグ - Qiita
なかのん&マジックさんのツイート: "公開する分だけ機械的に抜くのはともかく、基本的には書いた方がミスがなくて良いと思うけどな。C++でもたまに、{}を付けてなかった1行のブロックに機械的に行を追加しちゃったけど、当然ブロックスコープが意図せず違っててクラッシュバグになったりとかあってるし。"

Twitter

vyv03354さんのツイート: "WHATWGのHTMLも最新とは限らないとか勘弁して…。 https://t.co/zySMIUvL #もずでぶ"
KANZAKI, Masahideさんのツイート: "HTML 5.2 https://t.co/LRz4sAfmvD 更新されたWDを久々に見たら:main複数可(ただし表示は1つのみ、WHATWGと違)、styleはbody内も可(4月WD、WHA.は不採用)、dlの子にdiv可(2月、WHA.は昨年末)などなかなか斬新"
Rockridgeさんのツイート: "2017年12月14日、HTML 5.2の仕様がW3C勧告となった。 / “HTML 5.2 is now a W3C Recommendation | W3C News” https://t.co/D13rRxxZM6"
Rockridgeさんのツイート: "HTML 5.2において、プラグインシステムはobsolete(旧式)なものとして扱われるようになった。 / “HTML 5.2 is done, HTML 5.3 is coming | W3C Blog” https://t.co/XPnb10LxWQ"
なかのん&マジックさんのツイート: "そういえば、HTML5で実際にアプリに使われていたことのある、<link rel="top">とか、<link rel="up">が仕様にない上にvalidatorでerrorになるというのには驚いたなぁ。"
もんどさんのツイート: ">アウトライン周りはなかなかに人によって意見が分かれそうな雑な定義で実に悩まされましたね……ググっても、どれを参考にすれば良いのかと思えるぐらい、検索結果が玉石混交っぽくて、今でもまだ正解が分かってません。 どうせブラウザーが実装してないから気にしない派です。"
なかのん&マジックさんのツイート: "そこはそれ、妄想の中にある理想のブラウザで読み込まれることを前提としてですね("

W3Cのは『欠陥フォーク』!? HTMLスナップショット2016 ── HTML5 Conference 2016セッションレポート | HTML5Experts.jp
HTML関連英文書の日本語訳 - HTML5.JP
Top | Diff of HTMLs
W3C - 『HTML 5 differences from HTML 4』日本語訳 - HTML5.JP
HTML5日本語訳
HTML Standard 日本語訳
HTML5の最小構成サンプルとその説明 | マイナビニュース
すべての人が使えるウェブを開発しよう | Mozilla Japan ブログ
JenkinsとHTMLHintを使用して潜在的な構文エラーに気づいていく | フロントエンドBlog | ミツエーリンクス
picture要素やsrcset属性による画像のレスポンシブ、高解像度対応 | フロントエンドBlog | ミツエーリンクス
HTML の q タグが日本語のサイトではカギ括弧を出すようになってた - 頭ん中
本の虫: W3CとHTML5のruby要素の違い。
A Study in HTML5 — Baldanders.info
W3CはHTML 5.2を公式勧告としてリリースした
WebStudioともずはっく日記のHTML5化とその他もろもろ - WebStudio
img要素とiframe要素のlazyload属性 - EagleLand
Chrome 74が遅延ローディングをネイティブにサポート

XML

XML 1.0第五版登場、一部規制を緩和 | マイナビニュース
RFCの正規文書がXMLに:Geekなぺーじ
The XML C parser and toolkit of Gnome
Downloads
Welcome to Expat! · Expat XML parser

XHTML

なかのん DAYS''さんのツイート: "なんかそのうちドキュメントにまとめたいと思うけど、長年、私のサイトでapplication/xhtml+xmlを運用してきたけど、その結果からするとこの仕様はdeprecatedにして、廃止した方が良い。"
なかのん DAYS''さんのツイート: "まず第1の問題はGoogleを始め、知る限りほとんどのエンジンが対応していないというか、acceptableなMIMEタイプに含めていないぐらいにブラウザベンダ以外はサポートする気が無い。"
なかのん DAYS''さんのツイート: "第2の問題は不安定な通信状況等で1バイトでもデータが欠けると、ページ全体がレンダリングされない。これは非常に大きな問題。"
なかのん DAYS''さんのツイート: "第3の問題はうちの日記システムのように生のHTMLを書き込めるようなシステムの場合、プレビューの仕方を工夫しないとエラーが出て書き込んだ情報のdatalossにつながりかねない。"
なかのん DAYS''さんのツイート: "最後の問題として、lang属性 vs. xml:lang属性の問題や<pre>要素の問題等、text/htmlと動作が違い過ぎる点がある。このため、テストが二重に必要になるのでこんなコストを良しとする作成者は普通は居ない。"
なかのん DAYS''さんのツイート: "あんまし記憶にないんだけど、CSSのセレクタの動作がXMLかHTMLかで変わるってのもあった気がする。"
なかのん DAYS''さんのツイート: "あ、application/xhtml+xmlだと、利用できる実体参照の数がすごい少ないんだっけか。"
なかのん DAYS''さんのツイート: "あー、クローラーと書くつもりがエンジンって書いちゃってたのか。 https://t.co/9NBeWL7IgH"
XHTML 1.1 解説

ISO-HTML

ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス
<style>要素(スタイルシート言語に依るスタイル定義) - HTML リファレンス
ISO-HTML に於ける Pre-HTML について - HTML リファレンス

JIS

ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス

MDN

HTML | MDN
HTML 要素リファレンス - HTML | MDN
属性 (HTML) - HTML | MDN
Microdata - HTML | MDN
div 要素 - HTML | MDN
span 要素 - HTML | MDN
Global attributes - HTML | MDN

水底の血

W3CがHTMLとDOMを(再)勧告する理由 - 水底の血
W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血
さようなら W3C HTML5.0仕様 - 水底の血
さよならアウトラインアルゴリズム? - 水底の血
(メモ)W3C、HTMLとDOM仕様の並立状態が有害であることを認めていた - 水底の血
W3Cで現在公開されているHTMLとDOM仕様は将来廃止されます - 水底の血
Web における技術の解釈とエコシステムによる合意形成プロセスについて | blog.jxck.io
(メモ)DOCTYPEスイッチあるいはウェブ標準としてのQuirks Modeの覚え書き - 水底の血
(メモ)令和初のHTML Working Groupが始動した - 水底の血
HTML4/5の知識の断絶みたいなものを感じた件。 - 水底の血
高校の「情報」の教科書にあるHTML断片が酷いらしい - 水底の血
メモ:両HTMLにおけるmain要素の説明、ついに一定の収束の気配か。 - 水底の血
本家Stack OverflowでHTMLの質問をしたら、仕様が変わったという話 - 水底の血

GitHub

html · momdo/momdo.github.io Wiki
talk/webtalk_2016-09-03.pdf at master · momdo/talk
Jxckさんのツイート: "[html][header] HTML の HEAD に書けるメタ情報のまとめ / “GitHub - joshbuchea/HEAD: A list of everything that goes in the <head>…” https://t.co/3cFiiIGEqR"
joshbuchea/HEAD: A list of everything that could go in the <head> of your document
Home · momdo/momdo.github.io Wiki

Wikipedia

HyperText Markup Language - Wikipedia
マイクロフォーマット - Wikipedia
Microformat - Wikipedia
Geo (マイクロフォーマット) - Wikipedia
Geo (microformat) - Wikipedia
hCalendar - Wikipedia
hCalendar - Wikipedia
hCard - Wikipedia
hCard - Wikipedia

Qiita

ヒトでもわかるWebブラウザ自作入門 - Qiita
Webブラウザの作り方 - Qiita

Twitter

その他

Jxckさんのツイート: "@Jxck_ つまり <input type=email> で大丈夫って言われたメアドが Rails 側の保存時にダメって言われることがあるのか。つまり、フロントを自前 pattern でやるか、 Rails を CustomValidator にするか寄せる必要が。"
Kazuho Okuさんのツイート: "「link rel=preload には crossorigin と as attribute つけろよな!絶対だぞ!」"
Jxckさんのツイート: "「alt に代替テキストを付ける」のは「読み上げブラウザのため」って考えるから、「読み上げた時にどうだから alt はどうあるべき」って話をするのなら、それは根本的な勘違い。 alt はスクリーンリーダのため「だけ」ではない。Web を取り巻く全てのエコシステムのためのもの。"
Jxckさんのツイート: "<fieldset>, <legend> タグってほんと全然使われてないんだな、スタイルのバグのせいなのかと思ったけど、そもそも知られてないとかなのなかな。"
llamaさんのツイート: "もうWebブラウザに内蔵しといてもらえないかなHTMLバリデータ。コンソールに結果出してよ。"
にゃおきゃっとさんのツイート: "小学生の頃、html文書というのは table table table table でした。あれから十数年経過した今は、 div div div div に変化していました。"
ともい(Tomoi,S.)さんのツイート: "Twitterのように縦に長くなるWebサイトを横画面で見る場合、同じ情報を共有した分割画面で、今読んでいる箇所と最新を同時に見たい。"
ともい(Tomoi,S.)さんのツイート: "一見2枚開けば同じことができるように見えますが、「論理的に1枚の画面で、読んでいる位置だけが違う」状況が必要なので、これができるブラウザがあれば乗り換えたいところ。"
一ノ瀬 いろはさんのツイート: "ルートパスって何。"
もんどさんのツイート: "みてる:divでdtとddをグルーピングできる - Qiita https://t.co/OlYW79cqIh こう、W3C仕様の勧告というステータスへの信仰みたいなもの、どうすればいいんでしょうね。"
divでdtとddをグルーピングできる - Qiita
道化師さんのツイート: "昨今の HTML の類いのファイル、サーバー上 or クライアント上でレンダリングする templete まみれで素の HTML を前提としてるエディタ、非常に残念なことになるよなぁ。"
dynamis (でゅなみす)さんのツイート: "Web業界にやっとブラウザ標準のコンポーネント化技術がHTML/JS双方で揃い、AndroidだけでなくiOSやデスクトップでのアプリサポート、課金システム対応、Wasm強化にAV1の導入、これらを背景としてHTTPの本格的なdepricationが始まるのが今年のブラウザトレンドになりそうかな。"
uint256_tさんのツイート: "#Naglfar - 閉じられていないHTMLのコメントに対応 https://t.co/vOgoxtLNeG"
KIMATA RobertHisasiさんのツイート: "あと、time要素の「datetime属性の値になりえるテキストノードがこようその場合のみdatetime属性を省略できる」のに <time>2018年9月26日</time> みたいな記述を散見する。まあ、これもやりがちなのだが、駄目な奴。結論としては「チェッカー使いましょう」だろうか"
スドー🌻さんはTwitterを使っています: 「もともとHTMLのリンク文字列は「青文字で下線表示」というスタイルで「ここはクリックできますよ」と明示していたのだが,CSSの普及とともに色分けも下線もなくしてどこがクリックできるのかわからないようにするのが流行りはじめ,デザイナの考えるかっこよさとユーザビリティの乖離を考えさせられた」 / Twitter
なかのん&マジックさんのツイート: ""Geckoをユーザーエージェントにしたブラウザを優遇したウェブページが登場するようになりました" / 世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE https://t.co/qDtUPZnO6F いや、そんなタイミングは全く無かったと思うが……"
いざてんさんのツイート: "正確にはMozillaですかね?(… "
なかのん&マジックさんのツイート: "IEとGeckoの違いが大きかったので、見分けるために使ってたかもですが、優遇っていうより、IE以外を見分けるのになんでか"Gecko"とか見てるサイトがあったとかそんな感じ? ピーク時でもシェアは今より良かったってだけで、めちゃくちゃシェアが大きかったことなんて無いですし。… https://t.co/TmqsvRAcY6"
いざてんさんのツイート: "原文を読んでみましたけど、「KHTML, like Gecko」が入っていたという話らしいのでGeckoを見てるサイトがあった、という訳文に間違いはなさそうですね。そんなサイトあんまり覚えがないですけど……。… "
もんどさんのツイート: "これ見て気づいたんですけど、User agents must support [...] UTF-8, [...] ISO-2022-JP, Shift_JIS ってあって、EUC-JPが見当たらないんですけどどういうことなんですかね…"

robots.txt

電波の妖精さんのツイート: "げぇっ、総務省のWebサイトってrobots.txtでInternet Archiveのクローラだけ狙い撃ちで弾いてるのか……これなら確かに国会図書館法には違反しないけど…… https://t.co/ttYlY0LQVd"
電波の妖精さんのツイート: "User-agent: ia_archiver Disallow: /"
電波の妖精さんのツイート: "このrobots.txtは2012年12月頃に置かれたようだ https://t.co/vqFPd3AuOp それでもHTTPSページとトップページだけは収集するのな。"
電波の妖精さんのツイート: "海外だとHTMLドキュメントなどを含む行政文書はパブリックドメインに属すると思うんですけど、日本だと法の建て付けが弱いというか、行政文書は行政機関が著作権を持つという前提で進んでいる気がして、そういう意識の現れなのかなぁと思いました(小並)"
Tsukasa #01 [要出典]さんのツイート: "IA は robots.txt を無視する方向に持っていきたいみたい (当該ブログ記事では米国の政府・軍事機関のウェブサイトでは既に無視しているとのこと)。 | Robots.txt meant for search engines don’t work well for web archives https://t.co/gHrKPcu65J"

Super Reload

べるさんのツイート: "うたプリファンミ通販のためにムービックで戦っている方、4:14現在全てまだ在庫あります。 スマホとPCで試した結果、firefox(PC)でアクセスしてCtrl+Shift+Rを繰り返していたところ、10分とせず繋がりました…!! ご飯お風呂睡眠を挟んで16時半からの戦いがやっと…幕を閉じました…(˘ω˘)"
なかのん&マジックさんのツイート: "あまり有名じゃないSuper Reload……"
おじゅんぬさんのツイート: "うたぷり ムービック戦争ですが PCのFirefoxで マイページより「うたの」で検索→落ちると思うのでctrl+Shif+Rで連打 であっさり行けます"
にんさんのツイート: "ムービック燃やす勢いのうたプリファンの皆さん pcからfirefox落として「ムービック うたプリ 通販」で検索、お客様各位になったもshift.ctrl.rの3つ同時押しで更新してたらぽろっといけます!!!その後も度々お客様各位にされるけど同じやり方で更新!!"
なかのん&マジックさんのツイート: "なんでSuper Reloadがこの界隈では有名なの……?"

タブ数

Rockridgeさんのツイート: "Firefox Nightlyユーザーの75%は、同時に9タブ未満しか開いていない。もっとも、上位5%に限ると40タブ以上開いているほか、中には3300タブという猛者もいるらしい。 / “dietrich ayalaさんのツイー…” https://t.co/Jx2RQkqBOT"
dietrich ayalaさんのツイート: "Ok, which one of you has 3.3k tabs open on @FirefoxNightly… https://t.co/yK7JYyMpzt… "
Measurement Dashboard

エンコーディング

KIMATA RobertHisasiさんのツイート: "まず、W3Cの最新のHTMLであるHTML5.1 2ndでは(HTML5の頃から引き続き)”Authors should use UTF-8.”。この should はRFC 2119が定めたshouldなので「理由を完全に理解した上で敢えて従わないこともできる」"
KIMATA RobertHisasiさんのツイート: "一方、Living Standardの現時点の表記は ”the actual character encoding used to encode the document must be UTF-8.” である。Must なので理由があってもUTF-8でなければいけない"
KIMATA RobertHisasiさんのツイート: "肝心のUTF-8でなければならない理由は潜在的なセキュリティ上の脆弱性があるからとされている。具体的には(日本人に馴染みあるコードとしては)ISO-2022などが名指しで使うなとある。また、UTF-16とエンコーディングアルゴリズムが区別つかないUTF-32も使うなとある"
なかのん&マジックさんのツイート: "UTF-16は、ASCII非互換ってところだけで、文字コード不明な段階でのHTMLのパースに色々と面倒な事が容易に想像してもらえると思うし、NULL文字にあたる0が多々含まれるのがやっぱ怖い。というか気持ち悪い。"
なかのん&マジックさんのツイート: "@robert_KIMATA BOMが無いケースが普通にあります。UTF-16BEとUTF-16LEと。"

ブラウザの挙動と仕様

なかのん&マジックさんのツイート: "仕様をきちんと理解してる開発者が、仕様とは異なる挙動をブラウザがしている場合や、仕様を実装していない事に対して言うなら正しいよ。でも、そうじゃないケースを多々見てきてるから、うなずけない。こういう考え方がIE6一強時代みたいなのを繰り返すやろうね。 https://t.co/6BvsqjJEfJ"
なかのん&マジックさんのツイート: "真面目に勉強されてる人がこういう事言うと、そうじゃない人は都合よく解釈するのがオチ。"
なかのん&マジックさんのツイート: "ブラウザ側のバグで動かない場合、そのままってのはブラウザベンダからすると意外と有り難い面もある。バグを修正して他のブラウザと同じ挙動になったら壊れるアプリってのが一番困る。大抵、UA文字列等の関係ない情報でブラウザを特定して動作を変えるという、やっちゃいけない判定やってる。"
なかのん&マジックさんのツイート: "例えば、特定のイベントの結果がブラウザによって異なるからハックを入れる場合、特定ブラウザを確認してコードを書くのではなく、得られた結果を確認して書かないといけない。前者はブラウザ側の挙動変更で壊れるが、後者は壊れにくい。"
なかのん&マジックさんのツイート: "@okomeki バグ報告してから修正されないならベンダの責任やけど、だいたい、報告されないから、他の開発者も同じ所で同じようなハック入れたりする地獄が想像できる……"
なかのん&マジックさんのツイート: "@okomeki あの手のヤツ、うまいこと作ってるらしく、ブラウザ側の挙動変更に強くて助かる。でも、使うのがこれだけ一般的になってても、やはり挙動変更で壊れるサイトがあって、UA文字列偽装で動くとか未だに普通にある。"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeみたいにブラウザの判定じゃないとどうしようも無い場合ももちろんあるんだけど、こういうケースはブラウザ側は修正できないし、あまりしない。標準化においても、レガシーなものと定義して、代わりのものを用意して、過去との互換性に配慮する。"
なかのん&マジックさんのツイート: "@t_daicho あの辺はグレーゾーンも多そうですね。あと、小数点の丸め誤差とか。デバイスピクセルに沿わせないとボケて見えるので。"

互換性

dynamis (でゅなみす)さんのツイート: "Googleさんの、社内の他のサービスが壊れるのを気にせずにChromeの挙動変更を入れていく姿勢、Firefoxなど他のブラウザへの挙動変更をリクエストしていく姿勢、大好きです。 社内配慮でサービス側を直さずプラットフォーム側の改善禁止やハックを求めて何も進まない日本の大企業とは違う。"
なかのん&マジックさんのツイート: "激しく巻き込まれてる最中でもにょる……"
なかのん&マジックさんのツイート: "Googleさんの各種アプリのアップデートが大変ということで、古い挙動をブラックリスト形式で許可していってるところだけど、なかなかに作りが悪くない感じで、JSのコンテキストは比較的、素直なサブドメイン上で動いてて助かる。"
なかのん&マジックさんのツイート: "これ、ユーザによってサブドメイン違うとかだと、もう無理ゲーになってくるんで。"
なかのん&マジックさんのツイート: "XHRのアクセス先なんかは、ドメイン上に数字が含まれててスゴく怖いんだけど、まあ、そっちは今回は関係ない。"
なかのん&マジックさんのツイート: "*.google.comとかすると、新しい挙動にしてくれと言ってきた部署のアプリがテストできないんで、個別指定ができないと困る訳ですわ。"
Mantarohさんのツイート: "IE さえなければこれを使いたいってあるよね(遠い目) https://t.co/Z8t4RgCbXb"
HTMLSelectElement.selectedOptions | MDN

target="_blank"

Manabu Uenoさんのツイート: "Mac の Safari は、target="_blank" のリンクから新規タブで開いたページで「戻る」ボタンを押すとタブが閉じて元のページに戻れるのがいい。iOS の Safari もそうなってほしい。"
llamaさんのツイート: "知らなかった。世のブラウザがみなそういう実装になったら、target=“_blank” やめましょうと説く必要はなくなるかな。他に理由があるか今ちょっと思いつかないけど。"
なかのん&マジックさんのツイート: "きちんと調べたことないんだけど、Firefox for Androidも概ねそんな動作な感じ。Backボタンを押したときに履歴が無かったら、タブを閉じて、openerなのか単に左にあるタブなのか直前のタブなのかはっきりしないけど、何しか、割と直感的に動いてくれる。"
なかのん&マジックさんのツイート: "Firefox for Desktopでも履歴が無い場合のタブでの戻るボタンについて似たような動作にしろっていうバグを昔見たけど、ユーザに混乱与えずに実装する「正解」が見つけられずに止まってたな。誤って戻るボタンで閉じたタブを進むボタンで開けない以上、どうしたもんかっていう感じだったと思う。"
なかのん&マジックさんのツイート: "18808 - New windows/tabs should inherit current page, back button/go menu history https://t.co/fUL9KtHLki"

@d_toybox

なかのんクエストさんのツイート: "個人的には、Web (public) と相容れない形式のファイルをインライン表示する手段としてのプラグインは永遠に必要だと思うんだけど、Flashみたいに「悪用」してそれに乗っかる「クリエイター」が出続けてた状況を見ると、一般ユーザーの利益になるのはプラグイン廃止よねぇ。"
なかのんクエストさんのツイート: "Webを酷いものにしたのはFlashとそのクリエイターだし、ブラウザのプラットホームとしての可能性を結果として潰したのもFlashとそのクリエイター達という認識。"
なかのんクエストさんのツイート: "DOMがあるからすっきりと体系化できるんだし、セマンティクス中心にスタイル指定できるようにclassが有るのに。"
なかのんクエストさんのツイート: "Chromeのようにシェアが有るところが、強攻手段で存続させるメリットが互換性以外に無い、非標準な動作を変えるってのは、Webを健全なプラットホームとして保つのに必要なので、ガンガンやっていただきたい。"
なかのんクエストさんのツイート: "「Firefoxだけ値や動作が違うから修正すべき」って、問題が発生してるひとつのサイトだけ見て言う人が多いんだけど、他の問題ない多数のサイトはその値前提で動いてるんですよ。プラットフォームの動作を変えるってのはそれほどにリスキーで難しい。 #もずでぶ"
なかのんクエストさんのツイート: "比較的変更しやすい例は、値が文字列等でそれまでの値と新しい(他のブラウザと同じ)値をorで検査しているような場合や、Firefoxでのみ追加のAPI呼び出しが必要だったケースで他のブラウザに合わせる場合。ただ、これらでもUA文字列確認してて壊れるサイトが出てくる。#もずでぶ"
なかのんクエストさんのツイート: "KeybordEvent.keyCodeの検査のように、UA名を確認しないといけない場合を除き、UA名を見て動作を変えるサイトは悪だと言うことがよくわかってもらえると思う。動作の違いやAPIの有無を確認して処理を行うのが正しいアプローチ。 #もずでぶ"
なつき@コーディングスクール開催さんのツイート: "「WinとMacの見た目を統一したい」というのは制作者やクライアントの要望でよく聞くけど、ユーザーはそんなこと求めてないんじゃないかなぁというのが私の意見なので、単に sans-serif だけ指定してブラウザやOSに任せることが多いですね。"
なかのんクエストさんのツイート: "なんでかGeckoがネイティブのL&Fを一番大切にするブラウザになってしまった。普通はOS付属のやつだと思うんだが……"
なかのんクエストさんのツイート: "<input type=radio>と<input type=checkbox>はサイズ指定されてる場合はどうにかならんもんかなぁとは思うけど。"
九波ヒメヒコさんのツイート: "周知の機能かも知れませんが… クリスタで「フォントどうしようかな~」と一つ一つ選んで試すのが面倒!って方は、変更したいテキストを選択してから[ツールプロパティ]の[フォント]にカーソルを乗せマウスのホイールをクルクルさせてみてください。 幸せになれます。 https://t.co/GNokXKEsy5"
なかのん&マジックさんのツイート: "マウスホイールでドロップダウンリストの選択項目が順に変わるのを有りがたいと思うケースって本当にあるのか……"
なかのん&マジックさんのツイート: "あれは意図しない編集が発生したままで、フォームを送信する可能性があるんで、ブラウザは絶対にやるべきじゃないと思ってる。例えネイティブの動作と異なってたとしても。"
なかのん&マジックさんのツイート: "え、HTMLのid属性ってこんだけしか定義ないの……? https://t.co/cF7I2KDDx8"
HTML Standard
なかのん&マジックさんのツイート: "let e = document.createElement("span"); e.setAttribute("id", "foo"); document.body.setAttribute("id", "foo"); document.body.insertBefore(e, document.body.firstChild); ってやった時に、どっちかのid属性が削除されるべきなのかどうなのか気になったんだけど……"
なかのん&マジックさんのツイート: "altに求めてる事が属性値としては不適切になってきてるよな。後方互換性を捨てまくってるんだから、内容を持てる様にしても良かったんではって最近思える。"
なかのん&マジックさんのツイート: "今日も一つ、HTML4時代にはそう解釈するのが普通よねって動作が、WebKit/Blinkでは違ってて、さらにHTMLの仕様で現在のWebKit/Blinkの動作に近い内容にいつの間にか変わってるし、モバイルなページでそれに依存してるところあるぞってバグに巻き込まれた。"
なかのん&マジックさんのツイート: "<blink>要素にとどめを刺したのは私だけど、別に広告が原因じゃないよ。 https://t.co/AbDf7LNcJU"
広告によって滅ぼされる技術 (#3505579) | 2018年中にサードパーティCookieが無効でもWebサービスが正常に動作するか確認を | スラド
なかのん&マジックさんのツイート: "スラドのフェイクニュースを訂正する気は無いという強い意志を感じる("
なかのん&マジックさんのツイート: "<input type="password">を含むformはGETでは送信しないとか今のHTML仕様で縛られても良い気がする。… "
malaさんのツイート: "パスワード入力フォームにmethod=POSTの指定がなくてJavaScriptエラーでGETメソッドで送ってしまったのではないかと推察。あくまでURLにパスワードが露出するバグとして報道されている(この規模のサービスでパスワードが平文保存なわけがないです) https://t.co/afmJz0Q1PB"
InstagramがユーザーのパスワードをURL内で公開するミス、なぜかFacebookにもパスワードが保存されていたと判明 - GIGAZINE
なかのん&マジックさんのツイート: "それで互換問題出るWebアプリはさすがに修正に追い込まれた方が良いだろうし。"
しめじさんのツイート: "ブラウザのタブなんて整理つかなくなるんだから、アドレスバーで検索しようとしたタイミングで「お前それもう別のタブにあるぞ」って出してこいよ"
なかのん&マジックさんのツイート: "Firefoxはそうしてるし、Enterキーだけでそのタブにスイッチするけど、Chromeだとボタンに「このタブに切り替え」ってボタンにフォーカスあわせないとできないのか。"
なかのん&マジックさんのツイート: "どういう理屈で、新しいタブを作りまくることを誘導する今のUIにしたんだろう、Chromeは。"
なかのん&マジックさんのツイート: "それにしてもドロップダウン内でボタンというウイジットにフォーカスを移動させるという行為、なんか気持ち悪いな。"
なかのん&マジックさんのツイート: "<keygen>要素、完全になくなるのか。あれとcontenteditable絡みで一杯クラッシュバグを見つけられてたけど、ひとまずその辺は落ち着くのか。"

HTML Standard

CSS

和訳

CSS3の日本語訳集 - 血統の森 web実験小屋
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification 日本語訳
CSS Basic User Interface Module Level 3 (CSS3 UI) 日本語訳
CSS Values and Units Module Level 3 日本語訳
CSS Text Decoration Module Level 3 日本語訳
CSS Device Adaptation Module Level 1 (日本語訳)
CSS Snapshot 2015 日本語訳
CSS Snapshot 2017 日本語訳
CSS Snapshot 2018 (日本語訳)

Mozilla

4x

Rockridgeさんのツイート: "Fx49:CSSの色指定で、RGBA値(4桁または8桁)を指定する場合でも16進表記が可能になった。WebKitでは実装済みで、Chromeも実装予定。参照:https://t.co/aXse15IScD … https://t.co/EnboG25nyv"
Rockridgeさんのツイート: "Fx47:CSS Scroll Snap Pointsの処理が別スレッドで非同期に行われるようになった。 / “1219296 – Ship snap points to the compositor so that we ca…” https://t.co/u9mqpFnIou"
Rockridgeさんのツイート: "Fx49:絵文字の文字列にline-breakプロパティが正しく適用されるようになった。 / “1265631 – Supplementary-plane Unicode characters (including Emoji)…” https://t.co/TEvC0rcWaK"
Rockridgeさんのツイート: "Fx49:CSSのbackground-position-x/background-position-yプロパティをサポート。 / “550426 – Add background-position-x and backgrou…” https://t.co/nwWRK8u59v"
Rockridgeさんのツイート: "Fx49:ベンダープレフィックスなしのtext-align-lastプロパティをサポート。 / “1039541 – Unprefix -moz-text-align-last” https://t.co/u8iLn7d72N"
Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートしたことで、互換性が向上した実例が画像で示されている。 / “Firefox 49 fixes sites desi…” https://t.co/Sq4QVf6w32"
Firefox 48 は CSS calc() 関数の入れ子に対応、CSS カスタムプロパティとの併用がより便利に | WWW WATCH
Firefox 49でChrome・Safariを基準に作成されたコンテンツの表示精度が向上 - Mozilla Flux
Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートした背景には、日本と中国のトップ1000のWebサイトのうち、およそ20%がAndroid版Firefoxで正しく表示… https://t.co/uYOpbR0old"

5x

50

Rockridgeさんのツイート: "Fx50:CSSのMask Imageプロパティがデフォルト有効化の予定。実装はFirefox 47から。参照:https://t.co/AzLSK26Eee / “Intent to ship: CSS Mask Image” https://t.co/UvnPjs0QDz"
Rockridgeさんのツイート: "Fx50:Pointer Events API関係のtouch-action CSSプロパティをサポート。参照:https://t.co/ByxmjKhqYV / “Intent to enable: touch-action …” https://t.co/82VAnlvyrr"
Rockridgeさんのツイート: "Fx50:border-image-repeatプロパティのspaceキーワード(枠線用の画像間の余白を均一にするもの)をサポート。 / “720531 – Implement border-image-repeat space…” https://t.co/is3VkL4NF7"

51

Rockridgeさんのツイート: "Fx51:ベンダープレフィックスなしの::placeholder疑似要素をサポート。参照:https://t.co/Lhofrgdq9E / “Intent to ship: CSS placeholder pseudo-ele…” https://t.co/un6XzSEMvO"
Rockridgeさんのツイート: "Fx51:onanimation*やontransitionendなど、CSSアニメーション関係のイベントハンドラのサポートを拡充し、WebKitと同等となった。 / “911987 – Add onanimation* eve…” https://t.co/jbyH818uNn"
Rockridgeさんのツイート: "Firefox 51でCSSのProperties/Values API Level 1を実装予定。デフォルト無効とのこと。参照:https://t.co/ASJFWNGvPl https://t.co/oIUpVqQjZy https://t.co/wv4H8qdGgu"

52

Rockridgeさんのツイート: "Fx52:CSS Inline Layout Module Level 3のinitial-letterプロパティが実装予定。参照:https://t.co/vBVvC7GCoL https://t.co/vG8WlvEEaj https://t.co/8TE91JAMe5"
Rockridgeさんのツイート: "Fx52:CSS Multi-column Layout関係のプロパティをベンダープレフィックスなしでサポート。参照:https://t.co/pTT4Gjxh3j / “Intent to ship: css multi-co…” https://t.co/sodonlx7mc"
Rockridgeさんのツイート: "Fx52:CSSのshape-outsideプロパティをサポート。参照:https://t.co/FtjLZ5EBXo / “Intent to implement: CSS shape-outside property” https://t.co/2bwRANEYkD"
Rockridgeさんのツイート: "Fx52:Beta/リリースチャンネルでもCSS Gridがデフォルト有効化の見込み。参照:https://t.co/6BskxHvwDv / “Intent to ship: CSS Grid - Google Groups” https://t.co/UWpkArdohD"
Rockridgeさんのツイート: "Fx52:予定通りBeta/リリースチャンネルでもCSS Gridがデフォルト有効化。 / “1217086 – [css-grid] Enable CSS Grid by default” https://t.co/yqIgcccYQc"
Rockridgeさんのツイート: "Fx52:CSSの関数記法による色指定について、新しい構文を実装。たとえば"rgb(0 0 0 / 100%) "といった記述が可能になる。参照:https://t.co/K7UCH7raOM / “Intent to ship…” https://t.co/qL7e3cAOCA"
Rockridgeさんのツイート: "Firefox 52/Chrome 57でサポートされるCSS Gridは、ビューポートを格子状に切り分け、行と列でボックスをコントロールする仕組み。Flexboxよりもきめ細かなレイアウトの制御が可能に。 / “CSS Gri…” https://t.co/f2iS2Ijsbv"

53

Rockridgeさんのツイート: "Fx53:チェックボックスやラジオボタンに対し、スタイルシートで背景色やボーダーなどを指定できるようになった。 / “418833 – can't define the style of input when the type …” https://t.co/Epi4fq5unm"
Rockridgeさんのツイート: "Fx53:CSSのMask Imageプロパティがデフォルト有効化。 / “1251161 – (mask-ship) Ship CSS positioned mask support on beta & release cha…” https://t.co/sXkFPaLC2U"
Rockridgeさんのツイート: "Fx53:ベンダープレフィックスありのtext-align-lastプロパティを削除。プレフィックスなしの同プロパティはFx49でサポート済み。参照:https://t.co/i2aPJfYRoP / “1276808 – Re…” https://t.co/6GayvnZDsn"
Rockridgeさんのツイート: "Fx53:キャレットの色を変更するCSSのcaret-colorプロパティをサポート予定。参照:https://t.co/CDCuV6IdZP / “Intent to implement and ship: CSS caret…” https://t.co/pCo1F85bll"
Rockridgeさんのツイート: "Fx53:CSSのdisplayプロパティでflow-rootの値をサポート。floatの解除に使える。 / “1322191 – Implement CSS `display: flow-root` (modern clear…” https://t.co/FLXEwcIOco"

54

Rockridgeさんのツイート: "Firefox 54にCSSのtext-justifyプロパティが実装される予定。テキストの均等割り付けが指定できる。参照:https://t.co/h3lxcUTEL8 / “Intent to implement: CSS …” https://t.co/cKZB0RpCC6"
Rockridgeさんのツイート: "Fx54:CSSのappearance:autoとappearance:noneのプロパティをサポート。-webkit-appearanceもエイリアスとして使用可能。参照:https://t.co/EaLwvF2nRE https://t.co/uTCySTdtBy"
Rockridgeさんのツイート: "Fx54:Facebook使用時、CSSアニメーションの非同期処理が行われない場合がある問題を修正。 / “1339578 - OMTA doesn't trigger for 4x4 layers leading to CPU…” https://t.co/olYbboRjDW"
Rockridgeさんのツイート: "Fx54:clip-pathがCSS Shapesの基本シェイプ(basic shape)に対応。参照:https://t.co/Lonr4Gv3B5 / “1247229 - (basic-shape-ship) Ship b…” https://t.co/YyG6Z1RM5A"
CSS Shapes の新しい文法 | Adobe Creative Station

55

Rockridgeさんのツイート: "Fx55:CSSのtext-justifyプロパティがデフォルト有効化。参照:https://t.co/15ge7l04dl / “Intent to ship: CSS text-justify property” https://t.co/DuVp3M8ex2"
Rockridgeさんのツイート: "Fx55:ページ読み込み時に表示されるスロバーがCSSアニメーションを用いることにより別スレッドで処理されるようになった。 / “759252 - Use CSS animations for the loading and c…” https://t.co/6d7Sf4FyQS"
Rockridgeさんのツイート: "Fx55:CSS Variables(CSSカスタムプロパティ)を無効にするための設定が削除された結果、常時有効化された。 / “1312328 - Remove CSS pref "layout.css.variables.e…” https://t.co/ECXb0hrRaG"
Rockridgeさんのツイート: "Quantum CSS(Stylo)はFirefox Nightly 55に投入され、Firefox 57でデフォルト有効化となる見通し。 / “TPE-Layout/Dashboard - MozillaWiki” https://t.co/EYNMjZjLL0"
Rockridgeさんのツイート: "Fx55:"display: flow-root"のサポートを設定から無効にできないようにした。 / “1365163 - Remove the layout.css.display-flow-root.enabled pref…” https://t.co/unD5kcmZNJ"

56

Rockridgeさんのツイート: "Firefox Nightly 56に搭載されているCSS Gridインスペクタの改善点を紹介した記事(動画あり)。レイアウトパネル、ボックスモデルパネルともに直感的な操作を実現した。 / “Powerful New Addit…” https://t.co/GpGO5Ad5ov"
特定のマルチカラムレイアウトで、バランスが崩れたり、ランダムに要素が欠落する場合があります (リグレッション) | Firefox サイト互換性情報

57

Rockridgeさんのツイート: "Fx57:タブの切り替えにCSSのsmooth-scrollを使用し、パフォーマンスを向上させた。 / “1356705 - 28ms uninterruptible reflow at set_scrollPosition@c…” https://t.co/cfBET6gzul"
Rockridgeさんのツイート: "Firefox 57でCSSのfont-displayプロパティがデフォルト有効化へ。Quantum CSSでもfont-displayプロパティは使える(むしろ無効化する設定がない)らしい。参照:… https://t.co/WvgaAElbjI"

58

Rockridgeさんのツイート: "Firefox 58でMedia Queries Level 4のInteraction Media Featuresをサポートする予定。参照:https://t.co/csJc8naMKv / “Intent to imple…” https://t.co/O1WgOBHzri"

59

Rockridgeさんのツイート: "Fx59:CSSのoverscroll-behaviorプロパティをサポート。参照:https://t.co/IBSIGPNiYh / “951793 - Add support for 'overscroll-behavior'” https://t.co/4tqc2LDwZf"
Rockridgeさんのツイート: "Fx59:CSS Shapes Module Level 1の仕様の一部をデフォルト有効化。 / “Intent to ship: CSS Shapes Module Level 1 (partial)” https://t.co/LsAxDiycqd"
Rockridgeさんのツイート: "Fx59:メディアクエリ内でcalc()をサポート。 / “1396057 - stylo: Bring back calc support inside media queries” https://t.co/mwNLdCOmow"
Rockridgeさんのツイート: "Fx59:CSS Gridが常時有効化。 / “1398492 - Remove the "layout.css.grid.enabled" preference” https://t.co/9E9xzYkiE9"

6x

60

Rockridgeさんのツイート: "Firefox 60で、CSS Transform Module Level 2のtransform/rotate/scaleプロパティが実装される見込み。参照:https://t.co/4JIQzJACte … https://t.co/gSjMIshNDI"
Rockridgeさんのツイート: "Fx60:-moz接頭辞付きのtransformプロパティが削除される見込み。 / “Intent to unship: Legacy -moz-transform syntax.” https://t.co/f4cY5j6Xqb"

61

Rockridgeさんのツイート: "::-moz-selection疑似要素のベンダープレフィックスがFirefox 61で外れる模様。参照:https://t.co/3F9Hb7XdKg / “Intent to unprefix: ::-moz-selecti…” https://t.co/kzHjXENxzT"

62

Rockridgeさんのツイート: "Fx62:CSSのshape-outsideプロパティがデフォルト有効化。 / “Intent to ship: shape-outside” https://t.co/9o62gL7bjO"
Rockridgeさんのツイート: "Firefox 62はCSS Shapesをサポートしているので、Web開発者はページ内の画像や文章を複雑な形に配置できる。ウェブ開発ツールのインスペクターにCSS Shapesの編集機能が付いており、直感的な操作が可能。 https://t.co/iFdlODvEXX"

63

Rockridgeさんのツイート: "Fx63:疑似要素だけでなく、通常の要素においても、contentでurlを指定すると画像等を表示できるようになった。WebKit/Blinkとの互換性が向上する。 / “215083 - (content-url-elemen…” https://t.co/Czkndktzpl"
Rockridgeさんのツイート: "Fx63:Windows版で、CSS Media Queries Level 5のprefers-reduced-motionをサポートした。Mac版はFx64がターゲット。参照:https://t.co/Yro7Sk5i2s … https://t.co/LzEKwdlkhy"
Rockridgeさんのツイート: "Fx63:巨大なテーブル要素内に多数の項目があり、display:noneも適用されるという状況において、テキストの動的処理を高速化。 / “1330375 - interleaved innerText calls and d…” https://t.co/asITEbVrBp"
Rockridgeさんのツイート: "Fx63:"white-space: nowrap;"の指定がされていてもfloatとの組み合わせで改行が発生する問題を修正。 / “488725 - float pushed down one line with white-…” https://t.co/1yFTHTce1W"

64

Rockridgeさんのツイート: "Firefox 64では、"-webkit"のベンダープレフィックス付きCSSセレクタが、未サポートのものでもCSSの適用対象となる。参照:https://t.co/Dqlyqvg9cf … https://t.co/ykcLxbsZfj"
Rockridgeさんのツイート: "Fx64:CSSのscrollbar-colorプロパティとscrollbar-widthプロパティをデフォルト有効化。スクロールバーの色や幅を調整可能に。 / “1492012 - Enable scrollbar prope…” https://t.co/4lxs1vMtSx"

65

Rockridgeさんのツイート: "Fx65:CSSアニメーションとCSSトランジションの各処理を非同期化することでパフォーマンスを改善した。 / “1502026 - Buy iPhone page animation seems janky” https://t.co/bl2JCqcGyc"
Rockridgeさんのツイート: "Fx65:border-image-repeat/background-sizeの処理結果について他のブラウザとの互換性を向上させた。 / “1501261 - serialization of border-image-rep…” https://t.co/5LuaicF7sQ"
Rockridgeさんのツイート: "Fx65:-webkit-appearanceプロパティの値としてmeter、progress-barおよびtextareaをサポート。 / “Firefox 65 for developers | MDN” https://t.co/jbtmpUUqhJ"

Twitter

@rockridge07

Rockridgeさんのツイート: "Geckoは1pxを60として整数値でCSSを処理する(浮動小数点を用いない)。計算の途中で小数点の切捨てが入ると、WebKit/Blink/EdgeHTMLとは結果が違ってくる場合がある。 / “How CSS width i…” https://t.co/0e2ZSydzms"
Rockridgeさんのツイート: "FirefoxにCSS Typed OM Level 1を実装することが検討されている。参照:https://t.co/DeMTXH7cPe / “1278697 – Implement CSS Typed OM Level 1…” https://t.co/iknGkA2aoK"
Rockridgeさんのツイート: "ServoがCSSのキーフレームアニメーションをサポート。参照:https://t.co/43IaS3EKtr / “These Weeks In Servo 71” https://t.co/KA3F1pUTdt"
Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について、ブラウザごとの実装状況を示す。2016年8月9日現在、Chromeが先行し、Firefoxが追う状況。それ以外のブラウザは、走り出してもいない。 / “Is Hou…” https://t.co/LmXAUhGvRU"
Rockridgeさんのツイート: "Stylo/Servo/Firefox/ChromeがサポートするCSSプロパティを一覧にまとめて比較できるようにしたもの。StyloはGeckoに実装中のServoのスタイルシステムのこと。参照:… https://t.co/xsIsgOE6f3"
CSS properties list
Rockridgeさんのツイート: "ServoがCSS Gradientsをサポート。Styloを通じてGeckoと処理を比較できるようになった。 / “twis-81” https://t.co/CgDYtxJrop"
Rockridgeさんのツイート: "今後、Geckoに実装される新しいCSS機能は、Servoにも同時に実装される見込み。Quantum CSSへの移行時に機能の減退が起きないようにするための措置だ。 / “Ensuring new CSS features ar…” https://t.co/MnOqG7yqqc"
Rockridgeさんのツイート: "Firefoxでブロックコンテナ一般においてBox Alignmentプロパティ群をサポートする予定。参照:https://t.co/IgjA7cuoW7 https://t.co/vFI22Lz9dF / “Intent to…” https://t.co/gza9TxODbT"
Rockridgeさんのツイート: "GeckoのHoudiniサポートが具体化しつつある。CSS Painting API Level 1を実験的に実装し、利用例やレンダリングパフォーマンスなどを見ていくという。参照:https://t.co/91M9OYIoAS https://t.co/pM0YNq2JTx"
Rockridgeさんのツイート: "-webkit-line-clampプロパティはmax-linesプロパティとして標準化される模様。Mozillaが実装するのもmax-linesプロパティとなる。参照:https://t.co/b8wJQ1O36t 情報提供感謝… https://t.co/P5LnrsQG7R"
CSS Writing Modes ◆ 24 ways
Rockridgeさんのツイート: "clip-pathとCSS Shapesの基本シェイプ(basic shape)を組み合わせることで可能になる様々な表現のデモ。HTML/CSSの内容もCodePen上で確認できる。 / “CSS Shapes, clippin…” https://t.co/zD9YksHWx3"
CSS Shapes, clipping and masking – and how to use them ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "MDN Web DocsにFlexboxの紹介記事が追加された。CSS Gridとの連携・役割分担を意識したものらしい。 / “New flexbox guides on MDN – Mozilla Hacks – the We…” https://t.co/utXJs2Prav"
New flexbox guides on MDN – Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "CSS Box Alignmentのチートシート。解説はこちら。https://t.co/tnqYqdwKFI / “CSS Alignment Cheatsheet” https://t.co/9QHqvRj5qo"
Demystifying CSS alignment – Patrick Brosset – Medium
CSS Alignment Cheatsheet
Rockridgeさんのツイート: "CSS GridとCSS Multi-Columnsを組み合わせると、ユーザーのディスプレイサイズに応じた柔軟なデザインが可能になるという話。 / “CSS Grid + CSS Multi-Columns = ♥ – Patr…” https://t.co/lkgJNfvBZq"
Rockridgeさんのツイート: "Mozillaが2018年にCSS関連で注力する分野。Fonts Level 4/Motion Path/Sizing/Shapes/Scroll Snap update/Containment/Values and Units … https://t.co/X33BKsMzfE"
Rockridgeさんのツイート: "FirefoxがサポートするCSSプロパティの数について。2004年のFirefox 1.0当時は100に満たなかったが、13年を経た現在、300近くになっている。 / “Florian Scholzさんのツイート: "CSS …” https://t.co/Lk8dLVcMUf"
Rockridgeさんのツイート: "CSS GridをWebアプリのUI構築に使えば、Flexboxよりも簡潔なコードで済むという話。 / “CSS Grid for UI Layouts – Mozilla Hacks – the Web developer b…” https://t.co/OKk1OMmK5K"
Rockridgeさんのツイート: "FirefoxでCSS subgridの実装を開始。グリッド内に子グリッドを設定可能になるらしい。 / “Intent to implement: CSS subgrid” https://t.co/yNqUTod369"

chikoskiさんのツイート: "Firefoxの新しいCSS処理系(stylo)の話。@linclark の記事はいつも素晴らしい。簡潔で、わかりやすくて、ユーモラス。https://t.co/sXkeAgoE6O"
Inside a super fast CSS engine: Quantum CSS (aka Stylo) ★ Mozilla Hacks – the Web developer blog
Mantaroh@media=printさんのツイート: "私も先ほどソースを見て初めて知った。edge と unwriteable は 1/00 インチで指定されてるんだ・・・一方 margin は普通にインチ指定・・・謎だろ"
mozmm CSS 単位への対応が打ち切られました | Firefox サイト互換性情報
Mantaray@Devさんのツイート: "Jen Simmons 氏による CSS Grid の御法度。 https://t.co/qdtv4Sj8cd"
9 Biggest Mistakes with CSS Grid – Mozilla Hacks – the Web developer blog
Makoto Kato ︎︎さんのツイート: "最近聞いたものの中で最も...なやつがautolandに入った https://t.co/rlIKrMdUaI overflow:hidden;はviewportの存在次第で無視されるというWebKitとBlinkの変な動作に合わせる話。それどうかと思うけどこの変な動作に依存するサイトが多すぎるからその動作にせざるを得なくなった"
1423013 - Content that overflows the ICB on an overflow:hidden page is "out of reach"
Šime Vidasさんのツイート: "Do you find scroll chaining annoying? There’s a simple way to prevent it. Apply this CSS to the nested scroll container (or <body> of iframed document): { overscroll-behavior: contain; } More info: https://t.co/GcQPXcysqe… https://t.co/DmFSu45RRx"
なかのん&マジックさんのツイート: "Firefoxはかなり昔からスクロールターゲットをタイムアウトするまで変更しないようにしてこの不快な動作にならないようにしてる。カーソルがドラッグ開始するだけの距離動くとキャンセルされるけど。"
なかのん&マジックさんのツイート: "それにしても、スタイルシートにしちゃうの違和感あるな。ime-modeと一緒で。ユーザースタイルシートでコントロールできるのは理にかなってるけど。"

CSS で計算(四則計算)が行える calc() 関数を使ってみよう | WWW WATCH
CSS - MozillaWiki
won't fix: Quantum CSS (Stylo)
CSS Grid and Grid Inspector in Firefox — Mozilla
区分分断の変換規則(2017/4/25 追記アリ) - おいしい
Supporting Referrer Policy for CSS in Firefox 64 | Mozilla Security Blog

Google

Rockridgeさんのツイート: "Chrome 52がサポートするCSS Containmentは、ブラウザによるスタイル/レイアウト/描画の処理が行われる範囲を開発者が限定できるようにするもの。適切に使えばWebページの表示速度が大きく改善される。 / “CS…” https://t.co/bE2A13RlP3"
Google Chrome、ウェブページを高速表示する新機能などを実装へ -INTERNET Watch
WebAssembly実装プレビュー、Chrome 49新機能など─2016年3月のブラウザ関連ニュース振り返り | HTML5Experts.jp
Google Chrome 34リリース、レスポンシブイメージのサポートなどが追加される | OSDN Magazine
“CSS Motion Path”が初期状態で有効化された「Google Chrome 46」がベータ版に - 窓の杜
[Backspace]キーで前のページへ戻る機能を削除した「Google Chrome 52」が正式版に - 窓の杜
Rockridgeさんのツイート: "Chrome 56でposition:stickyを改めてサポート。なお、Firefox 32でサポート済み。 / “position:sticky is back in Chrome  |  Web  |  Google De…” https://t.co/dlIczTg4kb"
Google Developers Japan: Chrome 52 ベータ版: CSS Containment、よりシンプルなパフォーマンス評価、Service Worker からのレスポンスのストリーミング、豊富な Web Push オプション
Google Chrome 56 から、position: sticky;のフラグなしサポート開始 | フロントエンドBlog | ミツエーリンクス
「Google Chrome 57」ベータ版が公開、“CSS Grid Layout”をサポート - 窓の杜
“CSS Grid Layout”をサポートした「Google Chrome 57」が正式版に ~脆弱性も修正 - 窓の杜
本の虫: Blink、新機能に対して新たなベンダープレフィクスを追加しない決定
“マテリアル”になった「Google Chrome 69」がベータ版に ~「AV1」動画もサポート - 窓の杜
なかのん&マジックさんのツイート: "たまにChromeで表示確認しようとすると、CSSのキャッシュ捨てなさすぎやろって思うんやけど、常用してて、更新されたサイトのレイアウト崩れるとかないんかな??"
白鷹(しろたか)🦅さんのツイート: "devツールを開いて更新ボタンを長押ししてキャッシュを除くが開発のときは面倒でなくて、一般にリリース時は適当なリクエストパラメータを与えてそれを更新することで対処するんです… "
なかのん&マジックさんのツイート: "リクエストパラメーターとは?… "
白鷹(しろたか)🦅さんのツイート: "こんな感じで .css?XXXX 他にもwebpackでビルドすると生成されるファイルがランダムなハッシュっぽいファイル名になるので全く考えなくてよかったり… "
なかのん&マジックさんのツイート: "あーなるほど。… "

Apple

Rockridgeさんのツイート: "次期Safari 10.0がCSS Font Loading API/WOFF 2フォント/CSSのunicode-rangeデスクリプタをサポート。Firefoxでは全てデフォルト有効化済み。 / “Improved Font…” https://t.co/0EMSLAoG5R"
Rockridgeさんのツイート: "次期Safari 10.0がCSS Color Level 4のcolor-gamutメディアクエリをサポート。sRGBを超えた色空間を生かせるらしい。 / “Improving Color on the Web | WebKit” https://t.co/ykHUviojgZ"

MS

Rockridgeさんのツイート: "Windows 10 Creators Update後のMicrosoft EdgeはCSSカスタムプロパティをサポートしている。 / “CSS Custom Properties in Microsoft Edge - Mic…” https://t.co/YJDjAHBBdG"
Rockridgeさんのツイート: "Microsoft Edgeのバージョンアップにより主要なブラウザすべてがCSS Gridをサポートするようになった。約20年前からグリッドレイアウトの構想はあったが、現在の仕様の始まりは、IE10に実装されたGrid Layou… https://t.co/erbLdAXv3O"
TOYAMA Naoさんのツイート: "Edge 15 から CSS の text-combine-upright プロパティに対応したそうだけど、(IE 時代からの -ms-text-combine-horizontal 含めて) 1em より幅の狭い文字を 1em まで引き伸ばしちゃうのはなんなの? https://t.co/HNu0Xkfxwc の「4」とか Edge だと引き伸ばされて不格好に見えるんだけど。"
TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/9qlLAYHQ9p"

W3C

Cascading Style Sheets
CSS current work & how to participate
CSS Grid Layout Module Level 1
CSS Text Module Level 4
CSS Text Decoration Module Level 4
CSS Color Module Level 3
Exploring CSS property definitions | W3C Blog
CSS Fonts 3 is a W3C Recommendation | W3C Blog
W3C Strategic Highlights: Strengthening the Core of the Web (CSS) | W3C Blog

CSS Object Model (CSSOM)

CSS Object Model (CSSOM) (日本語訳)
オブジェクト モデルの構築  |  Web  |  Google Developers
CSS Object Model - Web API インターフェイス | MDN
CSSOM
CSS Object Model (CSSOM)
CSSOMとパフォーマンス - Qiita

HTML4・CSS2

CSS 2.1仕様 日本語訳 EPUB版 - 達人出版会
CSS2 の CSS1 からの変更点 - CSS Dencitie
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
(メモ)CSS 2.1の更新版のなまえ - 水底の血

HTML5・CSS

ここ数年のブラウザのデフォルトスタイルシート。縦書きとかHTML5とか。|Web Design KOJIKA17
HTML Standard
HTML Standard — Rendering(日本語訳)

CSS Fonts Module Level 4

謎のCSS総称フォントファミリーfangsongについて - 水底の血
日本語向けフォントスタックの現状 - yuhei blog
CSS Fonts Module Level 4
宋朝体 - Wikipedia

CSS in JS

Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
Reactと一緒に使う時のCSS in JSのライブラリ選定とか所感とか - Qiita
CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室
JSS
All You Need To Know About CSS-in-JS – Hacker Noon
CSSinJS
MicheleBertoli/css-in-js: React: CSS in JS techniques comparison
CSS in JS - Material-UI
SPAにおけるCSSについて、ひとつの解 - エンジニアをリングする
Comparing CSS in JS Libraries

Source Map

SassのデバッグにSource Mapsを使うべきたくさんの理由 - ROCHAS
CSSのSource Map - ウェブログ - Hail2u.net
sourcemap: 圧縮されたJSやCSSと圧縮前のコードの対応関係情報を持ったファイル - general
gulp で、CoffeeScript をコンパイルして concat して SourceMap 出力して SCSS もコンパイルして
sourcemap を使いたい - Qiita
Introduction to JavaScript Source Maps - HTML5 Rocks
多段SourceMapの対応方法とライブラリ | Web Scratch
多段SourceMapとASTの現状について話してきた | Web Scratch

Normalize.css

Normalize.css: Make browsers render all elements more consistently.
[CSS]CSSリセットとは異なる、Normalize.cssの特徴や使い方などの解説 -About normalize.css | コリス
normalize.cssで使用されている各スタイルがどのように機能しているか解説 | コリス
Normalize.cssを使ったコーディングの注意点とリセットCSSとの違い | Cappee Design
なぜリセットではなく Normalize.css を使うのか
Normalize.css v4.0.0 変更点まとめ - Qiita
【CSS】Reset CSSやNormalize.css…。CSSリセットは何を使うべきか比較してみた | unitopi - ユニトピ -
Bootstrap v4で追加されたRebootというスタイルシートを見てみる | フロントエンドBlog | ミツエーリンクス

Sass

Sass - Wikipedia
Sass (stylesheet language) - Wikipedia
爆捗! WordPressテーマ作成ショートカット(3):CSSコーディングで泣かないためのSassの基礎知識と10の利点 (1/3) - @IT
これからSassを始めたい人へ!導入手順をまとめてみた(Dreamweaver対応) | 株式会社LIG
CSSのメタ言語Sass(SCSS)、LESSの完全入門 - Qiita
CSSを超効率化する!SASSの基本と導入方法まとめ | Tech2GO
サンプルソース | Web制作者のためのSassの教科書 - 公式サポートサイト
Sass(SCSS)は難しくないよ!私なりの使い方をご紹介! | Tips Note by TAM
とほほのSass入門

Compass

CSS書くならCompass使った方がいいよ。SASS使ってる人なら特に。

Enduring CSS

さねさねさんのツイート: "僕はCSS全く得意ではないんですが、CSS設計は色々あった結果、Enduring CSSみたいな思考法でBEMしてblockとReact類のcomponentを1対1させるのが、勝ちもしないけど負けもしなくていいのではないかと思うようになって来ました"
さねさねさんのツイート: "BEMで概ね完成系に至っていると思うので、CSS in JSは好きではない"
さねさねさんのツイート: "FLOCSSみたいな分け方してBEMっぽいことしてEnduring CSSですよ!"
さねさねさんのツイート: "勝つためのベストプラクティスよりも負けないためのアンチパターン避け技能ですよ"
Enduring CSSの設計思想 | CodeGrid
連載 | Enduring CSS | HTML5Experts.jp
最強のCSS設計()のヒントになりそうな考え方いろいろ - Qiita
ECSSの概要と考え方のまとめ - Qiita
【CSS】ECSSまとめ
Enduring CSS
Enduring CSS - by Takazudo

cssdb

cssdb
csstools/cssdb: A database of staged CSS features
PostcssとCSS Level 4の現状と今後のCSSプリプロセッサとの付き合い方を考える - Qiita

POSTD

CSS Variables(カスタムプロパティ): なぜ、関心を持つべきか? | プログラミング | POSTD
CSSコーディングテクニック : 詳細度、単位、flexbox、mixin | プログラミング | POSTD
あなたはCSSプロパティ”display”をどのぐらい知っているだろうか? | デザイン | POSTD
CSSになり損ねた言語たち | デザイン | POSTD

Qiita

最低限知っておくべきCSSの基礎 - Qiita
CSS設計の基礎概念 - Qiita
html floatの基本 高さを認識させる - Qiita
QiitaのCSS構成2016 - Qiita
新しめのCSS設計まとめ 〜2016年冬〜 - Qiita
2018年のfont-family指定 - Qiita
CSS界隈は今どうなっているのか、そこで素人な私が思ったこと - Qiita
ページ表示を速くするCSSの記述方法 - Qiita
CSSアーキテクチャについて軽くまとめてみた - Qiita
ぼくの辿り着いた濃いめのtext-shadow - Qiita

Wikipedia

Cascading Style Sheets - Wikipedia

Twitter

その他

Kazuho Okuさんのツイート: "<link rel=preload as=style href=foo.css onload="this.rel='stylesheet'"> で優先度の低いCSSを遅延適用できるのか。なるほどー"
積炭酸さんはTwitterを使っています: "なので例えば10ptと指定しても、画面上のサイズが10pt≒3.5mmで表示されるわけではなく10ptを96dpi換算して13.3ピクセルが適用される。1ピクセルがどのくら
魔法の蒸留水さんのツイート: "ここにサンプルがあるから勉強できそう https://t.co/0X1EVnTUbS #html5jplat"
いいかんじ💯さんのツイート: "もうSafariとChromeはCSS的には全く別物と割り切って書いた方が良い、という事を再確認した夜であった (initial キーワードの解釈が違うとかそんな…)"
Teppei Satoさんのツイート: "またApple独自仕様!IEか!と言われてるけど viewport-fit=coverは元々LG陣営がCSS Round Displayとして標準化を進めてたのね https://t.co/9wbX69p7tM constantは提案中"
CSS Round Display Level 1
鹿野壮@CSSNite・frokan登壇さんのツイート: "Edge 15まではGridの古い仕様のみ対応し、ベンダープレフィックスも必要だった。 16ではChrome等他ブラウザと同じGridの仕様に準拠、プレフィックスも不要に。 Gridが全モダンブラウザで使える時代に。 https://t.co/eNiEk1zVqx #css https://t.co/t3Ao8dkHaV"
Tsukasa #01 [要出典]さんのツイート: "ふむ。等幅フォントの幅を CSS で指定する場合には、ch 単位 ("0" の横幅) が有用そう。"
Tsukasa #01 [要出典]さんのツイート: "ちなみに、全角幅については CSS4 のモジュールでは "水" 字の幅を示す "ic" 単位が追加予定らしい。"
Jen Simmonsさんのツイート: "According to Can I Use (and Stats Counter), global support for CSS Grid (unprefixed) now at 84%. Support for Flexbox at 94%. 84% to 94% #timetolearncssgrid… https://t.co/Kw0UdsVXzA"
Fadisさんのツイート: "画面の端の方が削れていて見えない機器が増えてきた事を受けて、CSSに「この画面四角い?」「見えないかもしれない領域も表示に使って」「見える領域に沿ってコンテンツを配置しろ」「枠線を画面の形に合わせろ」をやるための仕組みが提案されているらしい https://t.co/mBCqyjUrQt"
CSS Round Display Level 1
渡久地 信之さんのツイート: "flex,CSS3から使えるけどバグも多いのでアレ(主にIE11)"
MDN Web Docsさんのツイート: "break-before, break-after, and break-inside are implemented in Firefox 65, and the legacy page-break-* properties now alias to them. For example, see: https://t.co/c5w6HzjP3X"
break-before - CSS: Cascading Style Sheets | MDN
池田 泰延 / JSコードレシピ集を書きましたさんのツイート: "CSSのFlexbox使いがfloatを老害とdisって話題になってますが、CSS Gridの便利さはもっと知られていいと思う。 display: gridだとメディアクエリーすら書かずに4行でレスポンシブ対応できて超便利。… "
Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「Tailwind CSS 本当に最高。今までWebのデザインがまるでできなかったのは、Bootstrap みたいなフレームワークはカスタマイズしようとするとフレームワークの知識が不可欠だけど汎用性なくてやる気出ないし、生でCSS書けるほど要素に詳しくなれない。そのちょうど間。」 / Twitter
Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「程よく生のCSSだけど、あれを変えるのにどの要素だっけ?って考えなくてもクラスから探せばいい。色やサイズも荒い粒度でデフォルト提供されてるので、ちょこちょこいじるのも簡単。」 / Twitter

文字列選択ブロック

tkr@受験なので低浮上さんのツイート: "文字列選択出来ないサイトあったからJSブロックしたのに選択出来ないんだけどどういう仕組みだ"
tkr@受験なので低浮上さんのツイート: "これ入れたら出来た… "
user-select - CSS: カスケーディングスタイルシート | MDN

縦書き

TOYAMA Naoさんのツイート: "Edge で文書全体を縦書き表示にすると、JS で取得するスクロール位置の方向も入れ替わってしまう。pageXOffset プロパティなのに y 軸方向の長さが返ってくるとはいったい……。 https://t.co/obhVdpshIU"
TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/t93Ey12WKj"
TOYAMA Naoさんのツイート: "CSS で縦書きの機運が高まっているそうだけど、ちょっと触るだけでぽろぽろとブラウザ間の挙動の違いが見つかる (実装のバグも、仕様に明記されていない点も)。そういうのを片っ端からブラウザベンダに報告していけば、2 年後くらいにはだいぶ相互運用性を保てるようになっているのでは。"
なかのん&マジックさんのツイート: "だいたい、私の関わった仕様、実装し出すと、これどーすんの?みたいなのを大量に見つけてやりとりすることになってる。実際に複雑なケースを書く、Web開発者さんならなおさら見つけるだろうなと。本当にバグ報告しないと、仕様も実装も前進できないので損するのはWeb開発者さん自身ですよ、と。"
TOYAMA Naoさんのツイート: "CSS での縦書き表示、Edge は IE 時代からの縦書き最古参だけあってかつて検討された挙動 (logical value と physical value の読み替えや orthogonal flows の扱いなど) をいくらか残している、Chrome は描画が乱れることがあるが LayoutNG の導入に従い Canary ではかなり改善、"
TOYAMA Naoさんのツイート: "Firefox は最後発だけあって安定した挙動、あとは principal writing mode を body 要素から取れるようになれば ( https://t.co/6N1lWeRIQq ) ほぼ問題なしではといった印象。"
TOYAMA Naoさんのツイート: "……と言ったけど、Chrome はフォームコントロールの扱いや、orthogonal flows と絶対配置の組み合わせでの位置のずれ、Firefox は flexbox との組み合わせ (Nightly では修正済み) など、穴はいくらでもありそう。"
なかのん&マジックさんのツイート: "そこまでやってる人は皆無だろうけど、ブラウザにバグられてては困るケースは、web platform testを書いて、いずれかのブラウザベンダ経由で登録するってのはかなり有効かつ、みんなが幸せになれる方法。ブラウザの開発時に自動テストで走らせるからね。"

text-decoration-skip

ながしまきょうさんのツイート: "Chrome 57でtext-decoration-skip: ink実装、フラグなしになったけど、まだダメそうw https://t.co/2I8owNAYqc https://t.co/6H5Rk7F1m7"
なかのん&マジックさんのツイート: "Chromeはこれ、改善してからデフォルト有効にしたのかな?"
なかのん&マジックさんのツイート: "Canaryでうちの日記を表示してみたけど、下線の表示、微妙だな……あんまし綺麗に見えない……"
なかのん&マジックさんのツイート: "なんか、下線がちぎれてるっていう印象で綺麗に見えない…… Google Chromeの新しい下線表示 (text-decoration: underline; text-decoration-skip: auto;)。 https://t.co/UDKf7vOEKX"
なかのん&マジックさんのツイート: "Chromeの新しい下線表示のサンプルで見ると綺麗なんだけど、フォントや文字列によっては綺麗には見えないっぽいので、なんか微妙だなぁ。サンプルだけ見ると、Geckoもやらないとって思えるけど(私はやる時間全くとれないけど)。"

@chikoski

chikoskiさんのツイート: "CSSにはwriting-modeという属性があります。これを使うと文字の方向をコントロールして、雑誌のような文字組みができます。雑誌記事を例に、文字組みを解説した@jensimmons による記事が公開されました:https://t.co/8AUMzTe0El"
chikoskiさんのツイート: "属性ではなく、プロパティというのが正しい言葉でした。訂正させていただきます https://t.co/nKtFJOEZFX"
chikoskiさんのツイート: "CSSGridでは列や行、セルに名前をつけて、その名前を使ってレイアウトできるのか。便利 #html5jplat"
chikoskiさんのツイート: "たて、よこが混じる写真リストの実装も簡単にできるのはよいなー #html5jplat"
chikoskiさんのツイート: "GridとFlexboxとの関係について。Flexboxは1次元のレイアウトに関する仕様で、Gridは2次元。 #html5jplat"
chikoskiさんのツイート: "Gridもアニメーションと組み合わせてつかえるのか。おもしろいことできそう感 #html5jplat"
chikoskiさんのツイート: "Gridはほとんどのブラウザでサポートされてるけど、サポートしてるかどうかはCSS feature query使えばできる。 #html5jplat"
Kinuko Yasudaさんのツイート: "Chrome Canary から <body> 以降にロードされる stylesheets はそこまでのレンダリングをブロックしなくなります。critical じゃない CSS はそうするべし thanks to @patmeenan!… https://t.co/S8UdQOv55B"
Yoav Weissさんのツイート: "Yay! @patmeenan landed sane CSS loading behavior in Chrome Canary. Now you can load non-critical CSS in the <body> and it won't block rendering of everything above it!!… https://t.co/i5TXiwTKkD"
Patrick Meenanさんのツイート: "FYI, as of today's canary it is enabled by default and should ship in 69.… "
chikoskiさんのツイート: "ということは、特定のビューコンポーネントにのみ効くスタイルシートは、bodyタグの中でリンクすると全体のレンダリングスピードを上げやすくなる、ということかしら。… "
chikoskiさんのツイート: "むしろページ全体のレイアウト、例えばグリッドレイアウトの場合だと、グリッドの設定とハイレベルな要素のグリッドへの割付に関するcssだけをheadタグの中でリンクするようにした方がいい、ということになったりしないかな。https://t.co/NHt3SHVwcA"
The future of loading CSS - JakeArchibald.com
chikoskiさんのツイート: "そのページで使われているコンポーネントを調べ上げて、それぞれで必要なCSSをまとめ、linkタグを適切に生成するようなツールがあるとうれしかったりするかもなー。link要素のDOMへの追加をアプリの状態遷移に合わせて行いつつ、SWつかってキャッシュしたりするとさらに嬉しいかもしれない。"
chikoskiさんのツイート: "以上、妄想終わり。"

@rockridge07

Rockridgeさんのツイート: "CSSが統一的な仕様を提供したのは2.1までで、それ以降はモジュール化の方向に舵を切ったので、CSS3という呼称はLevel 3モジュールの総称にすぎない。なので将来的に規格としてのCSS4が出ることもない。 / “Why th…” https://t.co/kmwXvTZ0Rl"
Rockridgeさんのツイート: "CSSの-webkit-line-clampプロパティは、複数行でも3点リーダーを聞かせることができるが、現状および今後のWebブラウザでのサポートが望めないため、使わないほうがよいとのこと。 / “CSS の -webkit-…” https://t.co/35EFOz9ZO0"
Rockridgeさんのツイート: "CSS Gridを学ぶのに適したWebサイトなどを列挙している記事。 / “Learn CSS Grid | Jen Simmons” https://t.co/Cs3dfjZQ9B"
Rockridgeさんのツイート: "Webドキュメントにスタイルルールを適用する方法を巡る議論について。CSSは「壊れ」てはおらず、 CSS Object Model(CSSOM)のようにJavaScriptで制御するやり方は、Flashやフレームに対するのと同じ違… https://t.co/Et93e8Gq2o"
Our (css) discussion is broken - otsukare
Rockridgeさんのツイート: "CSS Gridレイアウトのチュートリアル。豊富な使用例が掲載されている。 / “Grid by Example” https://t.co/nOYAQjQGy2"
Grid by Example
Rockridgeさんのツイート: "CSS Gridを段階を追って解説。申し訳程度にFirefoxの開発ツールの利用をアピールしているが、利用していなくても問題なく読み進められるようになっている。 / “CSS Grid PlayGround | Terminol…” https://t.co/QXFvy7Mv4I"
Rockridgeさんのツイート: "ベンダープレフィックスのないborder-imageプロパティを指定するときは、末尾に「fill」のキーワードを指定することが、Web互換性の観点から重要とのこと。 / “How To Fix border-image in y…” https://t.co/5pVSvjV700"

@shibu_jp

渋川よしきさんのツイート: "resizeってのをCSSで指定したら、flexbox使ってCSSだけ使ってリサイズ可能パネル作れるの・・・CSS複雑すぎでは・・・CSSエンジンのプログラマーみんなストレスで禿げてるでしょ。絶対。"
渋川よしきさんのツイート: "うーむ。resize + flexbox、うまくいかんな。専有可能な幅100%をA/Bのパネルでわけあって、AとBの間をドラッグでリサイズできるようにしたいけど、広げちゃうとドラッグできない。"
渋川よしきさんのツイート: "CSS Houdiniでページネーションの実装ができて、それがいろんなepubリーダーで使われるようになって品質が安定化したら世の中平和になる"
渋川よしきさんのツイート: "flexbox使ってヘッダー固定で中部分だけスクロールとかしているページ、そのまま印刷してもページの一部しか出力されないのか。@media printの時は全部伸ばす、みたいなスタイルあてないといかんのかな・・・"

どのCSSプロパティが世の中のWebサイトでよく使われているのか? マイクロソフトがクローラーから得た統計を「Global CSS Property Usage」として公開 - Publickey
CSS usage on the web platform - Microsoft Edge Development
コンポーネントベースのアプリケーションのためのCSSアーキテクチャ

アクセシビリティ

その他

A11yとは - Weblio辞書
WebSchemas/Accessibility 日本語訳
アクセシビリティの祭典/トップページ
WindowsでaViewerを使う | アクセシビリティBlog | ミツエーリンクス
今すぐ使えるアクセシビリティチェックツール13選! | フロントエンドBlog | ミツエーリンクス
少しずつアクセシビリティ意識する - Hatena Developer Blog
アクセシビリティに関する各種リンク - EagleLand
アクセシビリティの専門家の言うことは唯一の正解ではない | 水無月ばけらのえび日記
Webアプリのアクセシビリティを追求せよ!「インクルーシブ」なマークアップを議論しながら学んでみた | HTML5Experts.jp
視覚障碍者プログラマのためのツール | キャリア・働き方 | POSTD
New Site-wide WAVE Tools (WebAIM)|AccSellクリッピング|AccSell
むらログ: 実用レベルに達している日本語音声入力
アクセシビリティ機能はありますか (Acrobat DC)
アクセシビリティを確保するなら、ファインダビリティも大事。国税庁Webサイトリニューアルでリダイレクトなし | Web担当者Forum
今更だけど、ウェブアクセシビリティについてまとめてみた(概要と手法) - Qiita
パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
やさしいウェブのためにすべきこと。英国のウェブアクセシビリティ啓蒙ポスターの日本語版が公開 | UNLEASH
posters/accessibility/dos-donts/posters_ja at master · UKHomeOffice/posters

音声ブラウザ

音声ブラウザ - Google 検索
水無月ばけらさんのツイート: "「メディアクエリや音声向けのCSSがあまり期待通り動いてくれない」というのは、スクリーンリーダーが「音声ブラウザ」ではなく、普通のブラウザの表示結果を読み上げているだけだからですね。… "
どうけ 🍣さんのツイート: "とりあえず発表したことを書きました。懇親会で話したことはまた別途書きます。 #gaad2019_tokyo 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介 @doke|note(ノート) https://t.co/9if35W1gbz"
「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介|note

水底の血

句読点とか小数点とかのメモ - 水底の血
Re: 頭字語に空白文字を挿入することの是非とWebアクセシビリティ - 水底の血
電子書籍版デザイニングWebアクセシビリティの献本をいただいた - 水底の血
色覚異常という言葉に関するメモ - 水底の血
AccSell Podcast Vol.128に出演しました - 水底の血
アクセシビリティの祭典 2018 感想戦のようなもの - 水底の血
アクセシビリティチェッカーA11ycのChrome拡張機能をローカルで作成してみた話 - 水底の血
君はISOの代替テキストのガイダンスを知っているか? - 水底の血
いわく、ハザードマップにウェブアクセシビリティな問題があるとのことだけれども。 - 水底の血
みんなの公共サイト運用ガイドライン(2016年版)で参照する法律の謎 - 水底の血
世界最先端デジタル国家創造宣言・官民データ活用推進基本計画とウェブアクセシビリティ - 水底の血
障害者基本計画(第4次)とアクセシビリティ - 水底の血
都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
障害者の権利委員会 一般的意見第2号を読む - 水底の血
ISOの代替テキストガイダンスの続編(ものすごい雑なメモ) - 水底の血
手話の話を枕に、例の国交省検討会の議事概要から - 水底の血
このごろのWAIC WG4(2020年3月版) - 水底の血

W3C

Accessible Platform Architectures (APA) Working Group | Web Accessibility Initiative (WAI) | W3C
Inaccessibility of CAPTCHA
Research Questions Accessibility Task Force
Video: Web Accessibility Standards and Benefits | W3C Blog
W3C Strategic Highlights: Web for All (Web Accessibility) | W3C Blog

WAI-ARIA

W3C

WAI-ARIA Authoring Practices 1.1 Note helps authors make content accessible | W3C Blog
Digital Publishing WAI-ARIA Module 1.0
Accessible Rich Internet Applications (WAI-ARIA) 1.2
Core Accessibility API Mappings 1.2
WAI-ARIA Authoring Practices 1.1
HTML Accessibility API Mappings 1.0

水底の血

2015年末におけるWAI-ARIAの今をものすごくざっくりと - 水底の血
某プログラミング知識共有サービスっぽい古いエントリーへの注意書きを付けてみた - 水底の血
WAI-ARIA 1.1、DPUB-ARIA 1.0、HTML 5.2ほかが勧告案になっていた - 水底の血
WAI-ARIA 1.2の草案が発行されてた - 水底の血
(メモ)WAI-ARIAのロードマップ - 水底の血

フロントエンドBlog

Webコンテンツの推奨実装方法集「WAI-ARIA Authoring Practices 1.1」 | フロントエンドBlog | ミツエーリンクス
あのWAI-ARIAがIDL属性として実装される!? | フロントエンドBlog | ミツエーリンクス

Accessible Rich Internet Applications (WAI-ARIA) 1.1 日本語訳
Accessible Rich Internet Applications (WAI-ARIA) 1.0 日本語訳
ARIA Techniques | Techniques for WCAG 2.0 日本語訳
WAI-ARIAを活用したフロントエンド実装 | CodeGrid
WAI-ARIA の基礎知識 — Website Usability Info
HTML講座 - WAI-ARIA
WAI-ARIA をマークアップに取り入れたシンプルなタブ - CSS HappyLife
WAI-ARIAを活用したJavaScriptによるDOM操作 // Speaker Deck
WAI-ARIA Authoring Practice Dialog(Modal)のフォーカス管理 - /var/log/sukoyakarizumu
Introduction - webcomponents.org
The Accessibility Object Model (AOM) | aom

WCAG

W3C

WAI-Tools Project Launched | W3C Blog
WCAG 2.1 is a Candidate Recommendation | W3C Blog
Web Content Accessibility Guidelines (WCAG) 2.1
Understanding WCAG 2.1
Techniques for WCAG 2.1
Understanding Success Criterion 2.1.4: Character Key Shortcuts

水底の血

WCAG 2.0ノートの本体更新予告やら日本語訳やら - 水底の血
新しいWCAG 2.0解説書がWAICサイトで公開されました - 水底の血
WCAG 2.0 解説書
WCAG 2.1 FPWDがもうすぐ出そう(提案間にあわない) - 水底の血
2016年版のWCAG 2.0達成方法集がWAICサイトで公開されました - 水底の血
HTMLラジオボタンを大きくする方法について - 水底の血
Japan Accessibility Conferenceに登壇します - 水底の血
WCAG 2.0解説書の更新版と、How to meet WCAG 2.0の日本語訳が公開されました - 水底の血
PDF版 JIS X 8341-3:2016, WCAG 2.0早見表/逆引き表作成裏話 (Web Accessibility Advent Calendar 2017) (有限会社時代工房)|AccSellクリッピング|AccSell
WCAG 2.0クイックリファレンスが更新されました - 水底の血
WCAG 2.0 クイックリファレンス (WAIC)|AccSellクリッピング|AccSell
このごろのWAIC WG4の活動について - 水底の血
WCAG 2.0関連文書レビューのご案内(6/14〆) - 水底の血
WAICサイトのWCAG 2.0関連文書が更新と、WCAG 2.1訳の話題 - 水底の血
WCAG 2.1の「次」について - 水底の血
WCAG 2.2の策定作業が始まっていた - 水底の血

なかのんクエストさんのツイート: "GeckoはネイティブのTheme API使ってレンダリングするんで、サイズ固定なWinやCocoaだとscale以外はどうしようもない気が。 / HTMLラジオボタンを大きくする方法について - 水底の血 https://t.co/3AAIc3dtGj"
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その1 | フロントエンドBlog | ミツエーリンクス
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その2 | フロントエンドBlog | ミツエーリンクス
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その3 | フロントエンドBlog | ミツエーリンクス
WCAG 2.0 達成方法集
柴田宣史さんのツイート: "Twitterのキーボードショットカット。必ずしも視覚障害者でなくっても、ずいぶん便利だと思います。… "
うおさんのツイート: "誤爆する話、ちょっと前に見て気になっていたところです。 WCAG2.1でみんな幸せになれる感じでしょうか。 https://t.co/3ACIT6JRry… "
柴田宣史さんのツイート: "なるほど。 2.1.4: Character Key Shortcuts (Level A) If a keyboard shortcut is implemented in content using only letter, punctuation, number, or symbol characters, then at least one of the following is true: - Turn off - Remap - Active only on focus… https://t.co/3hJ0s2eb3G"
もんどさんのツイート: "なるほど。 2.1.4 文字キーのショートカット (レベル A) コンテンツに文字 (大文字と小文字を含む)、句読点、数字、又は記号のみを使用したキーボードショートカットが実装されている場合、少なくとも次のいずれかを満たしている: 解除 再割り当て フォーカス中にのみ有効化 https://t.co/vUE60Z8t6f… https://t.co/uaIYg5cJT3"
Web Content Accessibility Guidelines (WCAG) 2.1 (日本語訳)

JIS

JIS X 8341-3:2016の公示 | コラム | ミツエーリンクス
JIS X 8341-3が改正・公示された - 水底の血
JIS X 8341-3:2016は誰が作ったのか - 水底の血
chikoskiさんのツイート: "JISにもWeb Accessibilityに対するガイドラインがあります。JIS X 8341-3 https://t.co/VPlNH7J87W WCAG2.0とほぼ内容は同一ですが… #WeJS"
JIS X 8341-3:2016 解説
chikoskiさんのツイート: "はい… https://t.co/nVuf54CTjB"

Mozilla

アクセシビリティサービスインジケーターとは? | Firefox ヘルプ
タブバー上の人型アイコンを消す(追記あり) - Mozilla Flux
Rockridgeさんのツイート: "Fx59:TBNotifier.exeがアクセシビリティサービスとしてFirefoxにアクセスできないようブロックした。Ask Toolbarの一部とのこと。 / “1421018 - Block TBNotifier.exe …” https://t.co/PwKO5f1cpI"
1421018 - Block TBNotifier.exe from accessing accessible services
Makoto Kato ︎︎さんのツイート: "アクセシビリティが有効になってるとChromiumのバグを開く際にクラッシュする話に今日何度も引っかかってる https://t.co/Nv5zZ2fxxI"
アクセシビリティのためのメディアクエリの使用 - CSS: カスケーディングスタイルシート | MDN

MS

アクセシビリティ: Microsoft Edge と Windows 10 でさらに多くの人が Web を利用できるように | Microsoft Edge Japan
EdgeHTML15 のアクセシビリティの向上 | Microsoft Edge Japan
Windows 10 October 2018 Update のアクセシビリティについて - Windows Blog for JapanWindows Blog for Japan
Masaru Iritaniさんのツイート: "Windows アプリケーションとウェブページのアクセシビリティ対応を簡単に確認できるツールが公開されました。オープンソースです。… "
Microsoft Developerさんのツイート: "#A11y is important to us and we want to ensure it is easy for you to foster inclusion in your own apps. Announcing Accessibility Insights for Windows and Accessibility Insights for Web: https://t.co/JeIFc9gKJl… https://t.co/c2yGGgTziY"
Microsoft open sources Accessibility Insights - Open Source blog
Accessibility Insights
Microsoft/accessibility-insights-web: Accessibility Insights for Web

20??年のWebアクセシビリティ

2014年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2015年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2016年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2017年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2018年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社

infoQ

Visual Studio 2017 15.3 がリリース。 Adds .NET Core 2 がサポートされた。
Appleはどのようにして手書きの漢字をリアルタイム認識しているか
MicrosoftはAzure Bot ServiceとLanguage Understandingの一般提供を発表した
HTMLコントロールの残されたアクセシビリティの問題

スライド

アクセシビリティとこれからのWebデザイン
Japan Accessibility Conference vol.1 アクセシビリティ・ガイドラインの歩き方(初心者編) - Google スライド
創業期の医療スタートアップに立ちはだかった3つの壁 / Three challenges of medical startup - Speaker Deck

Twitter

Rockridgeさんのツイート: "Fx51:リーダーモードのNarrate(音声読み上げ機能)で、読み上げの速度を5%刻みで細かく調整できるようになった。これまでは25%刻みだった。 / “1316828 – Allow finer control over n…” https://t.co/Hg5ZaJFCQB"
犬洋さんのツイート: "色盲の人にも分かりやすい信号機これすごいなぁ https://t.co/z1nGgdCKXo"
Rockridgeさんのツイート: "Fx59:アクセシビリティサービスが、テキスト/ハイパーリンク/属性の情報を一挙に取得できるようになった。プロセス間通信が減少するのでパフォーマンスの向上につながる。 / “1419362 - [e10s a11y] Handl…” https://t.co/522i1Qx39E"
もんどさんのツイート: "https://t.co/ENVZw1R9XK この辺からコーポレートサイトだけでなく、ne¥.jpもどうにかしてと言うとか。… "
ryomatsuさんのツイート: "アクセシビリティ… "
JIS X 8341-3:2016に基づく試験結果表示(ウェブページ単位:2016年3月31日公開) | ウェブアクセシビリティ方針 | サイトご利用にあたって | NTTドコモ
柴田宣史さんのツイート: "また、サイトに埋め込むGoogleのサイト内検索のキーワードの自動補完も、スクリーリーダだと気がつかないうちに補完されているケース(自分はキーワードを入力し終わったので、つぎのユーザインタフェースコンポーネントに移動するためにTABキーを押す)があるので、なかなか悩ましい。"
なかのん&マジックさんのツイート: "個人的にはTabキーのイベントはWebアプリで発火すべきではなかったと思ってます。今更なのでそれはできないけど。"
なかのん&マジックさんのツイート: "ブラウザのa11y上の問題で、どのブラウザも一部のキーコンビネーションはWebアプリで発火しないようになっているものの、やはり「バグ報告」はやってきますね、いつまでも。"
なかのん&マジックさんのツイート: "Webアプリは読み込んだだけで利用者の同意なく動き出すものなので、ネイティブアプリ同様の何でもアリ感はさすがに認められないわけです。"
ゆうてん🥶さんのツイート: "del要素のアクセシビリティ対応例 https://t.co/vNTt5Y7NtF 疑似要素を読み上げさせるのトリッキーだな"
<del>: 削除文字列要素 - HTML: HyperText Markup Language | MDN
未識魚 /中川譲@3/21~キャラクターで描く千住展2019さんのツイート: "普通の人でもディスレクシア(読字障害)の気分が味わえそうな事例を作ってみた。 左:UDデジタル教科書体、右:VDRロゴJrブラック (芥川龍之介「愛読書の印象」より) 右でも確かに1文字ずつ追えば「読める」けどものすごく辛い。… "

その他

Redshift
jonls/redshift: Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
EIZO、モニター色校正のための最新認証を世界で初めて取得 - デジカメ Watch
カラーマネジメントモニター 基本的なキャリブレーション作業の手順の一例 | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
ディスプレイキャリブレーション 色温度の決め方 5000Kか6500Kか | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
Color Management Handbook ver.5
【カラマネ極意17】印刷の標準規格がなぜ求められるのか - JAGAT
デジタル写真の必修科目・カラーマネージメント講座 連載 第1回 | GANREF
カラーマネジメント | 能登印刷株式会社 – 石川県金沢市・白山市の総合印刷・出版|商業印刷・美術印刷・カタログ印刷・商業出版・自費出版・オンデマンド印刷・Webサイト制作
カラーマネジメントの解説
トラブルを未然に防ぐ!カラー設定10選 | psgips
ソフトウェア・キャリブレーションとハードウェア・キャリブレーションの違い | EIZO株式会社
パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
新ドライバでGeForceもOpenGLの10億色出力対応に - PC Watch
Adobeのオープンソースのアダプティブでアクセス可能なカラーパレットジェネレーター

Google ブックス

背景イラストメイキング講座 - 草壁 - Google ブックス
カラーマネジメント技術: 拡張色空間とカラーアピアランス - Google ブックス

blog

まだCMYKで消耗してるの?〜大幅な色補正をCMYKで行ってはいけない理由〜 – やもめも
コンポジターに必要なアルファチャンネルの知識(前編) - コンポジゴク
コンポジターに必要なアルファチャンネルの知識(後編) - コンポジゴク
続・Webブラウザのカラーマネジメント対応まとめ : やんま まのblog(仮)
機械の目と人間の目の類似点|Rui Ueyama|note
日記 (2017 年 10 月中旬)
第27回:カラーマネジメントの疑問 色はどこで管理されてるの? | PERCH長尾の知っ得!デザインビズ必読ポイント! | AREA JAPAN
YUVをちゃんと理解してからRGBにコンバートしましょうね : KLabGames Tech Blog
YCbCr変換による色数の減少 - toruのブログ
RGB等色関数で現れる負の値の正体 | tech - 氾濫原
色を科学する その① 感覚なのに科学できる理由|[色彩工学/カラーサイエンス]YoshiColor|note
[色彩工学/カラーサイエンス]YoshiColorの月別一覧|note
色を科学する その⑦ XYZのトリセツ|[色彩工学/カラーサイエンス]YoshiColor|note

GIGAZINE

Googleが提唱する「マテリアルデザイン」の普及をフォローするカラーツールが登場 - GIGAZINE
なぜ画像に「ぼかし」を入れると色の境界部分がつぶれてしまうのか? - GIGAZINE
色覚異常の人がより多くの色を見分けられるようになるコンタクトレンズが開発される - GIGAZINE

POSTD

色弱のユーザーにもやさしいランディングページのデザイン | デザイン | POSTD
色:ヘキサコードから眼球まで – Part 1. | POSTD
色:ヘキサコードから眼球まで – Part 2. | POSTD
色:ヘキサコードから眼球まで – Part 3. | POSTD

Qiita

XYZ色空間に迫る(1) - Qiita
XYZ色空間に迫る(2) - Qiita
プログラマが知っているとよい色使い(安全色) - Qiita

Wikipedia

ICCプロファイル - Wikipedia
ICC profile - Wikipedia, the free encyclopedia
YUV - Wikipedia

Twitter

histric-1

Rockridgeさんのツイート: "BlinkにCanvasでのカラーマネージメント機能が実装される見込み。HDRディスプレイの普及を踏まえたもので、WebGLとの併用が想定されている。Khronosで議論がされてきたといい、将来的にGeckoでもサポートされそうだ。 https://t.co/3mKPtzn2x5"
Rockridgeさんのツイート: "Fx54:プリマルチプライ処理とアンプリマルチプライ処理を高速化。参照:https://t.co/ARm3QakXMg / “738343 - Use a central library for pixel format con…” https://t.co/KP6tDbkVFC"
738343 - Use a central library for pixel format conversion and alpha-(un)premultiplication
Rockridgeさんのツイート: "主要ブラウザのカラーマネジメント対応状況が詳細にまとめられた記事。Firefox 8でLUTをサポートしたというのはこのバグだろう。参照:https://t.co/xHinFtLlih / “続・Webブラウザのカラーマネジメン…” https://t.co/eSTzYqe8mg"
Rockridgeさんのツイート: "Fx57:DCI-P3ベースの広色域プロファイルをサポート。近年のMac環境で色の表示に違いが出るようだ。 / “1250461 - ICC profile (Late 2015 iMac with P3 Retina disp…” https://t.co/mpx3lAgVHF"
渋川よしきさんのツイート: "今日は、会社の若者に @m_seki さんから教わった秘伝の技を教えた。とりあえずデータ種類ごとにカラフルにしたいときに、カテゴリ名のハッシュ値を計算して、それを元に色が決まるようにすればいいよ、というやつ。HLS色空間使えば、明るさのばらつきも抑えられてお得。"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚異常な人に一部の機能が使えない家電製品ばかりになり、その状況が年々悪化しているということは、普通に色覚バリアフリーな家電製品を作ってそれを宣伝するだけで、日本国内だけでいきなり300万人をつかめるおいしい状況でもあるはずなのに、家電メーカーは何をやっているんだろう?"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚バリアフリーが当たり前で売りにはならない文具業界や什器業界よりむちゃくちゃおいしい状況なのに。"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "半世紀前の世界には色覚異常な人に一部の機能が使えない家電は存在しなくて、色覚異常な人に一部の機能が使えない文具で満ちていたのに、なんで逆転したのだろう?"
Rockridgeさんのツイート: "Firefox開発者いわく、カラーマネージメント機能の強化は開発の優先順位が低い。 / “Can we focus more on color management support?” https://t.co/i9XTuh5JNY"
Fadisさんのツイート: "HTML5のCanvasにfloat16の線形色空間で描けるようにしよう、という提案がなされている。色を正確に再現する必要があるコンテンツの表示や、物理的に正しい色の合成、ハイダイナミックレンジディスプレイの活用等に利用できる https://t.co/4iKE2mUNkd"
canvas-color-space/CanvasColorSpaceProposal.md at master · WICG/canvas-color-space
Fadisさんのツイート: "Web屋さんがついに色はRGB各8bitでは全く足りない事に気付いてしまったらしい"
Fadisさんのツイート: "このproposalはクロノスのWebGLワーキンググループでApple Google Microsoft Mozilla Nvidia他のエンジニアを交えて議論された、って書かれてて「なるほど」ってなった https://t.co/4iKE2mUNkd"
Fadisさんのツイート: "WebGLからHDRディスプレイに対してHDRレンダリング結果を吐くための下準備か"
👻 道化師 🃏さんのツイート: "自分用に作ったモノなんですが、色々なカラーテーブルを作成できるしたツールを作ってみました。各パラメーターは弄る度に URL も更新されるので、その URL をコピーしておけばいつでも同じカラーテーブルを参照できます。配色の参考やディスプレイの色味比較などにどうぞ。 https://t.co/OYONZG9JcA… https://t.co/0quJ8onRdo"
phi ratio coloring
👻 道化師 🃏さんのツイート: "https://t.co/PHf9AMzL3Q このツールとしての肝は hue step を phi ratio にした時のカラーリングで、 saturation, lightness の場合とは適用のされ方が大きく異なり、これは植物の葉(枝)の生え方を上から見たのと同じで、同じ場所(色)が出にくく、いい感じに離れた場所(色)になってくれます。"
👻 道化師 🃏さんのツイート: "https://t.co/dgfKQpNF9z lightness を人間の眼で感じる明るさ(luma)で補正(align)する機能を付けては見たものの有効に機能する範囲がかなり厳しいよなぁ。… "
Fadisさんのツイート: "緑を#00FF00と書くとまず人間が識別できる輝度の幅に対して256階調が荒過ぎる問題に直面し、次に人間が見ることが出来る色の範囲に対してsRGB色空間が狭過ぎる問題に直面し、とどめに高速で遠ざかる#00FF00が赤方偏移して黄色っぽくなる問題に直面する"
狐代@冬コミ全日(お燐/玉藻)さんのツイート: "ディスプレイの表示できる色域の問題も… "
Fadisさんのツイート: "広い色空間と高い輝度の表示が出来るディスプレイも少しづつ出てきてはいるものの、信号として送れる色に対してディスプレイが正しく表示出来る範囲がマチマチで、この辺活かしてリニア空間でのレンダリング結果を出来るだけ潰さずに表示したいゲーム屋さんは工夫を求められる状況になってるっぽい… https://t.co/wYFERdcAKm"
OS自作したい。技術書典6・う38さんのツイート: "CMYKだと再現できない色があるんだなあ,というのが体感的に分かった."
nikqさんのツイート: "これ色域マッピングとかRRTとかの効果をアーティストさんが体感で再現してるんだなあ。すごいなあ… "
のうめん🏗️👺デザイン産業バーチャル機械さんのツイート: "さっきいつきちゃんところで話してたシャドウとハイライトの色ずらしの件は図示するとこんな感じですぞ 基準色からただ明るく、ただ暗くしただけの色を乗せるより、少し色相をズラしてあげることでより鮮やかな色変化になるんよ… "

FadisさんはTwitterを使っています: 「人間が目を通して知覚する明るさと実際の光のエネルギーは非線形の関係にある。8bitで表現された256色段階のグレースケールが線形に変化して見える時、ピクセルの値と光のエネルギーの関係は線形ではない。近代的な3Dグラフィクスは物理モデルから光のエネルギーを求めるため、最後に変換が必要になる」 / Twitter
FadisさんはTwitterを使っています: 「RGBAのAの厳密な定義が無くて3Dプリンタで透明を扱う際に機器間で互換がとれないから、観測可能な物理量に基づくAの厳密な定義を作ったという論文。同じ材料でも大きさを変えると透過する光の量は変わるが、Aはサイズによらず同じ値が同じ見た目になるように定義される https://t.co/lXxoabovRx」 / Twitter
[1710.00546] Redefining A in RGBA: Towards a Standard for Graphical 3D Printing
FadisさんはTwitterを使っています 「HDRで吐くと色が薄くなって見えるっていうのは「私はゲーム開発者ですがコンテンツを正しい色で見て作っていません」と言っているのと同義なんだよ」 / Twitter
FadisさんはTwitterを使っています 「DirectXがRGBA各4bitで1ピクセル16bitのサーフェスという物をサポートしていて、Vulkanでも同等の物があったらVulkan上にDirectXを実装するのが捗るってことで、そういうVkFormatを追加する拡張が出来たらしいんだけど、拡張の名前VK_EXT_4444_formatsて… https://t.co/kAQAkoe2ZU」 / Twitter
Vulkan 1.2.149 Released With Another Extension For Helping The Likes Of DXVK - Phoronix
7594591200220899443さんはTwitterを使っています 「著者の誠実な態度は買うが、本来こういう事をちゃんとちゃんとしていく事こそ出版社の仕事である。出版社が仕事しないならわざわざ商業出版する意義に乏しい。」 / Twitter
解答略さんはTwitterを使っています 「拙著「作ろう!CPU」について、重刷が決定したようです。 あちこちから指摘をいただいておりますが、私の無知のせいで、本書の第1刷は色弱の方に全く読めないものを出版してしまいました。本当に心よりお詫び申し上げます。私としては色を置換して第2刷にしたいと考えて、現在出版社と交渉しています」 / Twitter
解答略さんはTwitterを使っています 「ペアの配色を、こんな感じに変更しようと考えています。今回の版では間に合わないかもしれませんが、いずれ必ず変更しますので、色弱の方はもうしばらく購入をお待ち下さい。 https://t.co/39cXiME47K」 / Twitter
きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「@kaitou_ryaku そもそも色分けで線の違いを表現するというのがあまりよくないです。色よりも、形で表現したほうがいいと思います。この場合であれば白抜きにするか点線にするかなどです。 もしくは明暗差で。」 / Twitter
ǝunsʇo ıɯnɟɐsɐɯさんはTwitterを使っています 「「色覚異常の人に合わせて赤と緑で判別してる図表を変えないといけないの? めんどくさい」と思った人。 多分「日本語に合わせて多言語化対応しないといけないの? 英語のままでいいじゃん。めんどくさい」と虐げられた悔しい体験がほとんどない幸せなIT生活が若い頃から当たり前だった世代では?」 / Twitter
ふれーむさんはTwitterを使っています 「@otsune っていうか別に色弱者のユニバーサルカラーデザインだけでもないですよね。あの領域って。みんな老いたらレンズ体濁るし。」 / Twitter
FadisさんはTwitterを使っています 「glTF、構造自体は近代的なGPUで読みやすい良い3Dシーンのフォーマットなんだけど、「色は全てsRGB色空間の値だ。画像ファイルに色空間の指定があっても無視しろ」のところで、ウッってなるゲーム屋さん多そう」 / Twitter
FadisさんはTwitterを使っています 「色、「FF0000が赤です」みたいなのWeb屋の色の理解を見ると「色、なんて簡単なんだ」ってなるし、CIE XYZ色空間の少しでも大きな範囲を埋める為にここ10年くらいディスプレイ屋がやってる努力を見ると「色、なんて難しいんだ」ってなる」 / Twitter
FadisさんはTwitterを使っています 「すごく見たくない色の表し方になるけど、Webにwide color gamutがやってきたとき、既存のスタイルシートの意味を壊さずに拡張するとなると本当にこういうアレになるのかもしれない…」 / Twitter
nikqさんはTwitterを使っています 「scRGBに拡張して#-FE+FF-4Cみたいな表記を許せばXYZすべて表記できるようになる…!」 / Twitter
nikqさんはTwitterを使っています 「ただこれだと高輝度が表現できなくてさみしい」 / Twitter

Little CMS – Great color at small footprint
Color Tool - Material Design

MathML

KaTeX

KaTeX – The fastest math typesetting library for the web
Khan/KaTeX: Fast math typesetting for the web.
mizchiの叫び「MathJaxはやめろ」
信頼できる情報筋によるとさんのツイート: "mathjax というやつは世の中に現存するJSの中でも最も行儀が悪い振る舞いをするものの一つです。気軽に導入していいものではない。というか積極的に避けねばならない。あいつはXML的木構造を破壊しながら自身の特殊構文に継ぎ直してる。"
Ryou Ezoeさんのツイート: "例の@mizchi の連投、本人はKaTeX使ったことがないだろ。KaTeXはCJK文字への対応が悲惨すぎて使い物にならない。あとエラー通知に例外を使うし完全に無効化できない。"
Ryou Ezoeさんのツイート: "KaTeXは自分だけが数式を記述する限定的な用途で使うもの。大勢のどこの馬の骨かもわからないユーザーが数式を記述する場合にKaTeXなど実績の違いで到底使い物にならない。"
Ryou Ezoeさんのツイート: "ちなみにユーザーに自由にtexを書かせると何が起きるかと言うと、お絵描きしだすし日本語も当然使い出す。KaTexでは無理。"
Ryou Ezoeさんのツイート: "私は$力=質量 \times 加速度$とか書きたいし$\text{力}=\text{質量} \times \text{加速度}$とは書きたくない。だいいちこれでは意味が違ってしまう。"
本の虫: KaTeXを使ってみた感想
七誌さんはTwitterを使っています: 「KaTeXですが、REPL云々は関係なくて、単にHTMLの先頭に &lt;!DOCTYPE html&gt; を書くだけでいけました。 KaTeXはコードがシンプルで良いですね。 MathJaxでは動的生成したTeXでunderbraceに日本語を使うと "t is null" という謎のTypeErrorになりましたが、KaTeXではそういう問題はありません。 https://t.co/rS39gQW43y」 / Twitter

MathJax

AsciiMath

piqcyさんのツイート: "LaTeXより簡単に数式が書ける記法のAsciiMathが登場。MathJaxと連携してレンダリングを行う。 プログラムで数式を書く感じでかける。行列が[[a,b],[c,d]]みたいな感じで書けるのはよい。 https://t.co/MdDncvRLRc"
hardmaruさんのツイート: "AsciiMath is a simple markup language for math. Easier to use than LaTeX. https://t.co/T2ONWTDxPY https://t.co/VjuJGfn9ol"
AsciiMath
asciimath/asciimathml: A new home for asciimathml

七誌さんのツイート: "MathJaxで表示させると右クリックでMathMLとTeXの両方のコードが表示できるので、MathJaxに全部任せるのが無難っぽい。まあ、変換だけが目的ではないので、ある程度は中身を知っておかないといけなかったから、自作は無駄ではなかったんだけど。"
七誌さんのツイート: "少し前までMathJaxとWYSIWYG入力の折り合いをどう付けるのか困っていた。Idrooの数式入力はかなり頑張っているけど、同じようなものを再実装するのは回り道過ぎる。しかし最近はプログラムで数式を生成してMathJaxで表示するだけで、当面の用は足りる気がして来た。"
七誌さんのツイート: "数式処理とコンパイラはASTをこねくり回すのが似ているので、どうにかうまく両立させられないものかと思っている。"
LaTeX入門 - TeX Wiki
MathJax
MathJaxによる数式表示
MathJaxの使い方
MathJax - Wikipedia
Easy Copy MathJax
黒木玄 Gen Kurokiさんのツイート: "#MathJax MathJaxのCDNサーバーが4月30日に止まるらしい! 一つの対処法はhttps://t.co/T9iVtP1wEMの代わりにhttps://t.co/qtQEQneRDsを使うように変更すること。詳しくは→ https://t.co/2yV0j7zSGs"
MathJax CDN shutting down on April 30, 2017
cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
蘇摩さんのツイート: "slackで数式表示するための拡張,math-with-slackを入れてみたのですが,かなり良いです. https://t.co/jEH8Fk0L0G https://t.co/UVDVbEuKYm"
fsavje/math-with-slack: Rendered math (MathJax) with Slack's desktop client

Mathematical Markup Language - Wikipedia
MathML - Wikipedia, the free encyclopedia
MathML 日本語情報
W3C Math Home
MathML | MDN
MathML 要素リファレンス - MathML | MDN
MathML 耐久テスト - Mozilla | MDN
MathMLマニュアル
WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。 | 電子書籍、電子出版のCAS-UBブログ
Rockridgeさんのツイート: "次期Safari 10.0ではMathMLの表示品質を改善したほか、数式にハイパーリンクを埋め込めるようになった。 / “Improvements in MathML Rendering | WebKit” https://t.co/YcLOYp5YxX"
Rockridgeさんのツイート: "Fx51:mathml.disabledの設定をtrueにすることで、MathMLを無効化できる。 / “1173199 – Add a pref to allow disabling MathML (Tor 13548)” https://t.co/yHRWPH4614"
「One Note for Windows 10」で文字列を数式に変換可能に - PC Watch
Rockridgeさんのツイート: "Chromeの次世代レイアウトエンジンでは、MathMLのサポートが復活するようだ。 / “Review of Igalia's Web Platform activities (H1 2017) - Frédéric Wang” https://t.co/LZvEj1sAVA"
MathMLの未来を考える―(1)現状の整理 | 電子書籍、電子出版のCAS-UBブログ
MathMLの未来を考える―(2)『MathML数式組版入門』の大学図書館への寄贈活動について | 電子書籍、電子出版のCAS-UBブログ
ここ最近のMathMLについてのメモ - 水底の血
Ziphil/ZenithalMathWeb: Web rendering engine for mathematical formulae
KindleでMathMLの現実

nuklear

Desktop Engine

Arcan | IRC: #arcan @ chat.freenode.net
letoram/arcan: Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"
Home · letoram/arcan Wiki

vurtun/nuklear: A single-header ANSI C gui library
P/ECE研究室
P/ECE研究室さんのツイート: "P/ECEで、オープンソースのGUIライブラリ「Nuklear」を使ってみました。 https://t.co/mUz8lBmah9 Nuklearは、少しマイナーみたい(?)ですが、とても使いやすいと思います。気に入りました。 https://t.co/uf1L6thBjn https://t.co/Bm8yINtVRX"
SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
LCUI - Build simple desktop apps with C, XML and CSS
lc-soft/LCUI: A simple GUI library, it is written in C, support XML and CSS.
xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
LittlevGL - free embedded graphics library
littlevgl/lvgl: Embedded graphics library with transparency, animations and anti-aliasing with NO Double buffering.
andlabs/libui: Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
渋川よしきさんのツイート: "libuiが沈黙してしまったの悲しい"
渋川よしきさんのツイート: "libui、リスト対応の方針決めました!で時間が止まっているけど、ガリガリ使える感じなのか・・・"
OpenGL な UI を作るライブラリ一覧 - Qiita
OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
ocornut/imgui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
ocornut/imgui_club: Nice things to use along with dear imgui
本の虫: KMSCON
本の虫: KMSCONがだいぶ実用的になってきたようだ
りやさんさんのツイート: "Nuklear、本質的には内部のコンテキストから頂点、インデックスリストと、テキストの場合はアトラステクスチャのUVを吐き出すだけのシステムなので、めっちゃ取り回し良くて軽量。なんで日本で流行ってないんだ?"
OpenSiv3D+nuklearでGUIを実現する - Qiita
DXライブラリ+nuklearでGUIを実現する - Qiita
VisualStudioとC++だけでAndroidアプリをつくる - NuklearによるGUIの表示 - √g

ncurses

Wikipedia

ncurses - Wikipedia
ncurses - Wikipedia
curses - Wikipedia
curses (programming library) - Wikipedia
端末 - Wikipedia
Computer terminal - Wikipedia
Terminfo - Wikipedia
Terminfo - Wikipedia
Termcap - Wikipedia
Termcap - Wikipedia

ncurses関連manエントリ/関数一覧 - Qiita
ncurses 3x 非公式日本語訳
ncurses入門してみた – Linux Training X
ソフトウェアインストールメモ
curses
ncurses(3) manページ
ncurses(3)
ncurses(3) - Linux man page
Curses Programming with Python — Python 3.7.0 documentation
ncurses
Man page of curs_window
Ncurses programming guide
Linux Manpages Online - man.cx manual pages
NCURSESライブラリ - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
NCURSES雑多な自分メモ01 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN

Desktop Entry Specification

Desktop Entry Specification
本の虫: Desktop Entry Specification

HiDPI

HiDPI - ArchWiki
「Ubuntu 14.04 LTS」レビュー--高解像度化対応やLinuxカーネル3.13採用など - CNET Japan
ほげめも: Linux HDMI で WQHD まとめ
won't fix: Gnome 3.10 / GTK3.10 でのHiDPI
EIZOの27インチ4K液晶ディスプレイEV2785-BK購入後のレビュー USB Type Cケーブル1本で映像出力・給電に対応 | ITハンドブック
研究千年牛酪情報保管庫菩薩さんのツイート: "HidpiマルチモニタはWindowsでもおもしろ挙動するしそういうものなのかなという思いがある…"
まさみさんは語りたいさんのツイート: "マルチモニタ時のHidpiは2年以上前から苦しめられていて、常時2画面を諦めた主な理由だったりする。"
Takashi Kawasakiさんのツイート: "僕はWindowsで4K液晶とかを150%設定で使ってるけど、古いアプリのスケーリングは、「システム(拡張)」という謎テクノロジーで「割と」綺麗になるのであんまり困ってない。 というか、ほとんどの古いアプリは既に捨てた。… "
タスクマ ネージャーでアプリのDPI対応を確認可能 ~「Windows 10 19H1」Build 18252 - 窓の杜
次期Windows 10のタスクマネージャーでDPIスケーリング対応アプリが確認可能に - PC Watch
なかのん&マジックさんのツイート: "予想したけど、それ以上に200%表示はフォントがWindowsでも綺麗だ。これが標準的な環境になっていかなあかんな。"
なかのん&マジックさんのツイート: "これ、HiDPI対応のアプリで、200%表示だと、MS Pゴシック等々もベクターフォントとしてのレンダリングになるのか?"
なかのん&マジックさんのツイート: "そうか、200%表示のWindowsって見た目の印象がmacOSと変わらんのか。"
なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?" (1)
なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?"
Masaru Iritaniさんのツイート: "ビルド 18298 でポインターのサイズを最大にすると面白いぐらい大きくなりますね。これなら 4K ディスプレイでもすぐに見つけられます。スクリーンショットでお見せしたいところですが、どうやらポインターは映り込まない模様です。 #WindowsInsiders"
渋川よしきさんのツイート: "HiDPIがまともにサポートされていて(外部ディスプレイと内部ディスプレイで個別にDPI設定できる)、ピクセル単位スクロールができるタッチパネルがきちんと動くLinux機が出たらメイン機にしたいとは思っているけど、すこーしだけ足りない。"
Bug-org 1557587 When I open 2 or more windows in different DPI monitors, window size in non-primary monitors are not restored correctly - WebStudio

UI デザイン

水原滝さんのツイート: "「SwitchのUIにははい、いいえがない」っていうのは言われて初めて気づいたな。「はいかいいえかを判断するには文章を読まなければならない」から、「ボタンを読めば本文を読まなくてもいい」って発想なのか。 https://t.co/8RKAEJpAYi… https://t.co/DQwjFiop6d"
【CEDEC 2018】明快で軽快! Nintendo SwitchのUIを触るだけで楽しい理由 - GAME Watch
「OKボタンは右か左か」問題から始まったゲーム「Factorio」のGUIデザインの工夫 - GIGAZINE
メールアドレスの確認フィールドをなくすべき理由 | UX MILK
IIMURA Takujiさんのツイート: "例えばこんな感じ。 ・見えない物は気づかれないので使わない ・目的の機能へ1タップで行ける(機能が見えている)ようにする ・ファイルやフォルダの概念は理解されないので使わない ・動作を変更する設定等は解ってる奴しか弄らないので標準設定でも問題ないように ・ユーザID等の文字列を覚えさせない"
「Amazonのプライムビデオが難しい」というおかんの言い分を聴いてみた|Tsutomu Sogitani|note
スマホUI考(番外編) UIやUXを劇的に改善する、『ビッグオー駆動型開発』とは | fladdict
Manabu Uenoさんのツイート: "一般的なフォームで、名前や電話番号の入力欄の分割をやめるよう指摘すると、DBの都合でできないと言われることがある。なぜDBのフィールドを分けるのか聞くと、「できるだけ細かく情報を取った方がいい気がするから」という運営者の曖昧な管理欲しかなく、入力コストとのバランスが考慮されていない。… https://t.co/oJixrHiUi3"
Manabu Uenoさんのツイート: "例えば電話番号の入力操作について分割式と単一式を GOMS-KLM で試算すると、分割式は約70%も多く時間がかかることがわかる。また、入力欄を必要以上に分割することはUIの国際化でもよく問題になる。名前、電話番号、住所などは文化圏によって書式上の区切りの数や順序が異なるから。… https://t.co/FXaegHiByQ"
Manabu Uenoさんのツイート: "もちろん書式を分割することに正当性がある場合もあるだろう。しかし多くの場合、運営者が正当だと判断する根拠はユーザーが素朴に期待するサービス内容とは関係がない。もし本当に必要性があり、それがユーザーのメンタルモデルと乖離しているようなら、運営者はそれを真摯に伝えなければならない。"
Manabu Uenoさんのツイート: "運営者は、どんな入力もユーザーにとっては少なからぬコストでありリスクであると考える必要がある。例えユーザー自身がそれを認識していなかったとしても。特に個人情報とのトレードで無償サービスを提供する場合など、その「意味」をユーザーから隠すことはサービス倫理として看過できない。"
日本企業のアプリには「おもてなし」の心が足りない | 及川卓也のプロダクト視点 | ダイヤモンド・オンライン
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジング(数えずに把握できる数)の上限が3である人が多いためと思う。 UI設計だと、アイテムを並べるとき、なるべく3つ以内、多くて4つという指針がある。 ---- 「線4本は何か嫌だな」という万国共通の心理 https://t.co/k7dln3DUR5」 / Twitter
漢字の「一」「二」「三」の次がいきなり「四」になるのはなぜなのか?【漫画版】 (3/3) - ねとらぼ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジングは4が一般的だった。 むしろ、MIND HACKSに載っていた、密集度による分解把握力低下が主因かも。 https://t.co/KEr3syDoZ3」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ようやくバリア感が強かったフラットデザインが終わるか。抽象化すればするほど、記号が分かる人にしか使えないUIを作るものなのになんで流行ったのかよくわからんかった。 / OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜 https://t.co/ItV72Gn9Dp」 / Twitter
OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「特にフラットな"ボタン"。なぜそこがクリックできると思えるのかと考えると、色々なデザインを見た経験に依存して分かった気になってるだけだよなと。」 / Twitter
棚旗 織さんはTwitterを使っています 「@d_toybox 広告やグラフィックデザインの潮流が PC や web に波及した結果だったと思っています。Helvetica Ultra Light を使うような、軽くて薄いデザインが10年くらい前から流行っていましたので。」 / Twitter

blog

UINavigationController - iPhoneアプリ開発の虎の巻
オブジェクト指向の呪いと、その避け方 - mizchi's blog
qune: 「コードを共通化するために継承しよう」なんて寝言は寝て言えとゆ話
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23)
Apple、新フレームワーク「Swift UI」発表。簡潔なコードとドラッグ&ドロップでUIを構築、デバイスでの即時プレビュー。WWDC19 - Publickey
ソシオメディア | OOUI – オブジェクトベースのUIモデリング
Storybookでモジュール一覧を作る | フロントエンドBlog | ミツエーリンクス
OLE Drag & Dropを実装する - yohhoyの日記(別館)
Evolution of the Scrollbar
drawthe.net - Visioに頼らず綺麗なネットワーク構成図を手に入れる MOONGIFT
話題のGUIツールキットOrbtkを読む | κeenのHappy Hacκing Blog
消えゆくスクロールバー|3inowayosuke|note
✕はなぜ閉じるのシンボルなのか歴史を読み解く|みーた|note
UI開発の要素 — Overreacted
JSXが実はベターな解だったのではないか?|erukiti|note

GIGAZINE

QRコードを生成できるだけでなく「作り方」まで理解できる「Creating a QR Code step by step」 - GIGAZINE
元Appleの重鎮が指摘する「Apple製品から失われてしまったもの」とは? - GIGAZINE
世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE

Wikipedia

Xerox Alto - Wikipedia
Model View ViewModel - Wikipedia

Qiita

Reflowを制するものはDOMを制す - Qiita
Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
the Nothing itself nothings
nothings/stb: stb single-file public domain libraries for C/C++
nothings/single_file_libs: List of single-file C/C++ libraries.
MSE/PSNR vs SSIM の図解紹介 - Qiita
UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita
Sixel Graphicsを活用したアプリケーションの御紹介 - Qiita

Twitter

その他

histric-1

品川 高廣さんのツイート: "個人的には(よく出来た)Webフォームが一番ラクですね。Excelだとフォーマットが崩れたり、元からある文字が消えたり、入力内容がはみ出たり、TABキーで入力すべき所だけに移動出来なかったりする。プレーンテキストだと結局フォーマットを自分で作ったり余計な文章が必要だったりする。 https://t.co/dP4aE0CPZx"
いざてんさんのツイート: "まぁFirefoxが潰れてChromeだけになったらそれこそIE6の悪夢再来みたいなもんだしな……。(´・ω・`) / Latest topics > Firefox 57とかWebExtensions移行後のツリー型タブとかがクソとかゴミとか言われているのを見て思う事 - ou… https://t.co/WudNidXsXt"
Fadisさんのツイート: "いまどきのブラウザ、デバイスの加速度センサーの値をJavaScriptから読めて、加速度取れると正しく物理したくなるんだけど、JavaScriptでインタラクティブに物理はあまり現実的でなくて、シェーダで物理はWebGL2にならないと出力を浮動小数で取れなくてきびしい"
dynamis (でゅなみす)さんのツイート: "OSの通知で標準ブラウザの切り替えを求めてくるのが常識のようになってるのって変ですよね。 WindowsもMacもOS標準のブラウザに戻せと薦めてくるけど、非標準ブラウザもやり始めるとルール無用感が漂う。 WebにおけるOSのような検索エンジンでも切り替え薦めてくるしなー。 https://t.co/0Ox0Gr5SzD"
Brian Birtlesさんのツイート: "Now even Chrome is doing Windows notification spam 😕 https://t.co/oNl4aqo6DG"
Rockridgeさんのツイート: "「Chromeが登場した2008年にはブラウザの進化が止まっていて、イノベーションの阻害要因となっていたが、GoogleがChromeを世に投入してブラウザ技術が息を吹き返した」とする。先行するFirefoxがなかったことに……。 https://t.co/ckWda0sS7t"
すべてのウェブ・ネット関係者に読んでほしい! 及川卓也が解説する「ウェブの進化が支えるデータ社会」全文公開【iNTERNET magazine Reboot】 - INTERNET Watch
るくすさんのツイート: "バイナリアンたる者、任意のHTML5/ES6のコードを見たら瞬時にWebKit内部で使用されるC++クラス、メソッド郡を含めた動作説明ができねばならない。"
Rockridgeさんのツイート: "Pwn2Ownで脆弱性が発見されてから22時間未満でFirefox 59.0.1をリリースできた背景事情を説明した記事。複数のOSと90言語をサポートし、1800万行を超えるソフトウェアでこれを実現したところに意味がある。 https://t.co/l2J3r1xdI9"
愉快な生活送り太郎さんのツイート: "EPUBの標準化団体(IDPF)がEPUBのリファレンス実装として公開していたReadium-SDKがGPLからBSDライセンスになってた!!!!!!!!! ■BSD化のアナウンス https://t.co/NjlOQTKmzh ■github https://t.co/bj1AOe5J0E"
BSD Licensing for SDK
readium/readium-sdk: A C++ ePub renderer SDK
Rockridgeさんのツイート: "MicrosoftがWindows 10 April 2018 Update(build 17134)上でJetstream 1.1ベンチマークを用いて計測したところ、スコアが良いほうから順にEdge 17、Firefox 59、… https://t.co/P11N9CTWkf"
Hideyuki Tanakaさんのツイート: "みんな当たり前すぎて忘れてるかもしれないんだけど、ブラウザってURL入れてEnterを押すのは、プログラムをリモートサーバーから取ってきてサンドボックス上で実行する、というコマンドに他ならないわけなんだけども、案外そういう認識なかったりするのかなあ(´・_・`)"
K.Namba/ご注文は910ですか?さんのツイート: "HTML に従って描画されていく… "
Hideyuki Tanakaさんのツイート: "UI定義DSL… "
くいなちゃんさんのツイート: "「HTMLは構造を決め、CSSは見た目を決める」という原則がありますが、現代の多様な環境で凝った表現をすると無理があり、結局HTMLで見た目を作る黒魔術を使わざるを得ません。そんなときJavaScriptが「どうせ自分がHTMLもCSSも好き勝手に書き換えるから気にしないで!」と言ってくれるのが心強いです。"
Dai MIKURUBEさんのツイート: "ブラウザを立ち上げてアドレスバーにURL打ち込んでEnter押してからページが表示されるまでに (裏側で) 何が起こっているかわかる限り説明してみてください、前職の面接で何度か聞いたけど、やー、なかなか。そこからわかってそうなところを深掘りしたりするんだけど、全く掘れないことも割と"
Mikio Kiuraさんのツイート: "この質問面白そう!しかしエンター押したあと、キーボードがUSB接続だと仮定すると、エンターキーにつながるキーボード基盤の2つのポートが電圧Hになって、キーボードの中のUSBドライバを介してPC側にenterのキーコード13keypressイベントが送られます。そして…みたいに説明すると結構長くなりそう…… https://t.co/4Vhy0sr5Pj"
Kazuho Okuさんのツイート: "キー入力イベントがフォーカスのあたっているGUIオブジェクトに送られるにあたってどういうデータ構造通ってくるかとか、全く理解してないわー"
keiichiro shikano λ♪さんのツイート: "DNSとか経路探索は『プロフェッショナルIPv6』でいけるし、現代のWebに欠かせないSSL/TLSについても『プロフェッショナルSSL/TLS』があるので、ラムダノートの本でだいたいカバーできるのでは?(うそです。ブラウザのレンダリングに関するところは別の本でお願いします)… https://t.co/mfMjAYUePG"
渋川よしきさんのツイート: "ブラウザがつながるまでのやつ。ウェブ系の会社で期待されるであろう内容はReal World HTTPとかGoならわかるシステムプログラミングには書いたからな!よろしくな!DNSとか経路探索は書いてないからな!そこは別の本を読んでくれよな!"
Mantarohさんのツイート: "この間の Digital Publication Layout and Presentation のレポート。 https://t.co/j0CxtMNDpO Vivliostyle の村上さんのスライドが Vivliostyle を使った物だと言うのが感慨深い。 Pagination という痛いところを突かれて心苦しいけども…"
W3C Workshop on Digital Publication Layout and Presentation (from Manga to Magazines)
Kazuho Okuさんのツイート: "本当ならウェブブラウザのエコシステムにとって悲しいニュースだな。実質、市場にWebKit (Chromium) 系とMozilla系のたった2種類のレンダリングエンジンしか存在しないことになる… "

histric-2

Windows Centralさんのツイート: "Microsoft is building a Chromium-powered web browser for Windows 10 https://t.co/CloX43qdAc"
Microsoft is building a Chromium-powered web browser that will replace Edge on Windows 10 | Windows Central
Rockridgeさんのツイート: "Braveブラウザは一部のWebサイトでリーダーモードをデフォルト有効化することにより、高速化とプライバシー保護を実現できると主張。この機能をSpeedReaderと読んでいる。 / “SpeedReader: Fast and…” https://t.co/JpLjA0ysHp"
int $0x03@SNS部さんのツイート: "gnome3に地味な便利機能あったんだ。10進数でも16進数でも文字列選択して右クリックすると10進数と16進数での値とIEC 60027-2での表記が出る https://t.co/6MOfMRDVBP"
七誌さんのツイート: "VSCodeで全置換したとき、キャレットが動かないのが地味に便利だということに気付いた。"
アプリマーケティング研究所さんのツイート: "待ち時間が3倍になったのに、評価があがったエクセルマクロ。 A:処理中に砂時計を表示(2分)😟 B:処理を早回しでみせる(6分)😂 裏側で「何が起きているか?」を早回しでみせたら社内で絶賛された。体感時間が短くなったことと、プロセスの可視化による効果。 アリエリー教授の人生… https://t.co/7RfAB4vSLS"
KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
ドッグさんのツイート: "テキストベースの Linux デスクトップ環境すごい… テキストなので SSH でリモートから描画できる | ‘tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable ov… https://t.co/aQJeubNwUS"
tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable over SSH
Makoto Kato ︎︎さんのツイート: "IE6開発終わった時に、みんなAvalonやるから!ってことで開発チーム解散になったし、FlutterももともとChromeのメンバー多いし、なぜブラウザに飽きるとGUIフレームワーク作り出すのか"
Kunihiko Imaiさんのツイート: "UNIX の場合,改行コードとか行編集とかの typewriter 端末相当の機能はカーネル側で処理するけど,カーソル移動とか色とかの制御は curses ライブラリとか使ってユーザプロセス側で処理する. 歴史的理由なんだろうけど,今見るとキリが悪いよな."
Mantaray@Devさんのツイート: "RTLでもX軸方向は変わらないので、マウスイベント関連の実装がとても面倒なことに"
Kazuho Okuさんのツイート: "シェルのタブ補完、先頭一致だけじゃなくて中間一致も試すモードがほしい。git branch ... とか中間しか覚えてなかったりする"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyを初めて見た人から、「沢山のボタンやチェックボックスがあって、何をして良いのか分からない」と言われた。 そうかも。慣れきっていると気づかない視点は大事だ。 一方で現状UIに慣れた人にも違和感少な目で、エレガントに解決するのは、なかなか難しい。"
Nerry@さんのツイート: "実機でキー入力の反応が悪い。描画ロックのせいかな?"
Nerry@さんのツイート: "マウスは普通に動いてるしnoiz2bgがそれほど負荷高いわけでもないからキー入力だけレスポンス悪いのは不自然ϵ( 'Θ' )϶"
Nerry@さんのツイート: "ロックが中途半端だったからspinlockに変えたら早くなったϵ( 'Θ' )϶"
Nerry@さんのツイート: "ロック方法も悪かったけど1文字入力するごとに再描画必要な現在のコンソールの構造がそもそも悪い気がする"
mer2さんのツイート: "なにがどうやばいって、BlenderでモデリングしながらLooking Glassでモデリング中オブジェクトをリアルタイムに立体視で表示できちゃうんだよ。これはやばいやばいやばい。 #b3d… "
Manabu Uenoさんのツイート: "UIデザイン原則とUIデザインパターンを使えば、自然に高品質のUIを作ることができる。しかし次の事項にはデザイナーの創造力が必要で、これらがアプリの独自性となる。 ・オブジェクトをどのようなアレゴリーで概念づけるか ・オブジェクト一覧をどのような形式で示すか ・デフォルトをどうするか"
Manabu Uenoさんのツイート: "入力欄のラベルに「お名前」とか「ご住所」のように御の字をつけるのはおかしい。ソシオメディアでは、 UIはユーザーに帰属するものと考える。ユーザーが自分の意思を示すものだから御の字は不要、とクライアントに指摘している。しかしこの感覚を持たない人にわかってもらうのは難しい。"
Manabu Uenoさんのツイート: "多くの事業者は自分たちのシステムを自分たちに帰属するものとしてデザインしようとする。それをユーザーに使ってもらう姿勢だから、UIラベルに「へりくだり」を持たせようとしてしまう。その結果UIの主体が曖昧になる。ひいてはインタラクション全体がタスク指向になり、むしろ傲慢になっていく。"
Kazuho Okuさんのツイート: "ウェブブラウザがどのようにリソースをダウンロードするか(そしてどう最適化すべきか)、詳細な解説 / “Resource (pre)loading” https://t.co/1I5H6mfYu0"
Resource (pre)loading

histric-3

渋川よしきさんのツイート: "描画エンジン(Skia)が即時モード、レンダーツリーは保持モード、DOMは保持モード、仮想DOMの生APIは即時モード、仮想DOMのコンポーネントは保持モード。最近、こういう多層構造がコーディングのシンプルさと性能の両立に重要なんだろうなって気がしてる。"
ゆるsyuu1228△さんのツイート: "ブラウザのタブ大量に開いとくとなんとなく24CPU消費してくれんかね"
Makoto Kato ︎︎さんのツイート: "Gecko (w/ Stylo)だとrestyleでもう使ってる。"
Mantaray@Devさんのツイート: "left / right 多用しているアプリは RTL 環境だと致命傷ということがよくわかった。"
ぽんこつ@本骨システムさんのツイート: "Single Page Applicationだとありがちだとおもうんですが、ブラウザで開いて、ブラウザ側は読み込みが完了している表示になっているにもかかわらず、別リソースの読み込み待ちで一瞬白くなることがあって、あれ良くないんじゃないかとか"
tkrさんのツイート: "そのうちhtmlレイアウトエンジンをwasmにコンパイルしてcanvasに描画する人とか登場しそう"
tkrさんのツイート: "html in html"
tkrさんのツイート: "s/レイアウト/レンダリング"
品川 高廣さんのツイート: "ブラウザ標準の「戻る」「閉じる」操作で対処可能な「ブラクラもどき」より、「右クリックは禁止です」というポップアップを出すサイトや、「戻る」「進む」操作で正常な画面遷移ができなくなる等冪性のないサイトなど、ブラウザ標準の操作を妨害するサイトの方が遥かに有害。"
dynamis (でゅなみす)さんのツイート: "EdgeがまともなUIを備えるようになったらWindowsではEdgeからChromiumに乗り換える意味って何になるんだろう。"
弩.net@Coqやっていきさんのツイート: "そのOSの標準的なダイアログの出し方・UIガイドライン・認証・バックグランドタスクの投げ方を踏襲しているアプリは信頼感が高い。逆に謎カスタマイズしているアプリは不審。そして行政や日本の大企業が出して来るアプリはだいたい後者。"
弩.net@Coqやっていきさんのツイート: "明らかにOSやネットワークプロトコルやその他各レイヤーの機能を活かさず筋の悪い提案を出してきた人を見たら「ああ、この人は何にも知らずに喋ってるんだな」って判断するよね。普通。"
弩.net@Coqやっていきさんのツイート: "典型的な例が、行政や大企業が出してくるスマホアプリは絶対OSの標準UIコントローラを使ってないんだよ。標準UIが完璧とは言わないけど、その辺の素人の考えよりかはよっぽと、タップ・フォーカス・キャンセル・disableの視覚効果が練られてるんだよ。特に理由がないならそのまま使うべきなんだよ。"
Masaru Iritaniさんのツイート: "Outlook で電子メールをカレンダーにドラッグ アンド ドロップすると簡単に予定を作れることを知ってから、作業依頼の電子メールはすぐ予定にして時間を確保するようにしています。"
Fadisさんのツイート: "Wio: Plan9のウィンドウシステムRioをWaylandで再現したものらしい。Rioは個々のウィンドウを分離された名前空間で処理するが、WioはWaylandのCageを使ってこれを再現。Rioはウィンドウに対する操作をファイル操作で行えるが、WioはFUSEでこれを再現 https://t.co/QhCoedseWi"
Wio: Plan 9's Rio Windowing System Re-Implemented As A Wayland Compositor - Phoronix
島鉄雄さんのツイート: "GTK4 で GSK(GTK Scene Graph Kit)が導入されたけど、どの程度のものか分かってなかったけど、スクショを見たら本当にシーングラフになってたw GTK Node Editor とかたまらん! 今までも階層構造にはなってたけど、より明確に分離されたって事だね。 https://t.co/kmfSky3OvN"
GTK 3.96.0 – GTK Development Blog
chikoskiさんのツイート: "WebAssemblyコンパイラの作り方。オレオレ言語を処理して、WASMを出力するコンパイラを作っている。一般的なコンパイラの作り方の説明になっているので、そっち方面の勉強に良さそう。https://t.co/nEJFyiZOTz"
Build your own WebAssembly Compiler
chikoskiさんのツイート: "興味深かったのはグラフィックスの扱い。JSで実装された描画用の関数群でグラフィックスの操作をするのが、よくある手法なのに対して、このコンパイラでは線形メモリの一部をVRAMとして扱うことで描画する。もしかしたら一括転送できて、パフォーマンス的にもいい手法なのかもしれない"
島鉄雄さんのツイート: "最近のLinux用GUIアプリはWayland上で動くように作られている(GTK+3とか) 古いX11アプリもWayland Clientとして実装されているXWaylandを通して動かす事が出来る 要するに描画を担当しているWayland Compositorの Windows版があればWSL上で動く全てのGUIアプリを動かす事が出来る。 誰か実装してくれ!… https://t.co/oK1IzFAU8z"
島鉄雄さんのツイート: "その図を見ると分かるように、Wayland CompositorがLinuxに激しく依存してるように見える。 実際はWayland Protocolとして分離されててUnix domain socketで転送してるだけだから、Compositorはプラットフォームに関係無く実装出来るはず。"
島鉄雄さんのツイート: "Linux上で動くWayland Compositor自体はマイナーなものまで含めると山ほどあるけど、Windows版が無いのは、それらがWayland Compositorのリファレンス実装を元に作ってて、それが激しくLinuxに依存してるからだろうと思われる。 細部までちゃんと理解してフルスクラッチから作る必要があるんだよね。"
島鉄雄さんのツイート: "emacs-develで--with-cairoはもうexperimentalじゃないっていうのがあったけど、WaylandにはXにはあったライン等の描画APIが一切無いので、自前で描画する必要があるけど、それをcairoに投げる事で相当楽が出来る。 後はウィンドウ周りのコードをWaylandのAPIを使う事でWaylandで動くようになるはず。"

histric-4

Taku KudoさんはTwitterを使っています: 「chromebook + remotedesktop が快適すぎてもうこれでいいんじゃないかと。ローカルにログインすると同時にほぼ透過的にリモートにつながるし、セッションが保持されているので作業が途切れない。」 / Twitter
FadisさんはTwitterを使っています: 「Vulkanの実装がVK_EXT_direct_mode_displayをサポートしている場合、ウィンドウシステム上でVulkanのレンダリング結果を表示するのではなく「ディスプレイ丸ごとよこせ」が出来る。奪い取ったディスプレイはウィンドウシステムの管理から外れてどんなフォーマットで通信するか自由に選べるようになる」 / Twitter
ゆきさんはTwitterを使っています: 「W3CにDanmakuってドキュメントがあったけど、「弾幕のユースケースと要件について」ってマジ? https://t.co/67BJ2s1Iqk https://t.co/5gUlIONRqc」 / Twitter
弹幕规范
島鉄雄さんはTwitterを使っています: 「GUI は好きだが、マウスは嫌いだ。 コマンドラインじゃなくて GUI で出来るならそっちの方が絶対良いけど、イコール、マウスを使うではない事だけはアプリ制作者に言いたい。 要するにリッチな GUI をキーボードだけでサクサク動かせれば最高。」 / Twitter
島鉄雄さんはTwitterを使っています: 「Firefox も Vimium (Vim キーバインドで Web ページが読める)を使って、ほぼキーボードだけで操作してる。 Editor は Emacs だけど、ブラウザのキーバインドは Vim で快適。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「BTRONの実身/仮身モデルとWindowsのOLEって似てるんじゃないかと思って検索したらこんな記事があった。 "TRON Project と BTRON の概要" https://t.co/l3CGMOBCO6」 / Twitter
TRON Project と BTRON の概要
社会人でもOSを作りたいさんはTwitterを使っています: 「いやー,先行研究の調査って大事だなあ。OLEが結構やりたかったことに近いぽい。BTRONの実身/仮身モデルを借用したようなアーキテクチャ。」 / Twitter
杉本啓さんはTwitterを使っています: 「昨晩、渡辺さんとのんで、この図の左がPOA、右がDOAなんです、という話をしました。 POA:プロセス中心アプローチ DOA:データ中心アプローチ 設計を真剣に考える人々は、COBOLでコードを書きながら、今の大多数のエンジニアより洗練された設計観を築いていたんですね。 https://t.co/FBRkCJezTK」 / Twitter
Manabu UenoさんはTwitterを使っています: 「ユースケースにただ対処するだけだと、全体の情報量はデザインの分だけむしろ増えてしまう。顕在化した問題を縦に貫くことで、潜在的な要求への準備ができる。 https://t.co/WhhLr7Nwo9」 / Twitter
Manabu UenoさんはTwitterを使っています: 「これはりんご皮むき機と果物ナイフの話と同じ。 https://t.co/PYyI6hXfvr」 / Twitter
杉本啓さんはTwitterを使っています: 「DOAの人々が、設計に関する経験・知識が継承されなかったと嘆くのは、ある意味、もっともな嘆きではあるんです。言葉が違うから伝わらないのが惜しい。POAは今の言葉で言うならユースケース中心、DOAはアーキテクチャ中心なんですね。」 / Twitter
杉本啓さんはTwitterを使っています: 「渡辺さんはじめDOAの人がOOを批判するのは、OOでの設計が、ともすればユースケース中心になってしまっていることに起因する面が強いと思っています。OO全体への批判としては、それはあたらないと思いますが、OO支持者によって現に実践されている設計の多くに対しては妥当な批判でしょうね。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「あー、ソースコードもこういう事やな。悪い意味でハッキーな人は左側のアプローチしかやらない。」 / Twitter
しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ① タブをブラウザの上下ではなく左右に置ける(横長ディスプレイを有効活用&タブが増えても幅が変わらずタイトルが読みやすい)」 / Twitter
しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ② タブグループをツリー構造で管理できる(調べものした時に検索結果の各ページをホイールクリックでツリーにぶら下げたり、派生した調べ物でツリーを分けられる。ツリーはまとめて閉じたりブックマークも可能)」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「OCaml 用並行 GUI ツールキットを作った.各 UI 部品は自律したプロセスとして実現されていて,チャネルを経由して通信しあうことで協調し全体として UI を構成する.通信部分は ocaml-csp を使用.バックエンドは GTK+ または Direct 2D. https://t.co/l2oNniLM7K」 / Twitter
hatsugai/Guedra: Concurrent GUI toolkit for OCaml
hatsugai@PRINCIPIAさんはTwitterを使っています 「図面を作る基礎にできる汎用の Draw widget を作った.ドメイン特化図形言語を定義し描いた図面をデータ構造化して処理するというよくある用途向け.UI から処理まで OCaml で統一できる. 図形オブジェクトは関数で表現しており draw widget とは CPS で通信する. https://t.co/csJj3PC6s1」 / Twitter
hatsugai/Guedra-draw: Draw widget for Guedra
hatsugai@PRINCIPIAさんはTwitterを使っています 「というわけで,1つはプロセスでチャネル通信,もう1つは関数で CPS です.楽しそうに遊んでいるグループから少し離れたところで,ちょっと変わった一人遊びをしてる子供みたいなものです.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「Scheme 版では R6RS record の継承を使ってオブジェクト指向システムを作って,その上で図形を表現してた.図形オブジェクトの実現と継承は相性がいいので,その点ではそちらの方がよかったけど,CPS にはしなかったので呼び返し問題には気を使わなければならなかった.」 / Twitter
島鉄雄さんはTwitterを使っています 「lsp-mode が重い原因は、単純にありとあらゆる処理が非同期になってないから、どこかで UI をブロックしてしまうからなんだよね。 取り敢えず結論としては、UI に絡むプログラム(含むテキストエディタ)を作る場合、libuv かそれに類する処理を実装して、あらゆる API を非同期処理にしないと駄目だ。」 / Twitter
島鉄雄さんはTwitterを使っています 「・コードの重複を避ける(ただし過度な統合は悪) ・if 文を極力書かない ・実行タイミングが違う関連処理は状態遷移で纏める という感じで咀嚼した。 しかし、React のフックは Emacs に昔からあるフックとほぼ同じもんだな。(GUI ライブラリの signal とかと一緒) (続く) https://t.co/btcb0DlTQH」 / Twitter
inductorさんはTwitterを使っています 「神資料だ https://t.co/HQ6gQ9NkkW」 / Twitter
オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling - Speaker Deck

島鉄雄さんはTwitterを使っています 「更に Emacs には advice という強力な機能があって、これで全く関連が無い他人の書いたコードを、システムの奥深くの機能に追加や変更が出来る。 (ちなみに CLOS ではメソッド結合で同じ事が出来る) advice が有ればコンポーネントとか高尚な概念が無くても、ゆるーい結合で何でも出来るって事だな。」 / Twitter
お気楽 CLOS プログラミング入門
Common Lisp Object System - Wikipedia
島鉄雄さんはTwitterを使っています 「この場合は、ライブラリのレベルでボタン押下を trigger と press に分けて保存するようにすれば、それほど難しい問題ではなくなる。 trigger → 前のフレームに離されていて現フレームで押された(次のフレームも押されてたら press へ移行) press → 前のフレームから押されっぱなし https://t.co/TxGNxAEEXw」 / Twitter
Kumagai, MさんはTwitterを使っています 「組込プログラミングの課題として、   「上上下下左右左右BA」の判定 というのは、わりとよい題材だと思う。 ビットの入出力くらいあれば(ミリ秒時刻変数もほしい)、あとは言語固有の知識をあまり必要としない、現実を見据えたアルゴリズム、の話になるから。」 / Twitter
FadisさんはTwitterを使っています 「The Qt Companyが、短期的なキャッシュが必要になった為Qtの将来のバージョンではオープンソース版を廃止するかもしれない、とした事をうけて、KDE及びQtを利用するオープンソースソフトウェアの開発者達がQtをforkする方法について議論を始めている、という話 https://t.co/z1KWjdC8HK」 / Twitter
More Open-Source Participants Are Backing A Possible Fork Of Qt - Phoronix
FadisさんはTwitterを使っています 「尚Qtが過去にforkした事例としては、KDE3をforkして現代のLinux環境でも使えるように保守し続けているTDEの人達が、KDE3が依存しているQt3を使い続けられるように独自に開発を続けているTQtが存在する」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語がわからなくても、オフィシャルのこの辺の情報はハンズオン的に追っかけていくだけでも基本はわかるんじゃないかと思います。次のステップは、とりあえず入門書系ですかね。2019年後半以降に出てる日本語の本ならとりあえず最新の情報にはキャッチアップできるかと。 https://t.co/I7y6GzQN5Y」 / Twitter
Write your first Flutter app, part 1 - Flutter
Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語でよければ、最初のチュートリアルの続編みたいな感じで、こういうのもあります。カッコいいレイアウトをガシガシ作っていける楽しさがわかるとモチベーションになると思います。 https://t.co/ut7etEzK99」 / Twitter
Building layouts - Flutter
FadisさんはTwitterを使っています 「ソニーが組込機器にリッチなGUIを乗せる為に、Flutter(Google製のGUIツールキットで、主にスマートフォンやFuchsiaで使われる)をWayland上で動くようにした、という話。Qt、GTK、Webkit等いろいろな選択肢を試したが、これが丁度いい綺麗さ、開発の容易さ、軽さだったらしい https://t.co/3uIQ0hJwb6」 / Twitter
Sony Engineer Talks Up Using Flutter + Wayland For Their Embedded Interfaces - Phoronix

レガシー

Masaki OhashiさんはTwitterを使っています 「SIerとかの「画面とDB直結おじさん」はいつまで存在するのだろうか…」 / Twitter
Masaki OhashiさんはTwitterを使っています 「こういうおじさんが決定権を持ってると、あらゆるOOPもフレームワークもMVCもDDDも崩壊してしまう」 / Twitter
Masaki OhashiさんはTwitterを使っています 「画面→SQL→DBみたいなおじさん。」 / Twitter
Masaki OhashiさんはTwitterを使っています 「直結なので抽象化やモデリングがまったくできない…」 / Twitter
Masaki OhashiさんはTwitterを使っています 「コントローラからいきなり生えてるSQL」 / Twitter
Masaki OhashiさんはTwitterを使っています 「「クラサバ系MVC」」 / Twitter

クエリー

κeenさんはTwitterを使っています 「このクエリいいな。ASTに対して同じようにクエリ投げたい。 使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳 https://t.co/gmVijUiQqI」 / Twitter
使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳
わさびずさんはTwitterを使っています 「Egisonじゃん https://t.co/XljT4RUGou」 / Twitter
κeenさんはTwitterを使っています 「なるほど?つまりEgisonでコンパイラを書けば良い?」 / Twitter
わさびずさんはTwitterを使っています 「@blackenedgold 実際かなり書きやすいと思います 特にpeephole的な処理は瞬殺できます」 / Twitter
EgisonさんはTwitterを使っています 「最新の論文の3.4.1節にツリーに対するパターンマッチについて書いています.少ないパターンコンストラクタを組み合わせていろいろなパターンが書けるようになっています.ぜひみてみてください! https://t.co/CWqBL3zik5 https://t.co/FFSTkkkX5I」 / Twitter
Functional Programming in Pattern-Match-Oriented Programming Style

API

Manabu UenoさんはTwitterを使っています: 「Apple, Google, MS, Amazon, Facebook, Twitter 等々、いろんなベンダーの API を触っていると、それぞれの企業の本当のデザインセンスが見えてくる。サービスの中の「インターフェース」がどのようにデザインされているか。その組織のエンジニアがどれぐらい「道具づくり」に長けているか。」 / Twitter
Manabu UenoさんはTwitterを使っています: 「よくできた API は、サービスの無為な道具的存在性がちょうど良い粒度で抽象化され、サードパーティに自己拡張イリュージョンを与える。悪い API は、技術者の自意識がコンプレックス(複雑性)としてそのまま露出していて、何をするにも使役感が伴う。」 / Twitter
Manabu UenoさんはTwitterを使っています: 「UI(ユーザー向け)にしろ API(プログラマー向け)にしろ、I(インターフェース)の在り方が製品そのものなのである。そして良いインターフェースは、何かを「させる」ものではなく、何かが「できる」ようにデザインされているのである。」 / Twitter

Mozilla

Quantumプロジェクト

Quantum CSS

5x

Rockridgeさんのツイート: "Quantum CSSはFirefox Nightly 56でデフォルト有効化される見通し。 / “2017-Q2-Goals#Astley_Chen” https://t.co/fy6DWNZ3OP"
Rockridgeさんのツイート: "Quantum CSS(Stylo)がFirefox Nightly 56にデフォルト無効で投入される日は近い。まずはLinux向け64bit版とWindows向け64bit版がターゲットになるという。 / “Stylo bit…” https://t.co/1oVpBX6GZi"
Rockridgeさんのツイート: "デスクトップ版Firefox Nightly 56においてQuantum CSSがデフォルト無効で投入されたことを踏まえ、コミュニティにテストを呼びかけている。Firefox 57リリース版でデフォルト有効化する予定である旨も公式… https://t.co/ibTPG1M84i"
Rockridgeさんのツイート: "Fx56:macOS版NightlyにQuantum CSSがデフォルト無効で投入されたのは、このバグの修正による。 / “1379339 - Enable stylo on macOS automation builds” https://t.co/RL6ko4h7xY"
Rockridgeさんのツイート: "Firefox Nightly 56ユーザーの20%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/UpEheT0DiS / “Firefox/Channels/Meetings…” https://t.co/F7P61nUy5R"
Rockridgeさんのツイート: "Firefox Nightly 57ユーザーの80%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/uQOn5H5ASH / “Chris Petersonさんのツイート: "@…” https://t.co/81uTquiudR"
Rockridgeさんのツイート: "Quantum CSSはRust言語製の新CSSエンジンを開発するプロジェクトであり、その成果はFirefox 57に投入される。エンジンはServoの並列処理とGeckoのルールツリーを採用し、WebKit/Blinkから着想を… https://t.co/CFvG9OZQ6O"
Rockridgeさんのツイート: "Fx57:NightlyチャンネルでQuantum CSSがデフォルト有効化。これまではNightlyユーザーの80%で有効化するテストが行われていたが、以後は100%有効化される。参照:… https://t.co/lehGXM9JXn"
Rockridgeさんのツイート: "Quantum CSS(Stylo)がAndroid版Nightly 58にデフォルト無効で投入予定。Nightly 59でデフォルト有効化の見通し。apkサイズが1.6MB増える問題があり、Beta版以降への投入についてはスケジ… https://t.co/JwBmoDT9nT"
Rockridgeさんのツイート: "Quantum RenderはFirefox 59に間に合うように、当初の段階で実装される機能を限定するらしい。 / “WebRender Project Status Update - Friday October 27th” https://t.co/nhSPqbN9Ba"

6x

Rockridgeさんのツイート: "Fx60:リーダーモードでもQuantum CSSが効くようになった。 / “1406274 - stylo: Enable stylo for about:reader” https://t.co/POKcSz8OXm"
Rockridgeさんのツイート: "Fx60:Quantum CSSをドメイン単位で無効にする機能を削除。Fx57のリリース後、無効にしたドメインはなかったとのこと。 / “1426223 - stylo: Remove Stylo domain blocklis…” https://t.co/j5ZtHHcvQh"
Rockridgeさんのツイート: "Fx60:Quantum CSSがFirefoxの親プロセス(chromeプロセス)にも適用されるようになった。 / “1417138 - stylo: Enable stylo-chrome by default” https://t.co/l7qkt6cSVI"
Rockridgeさんのツイート: "Fx60:このバグが修正されたことで、Quantum CSSがFirefoxの親プロセス(chromeプロセス)に適用される際に本来の効果を発揮できるという。 / “1375913 - stylo: re-enable the …” https://t.co/aU6zDiHovv"
Rockridgeさんのツイート: "Fx61:Quantum CSS(Stylo)による置き換えが完成したため、Geckoの旧スタイルシステムは削除された。参照:https://t.co/qa6SYLQJ5Q / “1447358 - Unifdef the ol…” https://t.co/IviwpSKNYo"

Rockridgeさんのツイート: "Quantum CSSがFirefoxのすべてのプロパティをサポートした。Nightlyチャンネルにデフォルトオフで投入される日も近い。参照:https://t.co/zq2Z5xQDum / “All properties i…” https://t.co/Abn2BR5N5o"
Rockridgeさんのツイート: "Quantum CSSの開発においてfont-sizeの実装に苦労した話。いろんな単位をサポートしなければならないうえ、たとえばmediumが何を指すかはフォントの系統ごとに変わってくる。ルビやMathMLでの調整も必要だ。 https://t.co/2Tb21cStTy"
Font-size: An Unexpectedly Complex CSS Property - In Pursuit of Laziness
Rockridgeさんのツイート: "Quantum CSSのCSS解釈などがGeckoと違う点を列挙。 / “Firefox Quantum 57 for developers - Mozilla | MDN” https://t.co/jxRGHYurWB"
Firefox Quantum雑感 - Mozilla Flux
Firefox QuantumでThe Book of Mozillaも新章へ - Mozilla Flux
Rockridgeさんのツイート: "Quantum CSS(Stylo)は8.5万行のRustコードで構成される。Geckoの同等システムは16万行のC++なのでコンパクトに。Firefox搭載への取り組みは2015年に開始された。並列処理によるパフォーマンス向上を… https://t.co/3gjQxjNrbL"
Firefox Quantum高速化の一翼を担うQuantum CSS - Mozilla Flux
Rockridgeさんのツイート: "Firefox Quantumのリリース時に達成できたのは粒度の粗い並列処理のみ。今後はQuantum CSSのような粒度の細かい並列処理をFirefox全体が行えるようにし、CPU・GPUのマルチコアをより生かしていく。Quan… https://t.co/UsFu70H2KP"
Rockridgeさんのツイート: "Quantum CSSにRayonと呼ばれるRust言語製のデータ並列性ライブラリが使用されている。また、フォントレンダリングシステムのPathfinderが将来のFirefoxに統合される旨が明言された。 / “Fearles…” https://t.co/InWBJXwuJj"
Rockridgeさんのツイート: "少数のチームでQuantum CSS(Stylo)を開発した際の苦労話。StyloはGeckoを段階的にRust化していくプロセスの中で、マイルストーンとなる。 / “::bholley - Boiling the Ocean,…” https://t.co/oNZAWrOkfc"
超高速エンジンの内部:Quantum CSS(別名Stylo)- 前編 | プログラミング | POSTD
超高速エンジンの内部:Quantum CSS(別名Stylo)- 後編 | プログラミング | POSTD
azuさんのツイート: "Firefox CSSのパースが並列化されたのか "1346988 - stylo: Consider parallelizing CSS parsing" https://t.co/1i0XqJvW9Q"

Quantum Flow

Rockridgeさんのツイート: "Quantum Flowの各チームが力を入れている分野について。DOMではタスクのスケジューリング、JavaScriptではCacheIRとGCのスケジューリング、Layoutではリフローのパフォーマンス、Graphicsではディ… https://t.co/xVghGZrUz1"
Rockridgeさんのツイート: "Quantum Flowの成果が出始めている。Firefox Nightly 55では起動速度が改善され、セッション復元に要する時間が約5分の1になったという。 / “Quantum Flow Engineering Newsl…” https://t.co/fVE0Sw4FS6"
Rockridgeさんのツイート: "Quantum Flowプロジェクトの成果に関するスライド。2017年8月15日時点のFirefox Nightly 57は、Speedometer v2のスコアがFx54の倍近くまで上昇している(9枚目)。同スコアをChrome… https://t.co/M4gfB6w2Yx"
Quantum Flow - Status 2017 08 28 - Google スライド
Rockridgeさんのツイート: "Quantum Flowプロジェクトの中でプロセス間通信(IPC)の非同期化が進められたことによって、Firefox Quantumでは、フレームレートの制約が通常よりも厳しいWebVRにおいて、Fx55との比較でも処理が滑らかに… https://t.co/ve9hxFLGTj"
なかのん&マジックさんのツイート: "Quantum Flowのための最適化で設計が綺麗じゃなくなっていくのはなんかモヤモヤするものがある。"
なかのん&マジックさんのツイート: "そーいや去年から対策やってるQuantum Flowのテストケース<https://t.co/WGZwbbDB44>、Firefox NightlyのWindows版では20msだけど、Android版をZenPad S3 10 Z500KLで走らせたら200msもかかってた。やっぱり、モバイルって遅いな。Chromeに圧倒的に負けてるケースなんだけど、Chromeでも10倍以上遅い。"
なかのん&マジックさんのツイート: "エディタ周りはもうこれ以上削れるところ無いかなって感じにはなってきた。まだ、Selectionの方は改善できそうだけど。"
なかのん&マジックさんのツイート: "ただ、私のカバー範囲だと、どうやってもChromeの速度には到達できないんだよな。"
なかのん&マジックさんのツイート: "今日のNightlyでprofileとるとこんな感じ: https://t.co/Vw6Z7IBjq1"
perf.html
なかのん&マジックさんのツイート: "あー、でも、Surface Book 2でも70msぐらいかかった。Browadwell-Eなんでシングルスレッドの動作速度はそこまで高速じゃないんだけど、単純にデスクトップ機のCPUは高速だったか。 https://t.co/AXrX73dvyQ"
perf.html
Rockridgeさんのツイート: ""Quantum Flow 2018"というプロジェクトが始動する模様。 / “WeeklyUpdates/2018-04-09 - MozillaWiki” https://t.co/mBbCMFPa8I"
なかのん&マジックさんのツイート: "Quantum Flowはむしろ、低スペックな方が恩恵受けやすいと思うんだけど、レス付けてる人は何のことを言ってるんだろう(実測でどうかは知らない。例えば極端にメモリがない環境とか)。 https://t.co/LANQiIt2ID"
なかのん&マジックさんのツイート: "Quantum Flowの一番のポイントはやらなくて良い処理はやらないようにしようってことなんで。あと、バージョンアップに伴い、ビルド環境もアップデートされていくんで、コンパイラの最適化の違いもあると思う。"
なかのん&マジックさんのツイート: "やらなくて良い処理を何でやってたのか、あるあるなのは、 nsAutoTArray<RefPtr<nsIFoo>> temp(original); for (auto& item : temp) { item->DoSomething(); } ってのがあったら、original.IsEmpty()を先にチェックするようにしてnsAutoTArrayの生成を回避したりとか。"
なかのん&マジックさんのツイート: "久々にQuantum Flowな修正を年末のレビューリクエスト飛んでこない時にやってみた。Selectionの変更時や、エディタでの編集時にヒープに確保してたContentIteratorをスタックに置けるようになったんで、特にmacOSで地味な速度アップしてるはず(実験はしてない)。"
なかのん&マジックさんのツイート: "TextEditRules/HTMLEditRulesって、ヒープに常に確保されてる必要があるんだろうか。例外を除けばそのメンバはEditActionをハンドリング中にスタックにだけで居れば良いような気がする。 #もずでぶ"
なかのん&マジックさんのツイート: "GeckoはSelectionとnsRangeの速度を改善すると効果が大きいというのが経験的にある。なにしろ、選択範囲(キャレット含む)が変わる操作を何かするたびに処理が1回から多いときは3-4回も走るから。 #もずでぶ"
なかのん&マジックさんのツイート: "Webアプリ書いてる人も、Selectionが変化する処理を無駄に行わないようにすると結構アプリのパフォーマンス変わってくると思う。どうしてもSelection/Rangeのパフォーマンス向上には限界がある。"
なかのん&マジックさんのツイート: "DOMのRangeってどのブラウザ発祥なんだろ。ちょっと親切すぎるせいでパフォーマンスが出ない仕様なんで、なかなかちょっと今のWeb向きでは無いように思う。"

Quantum Render(WebRender)

WebRender

dynamis (でゅなみす)さんのツイート: "servoとして実験していたレンダリングエンジンの成果の本命であり、Firefoxレンダリングエンジン最大のアーキテクチャ変更であるWebRenderが遂にリリース。 まずはNVIDIA GPU搭載のWindows PCユーザ(4%)がターゲットでデフォルト有効に。 https://t.co/YRcljA9wwU"
Graphics Team ships WebRender MVP! – Mozilla Gfx Team Blog
dynamis (でゅなみす)さんのツイート: "最近のIntelかAMD GPUを搭載したデスクトップWindows 10やLinuxではIntel統合GPUs with Mesa 18.2以降を4K未満の解像度で使ってる場合もテストしてるから、設定で有効化してみるのも良いかも。"
dynamis (でゅなみす)さんのツイート: "WebRenderなにそれ美味しいの?的な人向けの長大なイラスト付き解説はこちら https://t.co/vImsoma2oT"
The whole web at maximum FPS: How WebRender gets rid of jank - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす)さんのツイート: "どちらかというとパフォーマンス向上はこれからで、まずは落とさずにジャンク(描画の問題)を減らしたりOS依存性の低く最適化もして行きやすいアーキテクチャへの変更が最初の目標設定かな"
dynamis (でゅなみす)さんのツイート: "GPUによる分割並列処理が得意で極端なケースでは他のブラウザの4~10倍以上高速、スムーズに描画可能にはなるけどより一般的なケースにおいての評価は未発表かな https://t.co/9l6d27gZdZ"

ANGLE

Rockridgeさんのツイート: "Fx55:Windows上のQuantum RenderではANGLE(Almost Native Graphics Layer Engine)が用いられる。参照:https://t.co/zdxyYLozNa / “13233…” https://t.co/DzrEfiMDi8"
ANGLE - Almost Native Graphics Layer Engine
google/angle: A conformant OpenGL ES implementation for Windows, Mac and Linux.

Rockridgeさんのツイート: "Quantum Renderでは、従来のClientLayerManagerインスタンスに代えて、WebRenderLayerManagerインスタンスを作成・使用する。 / “Platform/GFX/Quantum Rend…” https://t.co/DKhkMFwjcf"
Rockridgeさんのツイート: "Quantum RenderがFirefoxのリリース版で有効化されても、少なくとも当初はWebコンテンツの表示速度に与えるインパクトは大きくないようで、開発者いわくUI描画のGPU支援に使えるとよかったのだが、と。 / “Qu…” https://t.co/WtiCniHJ5C"
Rockridgeさんのツイート: "QuantumRenderがTier-1に昇格。有効化へと一歩近づいた。 / “Making QuantumRender tier-1” https://t.co/xJnCqjqDRu"
Rockridgeさんのツイート: "Fx55:Android版にもNightlyチャンネルにQuantum Renderがデフォルト無効で投入された。 / “1323612 - Build webrender on android” https://t.co/JSPCafNMH4"
Rockridgeさんのツイート: "Fx57:Quantum Renderの動作にHWアクセラレーションの有効化が必須となった。主にLinux版に影響する措置。参照:https://t.co/ig0hDpsxSE / “Heads-up: WebRender no…” https://t.co/zc4EmG1D1X"
Heads-up: WebRender now requires HWA enabled - Google グループ
Rockridgeさんのツイート: "Firefox NightlyでQuantum Renderをフルに試す際に有効化すべき設定について。gfx.webrender.enabled/gfx.webrendest.enabled/gfx.webrender.layer… https://t.co/TmoRzQA0kv"
Rockridgeさんのツイート: "Quantum Renderのリリース時期がFx59から未定へと変更された。時期優先で機能を絞るという話だったはずだが、それも難しかったのか。 / “WebRender Project Status Update - Frida…” https://t.co/jupMZ6NdCN"
Rockridgeさんのツイート: "意味を読み取りづらいが、Quantum RenderはFirefox Nightly 60の開発サイクル初期にデフォルト有効化か。 / “WebRender Project Status Update - Friday Nove…” https://t.co/IX5BXIGtYY"
Rockridgeさんのツイート: "Firefox Nightly 59のQuantum Renderは多くのWebページで正常に動作するようになってきているが、GPUやグラフィックスドライバーごとの挙動のばらつきを抑えるのが今後の課題だという。 / “WebRe…” https://t.co/JgzPMwn5g9"
Firefox 58以降も続く高速化と応答性向上 2018年もパフォーマンス2倍が目標 - Mozilla Flux
Rockridgeさんのツイート: "Quantum Renderがリリース版に投入されるまでの間に解決すべき問題が列挙されている。その数は多く、Firefox 60の段階で解決できているか疑問だ。 / “Notes from last Wednesday...” https://t.co/HZM3hmhokD"
Rockridgeさんのツイート: "近々Firefox Nightly 55にQuantum Renderが投入される模様。デフォルト無効だが、gfx.webrender.enabledをtrueに変更して再起動すると使えるようになるそうだ。参照:… https://t.co/SBNOA2cMmX"
Rockridgeさんのツイート: "Quantum Renderの投入時期が大幅に延期された。Nightlyチャンネルの有効化がFx63、Betaチャンネルの有効化がFx64となっており、このスケジュール通りに進んでも、2018年11月にならないとリリース版に入らな… https://t.co/gJbHyZ1Vu7"
Rockridgeさんのツイート: "Fx59:gfx.webrender.allの設定をtrueにすることで、Quantum Render関連の設定を一挙に有効化することができる。 / “1425260 - Bring back webrendest functi…” https://t.co/xZCKQKJsrQ"
Rockridgeさんのツイート: "Fx60:Quantum RenderではDirect2Dバックエンドを使用しない。 / “1421818 - Stop using Direct2D with WebRender” https://t.co/3nmrH5hm3A"
Rockridgeさんのツイート: "Firefox 64をターゲットにしているQuantum Renderだが、その時点でデフォルト有効化されるのは、NVIDIAのディスクリートGPU+Windows 10の環境だけらしい。Mozillaの試算ではリリース版ユーザー… https://t.co/L3neo6aTCq"
Rockridgeさんのツイート: "Fx61:Quantum Renderの有効化は段階的に行われる見通しであり、その際、gfx.webrender.all.qualifiedの設定が用いられる。 / “1455696 - Pref for qualified W…” https://t.co/CB0ABKyyyg"
Rockridgeさんのツイート: "Fx62:Quantum Renderを有効化した際、無駄なRendererスレッドが発生しないようにした。 / “1469028 - Too many "Renderer" threads” https://t.co/LZgdvKqP1a"
Rockridgeさんのツイート: "Fx63:Quantum Renderが有効化されるGPU環境を、おおむねNVIDIA Tesla以降に限定した。 / “1478150 - Restrict webrender qualified to modern nvid…” https://t.co/i8Rml3jRpm"
Rockridgeさんのツイート: "将来的にFirefoxのグラフィックスエンジンとなるWebRenderのアーキテクチャを解説した記事。WebRenderはDisplay Itemと1:1で対応するPrimitiveを生成してレイヤーに割り当てるが、レイヤーのコン… https://t.co/mKVGtkWJZG"
Rockridgeさんのツイート: "WebRenderでは従来のレンダリングエンジンが行っていたlayout/invalidation/painting/compositingの処理のうち、painting/compositingの区別をなくし、すべてをウィンドウに… https://t.co/TFk8Y76rSo"
Rockridgeさんのツイート: "WebRenderの解説の前段階として、Geckoのグラフィックスパイプラインを紹介している。DOMツリー -> フレームツリー -> ディスプレイリスト -> レイヤーツリーの流れで処理されていき、compositorがレイヤー… https://t.co/i9ZT4IUgcB"
Introduction to WebRender – Part 1 – Browsers today – Mozilla Gfx Team Blog
Rockridgeさんのツイート: "WebRender(Quantum Render)について詳細に解説した記事。従来のpainting/compositingの区別を取り払い、GPUを活用してスクリーン全体を描画することで常時60fpsを実現する。無駄な描画処理を… https://t.co/0PNod5UgwI"
Makoto Kato ︎︎さんのツイート: "webrenderのいろいろ話を聞いてるけど、rustcのhack必要な話多すぎて、LLVM万能じゃないって感じしてる"
Rockridgeさんのツイート: "WebRenderのドローコール(画面に描画を行う際に呼び出すGPUに対する命令)が1か月前と比べて2分の1から3分の1に減少し、パフォーマンスが大幅に向上したそうだ。 / “WebRender newsletter #20 –…” https://t.co/y3RwSwW7ox"
Rockridgeさんのツイート: "Fx64:Nightlyチャンネルで、NVIDIA Tesla以降のGPUを搭載したWindows 10環境(バッテリー非搭載)においてQuantum Render(WebRender)がデフォルト有効化された。参照:… https://t.co/A71dX96TwI"
Rockridgeさんのツイート: "Firefox Nightly 64のユーザーのうち約17%がQuantum Render(WebRender)有効化の対象になっているという。 / “WebRender newsletter #22 – Mozilla Gfx…” https://t.co/NUll274gfB"
Rockridgeさんのツイート: "Firefox 64リリース版の一部環境でQuantum Render(WebRender)をデフォルト有効化する計画は、ブロッカーバグが多いため、実施できるか不透明な状況になってきた。 / “WebRender on in F…” https://t.co/28nJhr9a6g"
Rockridgeさんのツイート: "WebRenderはフレームごとにすべてを再レンダリングするが、paintingとcompositingを分離しないので動的ページでは高速になる。ただ、複雑な静的ページもあるので、描画命令の束をキャッシュしておき再利用する。 https://t.co/gZeeclLnbq"
Rockridgeさんのツイート: "WebRenderは、今のところ、Webページのレンダリングに求められるグラフィックスプリミティブを全面的にサポートするには至っていない。そこでフォールバックの仕組みとして"blob images"がある。 / “WebRend…” https://t.co/Q7EAtVSDtr"
Rockridgeさんのツイート: "WebRenderではプリミティブを2グループに分け、処理をまとめやすいグループでは積極的にプリミティブをまとめてGPUの活用を図っているとか。 / “WebRender newsletter #31 – Mozilla Gfx…” https://t.co/5wJmgxDyEW"
Rockridgeさんのツイート: "2018年11月17日時点で、WebRenderはFirefox 67リリース版でのデフォルト有効化を目標としていた。もっとも、ブロッカーバグが多く、間に合うかどうか微妙な様子。 / “Google グループ” https://t.co/ABlWYQpHR5"
Rockridgeさんのツイート: "Windows 10上のNightlyチャンネルで、一部のAMD GPUもWebRenderデフォルト有効化の対象に含まれるようになった。Graphics Core Next第2世代以降であればOKな模様。 / “1523823 - Enable WebRender by default on modern (CIK, VI, GFX9) desktop AMD hardware on nightly” https://t.co/WGKsTyULXt"

Quantum DOM

Rockridgeさんのツイート: "Quantum DOMの一環として、イベントキューを処理の優先度(High/Normal/Low)に応じて3つに分割する。これによりページの描画やユーザー入力の処理をネットワーク処理に優先させるといったことが可能になる。 https://t.co/ejpbe9tH3z"
Rockridgeさんのツイート: "Quantum DOMはcontentプロセス内のメインスレッドが処理するタスクについて、3段階の優先順位を付ける。また、タブグループごとにタスクをまとめて独立したスレッドを割り当て、フォアグラウンドタブの処理を優先する。 https://t.co/ZLKNOFf3LA"
Rockridgeさんのツイート: "Fx57:NightlyチャンネルにQuantum DOMの初期実装がデフォルト無効で投入された。参照:https://t.co/nEDt4NSRAz / “Quantum Flow Engineering Newsletter…” https://t.co/SJq9f8wlCB"
Rockridgeさんのツイート: "Fx61:Quantum DOMのスケジューラシステムは、Fx57においてデフォルト無効で投入されたものの、結局お蔵入りに。参照:https://t.co/nEDt4Oass7 https://t.co/mY8GXkdWwi https://t.co/f9rInjSRGU"

なかのん&マジックさんのツイート: "Firefox Quantumのパフォーマンスチューニング、普通に、メソッドのインライン化とかvirtual callの削減もやって向上させてます。 https://t.co/cXOAUDrjQj"
なかのん&マジックさんのツイート: "意外とref-countableなポインタのaddref/releaseもprofileに引っかかってた。"
Rockridgeさんのツイート: "Quantumプロジェクトにおいて想定されているローエンドのハードウェアは、Acer Aspire Eだという。15.6インチのフルHDノートブックで、Core i3-7100U(Intel HD Graphics 620)・4G… https://t.co/B14CZfoab5"
Rockridgeさんのツイート: "Mozilla HacksでQuantumプロジェクトを解説する連載が始まった。第1弾となる本記事は、ブラウザのレンダリングエンジンの処理について述べ、CPUのシングルコア性能が停滞する中、マルチコアの活用が重要と説く。 https://t.co/2Tugflzd9h"
Rockridgeさんのツイート: "MozillaはQuantumプロジェクトの成果を測るための手法についても研究中だ。ユーザーの体感を重視し、利用頻度の高い分野におけるWebページを閲覧する際の、読込速度、動きのスムーズさ、応答性を柱に据える。 / “Desig…” https://t.co/EvBDfMTf3d"
Rockridgeさんのツイート: "Firefox Quantumではすべての入力処理でAsync Pan/Zoom(APZ)が有効化されており、スクロールがJavaScriptスレッドによってブロックされない。ただし、キーボード入力に関してはAPZが無効になる場面… https://t.co/gkSmNVHaNV"
Rockridgeさんのツイート: "Firefox QuantumのプライベートブラウジングとChrome v61のシークレットモードを比較したところ、200サイトのページ読み込みテストでFirefoxが2.4倍高速との結果になった(Disconnect調べ)として… https://t.co/VX57HyrPkr"
Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、gfx.webrender.allの設定をtrueにすればQuantum Renderが有効化されるようになった。 / “Update your prefs to get WebRender…” https://t.co/4D4kZ2Fe60"
dynamis (でゅなみす@もじら)さんのツイート: "Firefoxの次世代ブラウザエンジン開発Quantum周りを見ていると顕著だけど、イマドキもうアルゴリズムを変えるとかSIMD命令を使うとかじゃ無くてGPUのシェーダなどに従来CPUで処理していたものを丸投げする実装への切替で圧倒的な性能向上を果たすのがトレンドですかね"

DOM

Mantaroh@r?さんのツイート: "DOMの世界において、1つのDOMが常に1つの矩形フレームで描画できるというわけではないので、Mozilla では continuation frame という機能を使ってる。例えば幅で改行された要素などは1つの矩形フレームで表現できない。 AAAAABBBBBB BBBCCCC… https://t.co/fMiDGyjku2"
Mantaroh@r?さんのツイート: "改ページの時も同じ。Gecko では複数フレームに分割される際、先頭のフレームを primary frame、それ以降に続くフレームを continuation frames と呼んでる。"
Mantaroh@r?さんのツイート: "この primary frame は DOM(nsIContent)が挿入された通知を受けて、フレームコンストラクタ(nsCSSFrameConstructor)が作成する。一方 continuation frames は主にリフロー中、リフロー時に要素がレイアウト制限いっ… https://t.co/ECspqcT1ef"
Mantaroh@r?さんのツイート: "Pagination の仕組みを理解しようとしたら、ここから入れと書いてあったもので。ドキュメントが古いからコードとにらめっこしながらだけど・・ 元ネタ:https://t.co/H0CJ69akNs"
Gecko:Continuation Model - MozillaWiki
Mantaroh@r?さんのツイート: "リフロー中に作成された continuation frames を特に fluid continuations と呼ぶ。1つの要素の continuation frames は2重連結リストで作られているので nsIFrame::GetNextContinuation/nsIFr… https://t.co/2ngca6W0aB"
nsFrame.cpp - mozsearch
Mantaroh@media=printさんのツイート: "分割されるフレームは要素による。page break によって分割されるドキュメントは nsSimplePageSequence。line break によって分割されるインライン要素は nsBlockFrame 等。"
Mantaroh@media=printさんのツイート: "overflow が指定されページに収まらない要素などは例えそのフレームが完成したとしても、フレーム分割が必要になってくる時がある。このフレームは overflow incomplete と呼ばれ特別な continuous frame を保持する。"
Mantaroh@media=printさんのツイート: "overflow incomplete は、非表示で親内部に特別なリストとして保持される。(詳細は nsContainerFrame.h 参照)"

4x

Rockridgeさんのツイート: "Fx49:inner documentのリフロー処理を非同期化することでパフォーマンスの向上を図った。 / “881832 – Make inner document reflow asynchronous to improve…” https://t.co/MsYxTgCMaf"

5x

Rockridgeさんのツイート: "Fx55:Windows 8以降でダブルバッファリングの技法を用いて描画処理のパフォーマンスを向上させた。 / “1352163 - Use double buffering for D3D11 window backbuffe…” https://t.co/guc3hPpFzu"
Rockridgeさんのツイート: "Fx55:table要素のフレームごとにディスプレイリストのアイテムを生成することで、処理のパフォーマンスを改善した。 / “929484 - Make HTML table frames (including row/cell…” https://t.co/ahqUjpQBQQ"
Rockridgeさんのツイート: "Fx55:border-radiusの有無についての情報をキャッシュしておき、これを参照することで、display listの構築処理を高速化した。 / “1367906 - Avoid some overhead for ba…” https://t.co/ri56HSMOzk"
Rockridgeさんのツイート: "Fx58:ターゲットとなる要素が表示領域外にある場合、Transformのアニメーションを抑制することで、消費電力を低減。 / “1190721 - Throttle transform animations that the …” https://t.co/KrrM7F6ZkQ"
Rockridgeさんのツイート: "Fx59:Advanced Layersの機能が拡張され、1つのレイヤー内に複数のテクスチャがある場合も処理が可能になった模様。 / “1420674 - Support tiling in Advanced Layers” https://t.co/nqiMBfMnCv"
Rockridgeさんのツイート: "Firefox 58で導入されるOff Main Thread Painting(OMTP)の解説記事。別スレッド化されるのはRasterizationの部分で、当該処理の時間を短縮し、FPSを向上させる効果があるそうだ。 https://t.co/CXNirEQq9Y"

6x

Rockridgeさんのツイート: "Fx60:Mac版で、Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みがデフォルト有効化。 / “1430793 - Enable parallel paintin…” https://t.co/uhiWyO0p2N"
Rockridgeさんのツイート: "Fx61:Webページが複数のスタイルシートを利用している場合、それぞれのCSSのパース処理を並列的に行うようになった。 / “1346988 - stylo: Consider parallelizing CSS parsing” https://t.co/2fkIC27bAb"
Rockridgeさんのツイート: "Fx62:Nightlyチャンネルで、直近の5つのタブを対象としてレイヤーツリーのキャッシュを保持するようにした。キャッシュがヒットした場合、タブの切り替え表示がスムーズに行われる。 / “1176019 - [e10s] Ke…” https://t.co/WpcwrSAKGx"
Rockridgeさんのツイート: "Fx62:ペイントスレッドがDisplay ListやFrame Layerの構築をブロックしなくなったことで、パフォーマンスが改善された。 / “1462411 - Try to FlushAsyncPaints in Cli…” https://t.co/jUQUAZYMM9"
Rockridgeさんのツイート: "Fx62:Nightlyチャンネルでテストされていたレイヤーツリーのキャッシュ機能は、いったん無効化された。見つかった問題を修正して、再度の有効化を目指す。 / “1465106 - Disable tab layer cach…” https://t.co/K0nRjGfl2C"
Rockridgeさんのツイート: "Fx62:フレームの再描画が必要な場合にだけレイヤーを生成するようにし、処理速度を改善するとともに電力効率も高めた。 / “1467619 - Fix our motionmark_animometer Design score” https://t.co/6Yfu5l39WY"
Rockridgeさんのツイート: "Firefox 62以降、Zone/Compartment/Realmの3分類が用いられるようになった。1つのZoneはおおむね1つのタブに対応し、複数のCompartmentを持つ。1つのCompartmentは複数のRealm… https://t.co/kdPLEEyRd9"
Rockridgeさんのツイート: "Fx61:リリース版のユーザーを対象にRetained Display Listsが順次有効化されていく。リリースから2日後に25%を対象に提供を開始。さらに1週間後に50%に引き上げ、最後に100%となる。参照:… https://t.co/rqu68Peuie"
Rockridgeさんのツイート: "Fx63:NightlyチャンネルでQuantum Renderのテストが開始された。NVIDIA製GPUを搭載したWindows 10環境(バッテリー非搭載)の50%が対象となる。参照:… https://t.co/2ycd4spXTf"
Rockridgeさんのツイート: "Fx63:JavaScriptによってWebページ内に入力フィールドが次々に挿入される場合、レイアウト処理を遅らせることでハングが生じるの防ぐ。 / “1456843 - HTML loading hangs for minut…” https://t.co/70dKN4NfJH"

@rockridge07

Rockridgeさんのツイート: "GeckoのLayout EngineモジュールからWeb Paintingモジュールを分離した。Web Paintingのモジュールオーナーは Matt Woodrow氏。 / “splitting painting cod…” https://t.co/8womLPPkFI"
Rockridgeさんのツイート: "2017年5月18日時点のFirefox Nightlyを同年4月1日時点と比較すると、ブラウザウィンドウの最初のフレームの描画までが1232.84ミリ秒から849.66ミリ秒に、about:homeの検索ボックスの描画までが18… https://t.co/uTATjBS2yr"
Rockridgeさんのツイート: "MozillaはOff Main Thread Paintingと呼ばれる非同期描画機能を開発する模様。スレッドに挙げられている文書はパーミッションがないと閲覧できない。 / “Off Main Thread Painting …” https://t.co/2ob443qNPE"
Off Main Thread Painting Design Doc - Google グループ
Rockridgeさんのツイート: "HTML文書に指定された外部リソースを読み込むにあたって、処理のブロックが起きないことが重要。本記事では投機的パース、defer、async、プリロードとそれらの差異について説明が行われている。 / “Building the …” https://t.co/tINgrwcr8V"
Building the DOM faster: speculative parsing, async, defer and preload ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "実装は完成していないものの、ServoのHTMLパーサであるhtml5everのパース処理が非同期化され、投機的なパースも行えるようになりつつある。 / “Off main thread HTML parsing in Servo” https://t.co/HafjYjhuAz"
Rockridgeさんのツイート: "Geckoのグラフィックス処理部分では共有メモリの仕組みが頻繁に利用されているが、compositorが独立したGPUプロセスに分離されることに対応すべく処理に変更が加えられたらしい。 / “An Introduction to…” https://t.co/hwSonjETno"
Rockridgeさんのツイート: "Servoはレイアウト処理の並列化を行うようになっているが、この機能は将来的にGeckoにも取り込まれる模様。 / “Oxidation2 - MozillaWiki” https://t.co/UoEOxoFSbZ"
Rockridgeさんのツイート: "Retained Display Listsはディスプレイリストを必要な箇所のみアップデートすれば足りるようにする。Firefox 58 BetaでのA/Bテストの結果によれば、16ミリ秒を超える「遅い」Painting処理を30… https://t.co/a2SXIVhmLd"
Retained Display Lists – Mozilla Gfx Team Blog
Rockridgeさんのツイート: "Firefoxのグラフィックス関係で用いられる略語や専門用語について。 / “Platform/GFX/Jargon - MozillaWiki” https://t.co/RfRsyHMFek"
Platform/GFX/Jargon - MozillaWiki
Rockridgeさんのツイート: "Mozillaは、Windows版の一部環境でQuantum Renderをデフォルト有効化した後、対象となるWindows版の環境を拡大するとともに、Android版とMac版でもデフォルト有効化を目指す。 / “Platfo…” https://t.co/cO0gYZ7MfD"

@d_toybox

なかのんクエストさんのツイート: "nsRangeのプロファイルへの出現具合を見てると、nsRangeというか、DOM Rangeを内部処理で使うのはそもそもアカンっていう結論しかなくなってくるぞ。"
なかのんクエストさんのツイート: "ただ、nsRangeはmutation observerで常にvalidなレンジを保証してるんで、使い勝手は良いし、変なバグは発生しにくいんだよな。単純にシンプルなクラスや構造体と置き換えられる場所とそうじゃない場所がある。"
なかのん&マジックさんのツイート: "StaticRangeが実装できたら、Selectionの全rangeをStaticRangeとしてedit actionの開始時に保存しておいてselectionは削除してしまうと全体的に高速化できそうな?"
なかのん&マジックさんのツイート: "nsRangeがvalidな位置を維持するコストが思ってたより悪そう。"
なかのん&マジックさんのツイート: "お、<input>.valueのセット、急に高速化してる。何が効いてるんだろう。"
なかのん&マジックさんのツイート: "最近私の入れたパッチ群はデスクトップマシンだと、せいぜい合計で1ms速くやるかなって程度だったけど、2msぐらい一気に速くなってる感じある。"
なかのん&マジックさんのツイート: "XPCOMでひたすら抽象的な構造にして柔軟性もたせようとされていたMozillaのコードがパフォーマンスの追求でどんどん依存度を高めて行くの、時代の移り変わりを感じる。"
なかのん&マジックさんのツイート: "Firefox Nightlyで"Slow Tracking Elements"を"Always"にすると笑えるぐらいにページの読み込みが高速化するな。Geckoの速度自体よりも、アクセス解析のGecko利用時のパスの遅さに問題があるのかよく分かる。"
Macheriさんのツイート: "Illustratorの「文字に下線設定」で見慣れてたからAdobe XDで同じように文字に下線設定つけた時、「g」とか「y」とか下にはみ出るアルファベットのところ線きれて気持ち悪かったんだけど、webで下線指定した時も線切れるんだね。Illustratorがおかしかったのか。どうなのか🤔… https://t.co/9Zp0MOhbTF"
なつき@コーディングスクール体験開催さんのツイート: "| x・) oO(ここ数年のモダンブラウザーで下線が切れるのは、アルファベットのディセンダ部分が見づらくならないようにという配慮だそうです。Illustratorはここ数年下線機能に手が入っていないためそのような機能がなくただの直線なのだと思います)… "
なかのん&マジックさんのツイート: "あれなぁ、フォントに依存するんだと思うけど、Windowsで見やすいと思えないんだよなぁ……"
なかのん&マジックさんのツイート: "下線の1px上がグリフの横線の場合、下線は消えずに線が太く見えるBlinkの実装も意図的なのかしゃーなしなのか、バグなのか。"
なかのん&マジックさんのツイート: "文字が大きめかつ、ベクターフォントで、文字がアルファベットなら確実に綺麗だとは思うんだけど、やっぱり日本語のリンク見てると、これ、綺麗って思えないなぁ。"
なかのん&マジックさんのツイート: "ASCII文字でもアンダースコアの視認性が皆無になるのか……"
Yosuke HASEGAWAさんのツイート: "ブラウザーの脆弱性探すなら、エンジン載せ替えて実装が枯れてない今がチャンスですよ。"
なかのん&マジックさんのツイート: "refcountに頼らないといけない時点で色々と人類は敗北してるんですよ。"
なかのん&マジックさんのツイート: "正直、アプリを開発するのを生業とした時に、やらなくて良い`foo++`がパフォーマンス的に問題になる日が来ると思ってなかったし、必要なそれをし忘れてるのがセキュリティホールになる仕事になるとは思ってもなかったです、はい。"
なかのん&マジックさんのツイート: "ブラウザ開発ってそれぐらいピーキーなことやってるので実に楽しい。"
なかのん&マジックさんのツイート: "なんでもかんでも、ライフタイムを保証しておけば良いってのはダメってのは昔のFirefoxとChromeのベンチマークの結果の差が語っているという(それだけでもないけど、もちろん)。"

Mantarohさんのツイート: "Gecko へ screenLeft / screenTop の実装が入ったというお話。 https://t.co/eMX6dWaDOR"
[cssom-view] Window#screenLeft/screenTop · Issue #1091 · w3c/csswg-drafts

Google

さねさねさんのツイート: "Blinkのprerender機構ってIntent to depracate出てたのか https://t.co/jdvOZQY0W8"
Rockridgeさんのツイート: "Chromeのレンダリング処理の概要が書かれている。Quantum Renderの設計にあたり、Chromeをよく研究していることがうかがえる。 / “A Quick Overview of Chrome's Rendering…” https://t.co/UAiLGa8nkx"
Rockridgeさんのツイート: "将来のBlinkではスタイルの再計算とレイアウトツリーの構築をそれぞれ独立したステージに分け、前者は要素のスタイルがアニメーションなどでダイナミックに変更される場合でも効率よく処理できるものにしていく。 / “Next Gene…” https://t.co/RiR6ZFcCTd"
hadakadenkyuさんのツイート: "chromeでflexで画面を2分割するとブラウザ幅が奇数の時に真ん中に1px間が開く。Firefoxだと大丈夫。小数点の関係だろうけど。バグだろこれ。"
Rui Ueyamaさんのツイート: "最新のChromeのレンダラ、微妙だけどかなり見た目の印象が変わる変更が加わってる気がする。下線、前はこういうふうに途切れずに、文字にかぶって表示されていたはず。… "
Kentaro Haraさんのツイート: "Blinkのドキュメントが少なすぎる・・・というご要望にお答えして、Blinkアーキテクチャが全体としてどう動いてるかを(Blink開発者向けに)解説してみました。 https://t.co/xojjmLjfqa"
How Blink works - Google ドキュメント

DOMJIT

webkit/Source/WebCore/domjit at master · WebKit/webkit
webkit/Source/WebCore/ForwardingHeaders/domjit at master · WebKit/webkit
Filip Jerzy Pizloさんのツイート: "DOMJIT is a thing! @Constellation https://t.co/MhrVnCa7yb"
172098 – [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
162916 – [DOMJIT] Introduce DOMJIT::GetterSetter to tell JIT information
164006 – [DOMJIT][CSSJIT] Share code with DOMJIT
小倉唯さんのツイート: "これだいぶ完了まで近づいてきた. https://t.co/QplPWtdBd8 DOMJIT やっててよかった..."
171637 – Hoist DOM binding attribute getter/setter prologue into JavaScriptCore taking advantage of DOMJIT / CheckDOM
小倉唯さんのツイート: "DOM getter, 最初に type check するけど, その check, getter lookup の段階で大体 IC がもうやってる. type checking 部分を JSC にわかるように切り出すと, 大抵さっくり削除できる"
小倉唯さんのツイート: "massive code reduction と optimization のチャンスだ"

feDropShadow

渋川よしきさんのツイート: "最近、CSSとかでドロップシャドウとか簡単に出せるけど、ピクセル単位で自分で計算して出すときの良いアルゴリズムとかどこかにあるのかな"

@d_toybox

フレームワーク

なかのん&マジックさんのツイート: "ブラウザ開発者としては、フレームワーク使って開発しておきながら、テストのコストとかなんだろうけど、それをアップグレードしていかないWebサービス提供者には破滅して欲しい。"
なかのん&マジックさんのツイート: "フレームワークにバグがあるパターン、一番有害。"
なかのん&マジックさんのツイート: "良いフレームワークはUAの判定を最小限にしてるはず。そうじゃないと、ブラウザ側のバグ修正や、標準仕様の変更で簡単にバグる。"
なかのん&マジックさんのツイート: "基本的にはfeature detectionかデフォルトアクションの結果を検査しての動作切り分けになるので、Webアプリのフレームワーク作りは相当にプログラミングのセンスを要求されそう。ちょっと、やれる自信無い。"
なかのん&マジックさんのツイート: "そーいや、日本人でフレームワーク書いてる人って知らないな。居たら是非しゃべってみたい。酒でも飲みながら。"
なかのん&マジックさんのツイート: "ブラウザは、エンジン部分の競合は標準仕様が特定のOSや特定の実装者の優先順位に左右されないように複数存在することは絶対必要なんだけど、より互換性を高めて、ユーザーレベルでは、好きなUIで選ぶ事ができる状況にならないとなー。"
なかのん&マジックさんのツイート: "とりあえず、Chromeのシェアがもっと下がらないと、不健全ってところまでは来たな。Chromeのバグや、仕様では定義されていない部分の動作に依存してるサイトの互換性問題の報告が無視できないレベル。"
なかのん&マジックさんのツイート: "結局、IEの時代と同じ事を繰り返してる。"
なかのん&マジックさんのツイート: "しかも、今はフレームワークがあって、それが依存してる場合の影響がデカすぎて、より難しくなってる。"
なかのん&マジックさんのツイート: "Google Closure、feature detectionとUA名チェックが混在しまくってるのか……"
なかのん&マジックさんのツイート: "ブラウザの動作変更して仕様も変えてフレームワーク開発者にも対応してもらって、ようやく何が起きるかというと、大量のバグってるデキの悪いサイトが動くようになるっていうの、色々と間違ってる感あるね……"

histric

histric-1

なかのん&マジックさんのツイート: "@izaten あの頃と違うのは、もはや新しいエンジンの登場は、新規開発にかかる金額考えるとあり得ない。開発停滞したら最後。"
なかのん&マジックさんのツイート: "ブラウザは、非互換が分かった場合に、仕様が有る場合は仕様通りに動いていない方が、仕様が無い場合はベターな方か、単にシェアの大きな方に合わせた挙動を仕様書に明記しつつ統一したりするんで、なんか判断するなら仕様を確認しつつ、仕様と違う動作のブラウザにハックを用意しないとワヤですね。 https://t.co/JeiQejIf6H"
なかのん&マジックさんのツイート: "仕様の方が技術的に良くなくて、仕様が更新されるたち悪いケースも無くはないけど。"
なかのん&マジックさんのツイート: "@momdo_ 仕様が無い所をよしなにやっていくつらみ……"
なかのん&マジックさんのツイート: "@momdo_ CSS仕様書を書く人達の語彙力すごい("
なかのん&マジックさんのツイート: "Firefoxのマスターパスワードが未だにモーダルダイアログなのは最悪なUIだけど、これ、どうしようもないよなー。タブモーダルなもの作ってもWebサイトの作った偽物との見分けが完全につかなくなるし。"
なかのん&マジックさんのツイート: "開発手法はどうか知らないけど、うちのライバル製品の実装に関しては正攻法じゃなくて「うぬぬ」ってなることがあるなぁ。"
なかのん&マジックさんのツイート: "今どき、モバイル版とデスクトップ版でURLが違うWikipediaはどうにかならんの?"
なかのん&マジックさんのツイート: "wheelDeltaを未だに使ってるクソなサイトがまだ大量にあるのか…… / Chrome Platform Status https://t.co/XKoQpA0Xyp"
Chrome Platform Status

histric-2

なかのん&マジックさんのツイート: "Googleからのリクエストで伝統的な挙動を捨てて、後付け標準仕様にあわせた動作に変更する作業やってると、Chromeのバグ見つけて報告する事多いんで、本当に多様性って大切だと思わされる。"
なかのん&マジックさんのツイート: "というか、世界中のWebアプリ開発者の多くが、このChromeのバグ知ってるやろっていうのを見つけても、報告が見当たらなくて新規に報告することになったりしてて、本当に絶望感漂う。"
なかのん&マジックさんのツイート: "よし、やっと、WheelEvent.deltaModeの闇、Googleの仕様の編集者にキャッチしてもらえた。"
なかのん&マジックさんのツイート: "なんかこう、スクロール量をより精度高くとれるようにブラウザ各社が仕様を策定したのに、多くのケースでChromeがpixel値で返すってだけで、値をピクセル値と仮定して処理するWebアプリ開発者が多すぎるの、本当にtry & errorでやってるアレな開発者だらけなんだなぁと思わされた。"
なかのん&マジックさんのツイート: "この件、Safariは、macOSで動いてる場合、macOSのネイティブイベントがピクセル値でスクロール量を知らせてくるのでどうしようもないのよね。この件は本当にChromeのWindows版でのいい加減な実装が招いちゃった悲劇。"
なかのん&マジックさんのツイート: "GeckoはWheelEventの実装のときに、全部の処理を書き直して、各OSのネイティブイベントの情報をほぼロスレスでWebアプリに伝えるようにしたんだけど、Chromeの開発者は既存のパスに最小の変更で、見た目、WheelEventに対応したように見せたことでこんなことになってしまった。"
なかのん&マジックさんのツイート: "なので、Windowsのシステム設定で、ホイールのスクロール量をページ単位にすると、Chromeでもそういったいい加減なWebアプリはバグる。なにしろ、Windows版Chromeは、ページ単位のスクロール設定の場合にはWheelEvent.deltaModeでDOM_DELTA_PAGEを返してて、正しく実装してるから。"
なかのん&マジックさんのツイート: "念のために解説しておくと、Windowsは、行単位でのスクロール量か、ページ単位でのスクロール量がネイティブイベントを通知してくる。macOSでは高解像度のホイール搭載マウスや、トラックパッドからはピクセル単位、古いノッチ単位で回転するホイール搭載のマウスなら行単位を通知してくる。"
なかのん&マジックさんのツイート: "Geckoはこの辺、完璧に近い形でロスレスでWebアプリに伝えるようにがんばった。本当にがんばったのよ?"
なかのん&マジックさんのツイート: "ロスレスで伝わらないケースは、主に小数点の丸め誤差の問題なので、普通のアプリでは問題にならないレベルです。"
なかのん&マジックさんのツイート: "興味ある人は、大昔に書いた、こちらのスライドも参照してみてください。 https://t.co/dZYIwH8Rt6"
マウスホイールイベント処理マニアックス
一ノ瀬 いろはさんのツイート: "Qiita とかにバグの内容と再現方法と回避方法まで書いて有っても報告がされてないケースの悲しみは大きい。… "
なかのん&マジックさんのツイート: "誤解なきように書いておくと、特定の開発者がバグ報告してなかったとかいう話ではなく、世界中の様々なレベルの開発者が最多シェアを持つChromeにバグ報告していないって点ですわ。つまり、そういう流れが業界全体に出来上がっていないと言えるかと。"
Makoto Kato ︎︎さんのツイート: "qiitaでなんとかの闇って書かれてるの、大概バグ報告してないよね"
なかのん&マジックさんのツイート: "Qiita、調べ物で引っかかって来た時以外には読んで無いけど、良くも悪くも殴り書きって感じはある。"
渋川よしきさんのツイート: "タイムマシーンがあったら、Windows APIのスクロールイベント、行単位じゃなくてピクセル単位にしてくれってビル・ゲイツを説得しに行きたい。"

histric-3

なかのん&マジックさんのツイート: "HTML直書きなんてするもんじゃねえという意見が多々あるけど、静的なページ公開したいときに手書きは全然有りでは?と思っちゃう。CMSの見た目をいじる方が難度高くない?"
なかのん&マジックさんのツイート: "今、仕事で関わってる所だと、フレームワークがバグってるから自分達では修正できないとか、どんな(自主規制)なんだよとか思ってしまう。他人の作った物を使ってそれなりのもの作っても、トラブルへの対応能力も無いとね。"
なかのん&マジックさんのツイート: "WindowsのAltGr周りのイベントを、Googleのエンジニアさんが提案してきた新しい挙動にするの、WindowsのAPIでは気軽に実装できるものではあるし、なんか条件文書いてて嫌になってくる。歴史的な事情ってつらい。"
なかのん&マジックさんのツイート: "結果論だけど、今のVirtual Keycode見ると、AltGrに1bit割り当てるのが正解だっただろうなと。"
なかのん&マジックさんのツイート: "ヨーロッパのWeb開発者さんは、やっぱり、AltGrの挙動についてバグ報告してくれるんで、裏を返せば、苦しめられてるんだろうなぁ。"
なかのん&マジックさんのツイート: "私がKeyboardEvent等でmodifier周りの進化した仕様を実装・検証するまでは、WebアプリがAltGrの状態を取得不能だったんで、色々と無理ゲーな要求もあったんだろうなぁ。"
なかのん&マジックさんのツイート: "ChromeもSafariもこの辺は無事、追随してくれたので、まあ、みんなが幸せになれた感じ(互換性問題はありそうだけど、Firefox/Geckoが先行した部分を後からシェアの大きいブラウザのいい加減な実装で台無しになることは無いと信じたい)。"
なかのん&マジックさんのツイート: "WheelEventなんかは、常にdeltaModeがDOM_DELTA_PIXEL前提のクソすぎるアプリを作った一部クソ開発者のせいで、仕様自体を修正しようという話になってて本当にクソ。"
なかのん&マジックさんのツイート: "しっかりテスト出来ないクソがChromeでもDOM_DELTA_PAGEのケースがあることに気付いてれば問題なかったんだけど、そもそも、それが分かる人ならやらかさないレベルで低レベルな話なんだよな。"
なかのん&マジックさんのツイート: "そもそも、まともなリファレンスならWheelEvent.deltaYの値が何かとか、ちゃんとWheelEvent.deltaModeと共に説明してるはずで、それが出来ていないクソリファレンスが存在したのか、文書読めないクソのせいなのか、原因が知りたくはある事案。"
なかのん&マジックさんのツイート: "いやほんと、この件ほど、Web開発者に失望したたことは未だかつて無いよ。あれだけ用意周到に色々とやったのに。"
なかのん&マジックさんのツイート: "WheelEventでのChromeの問題を見るに、また、今までの私の経験からしても、「生データ」へのアクセシビリティは非常に重要で、ロスレスではない抽象化はアプリ開発においてやってはいけないミスだと確信した。"
なかのん&マジックさんのツイート: "「これだけしか必要無いから、これだけの情報でいいでしょ?」ってやると、だいたい、何年後かにその削られたデータが必要になる。長いことメンテするアプリを書いてる人は要注意。特に、メンテを評価しない現場では、ロスレスで抽象化しとかないと危険。"
なかのん&マジックさんのツイート: "長いことブラウザ屋さんやってるけど、未だにアクセシビリティツールがどうやってコンテンツを取得してるのかは知らない……"
なかのん&マジックさんのツイート: "なんとなく、各OSのa11y APIと、DOMへのアクセスの両方だと思ってたけど、前者だけなのかな?"
hadakadenkyuさんのツイート: "ページ右下の「トップへ戻るボタン」はマジでユーザを誰も幸せにしてない例だと思う。効果確かめたことあんの?アレがあることでユーザの離脱率落ちるの?CTR上がるの?継続率UPする?売り上げ上がる?"
なかのん&マジックさんのツイート: "一応、ブラウザベンダに在籍してるものとして、タッチスクリーンデバイスのスクロールに、もっと良い方法が無いか考えてみたけど、あんまり思いつかないんだよな。OSレベルでどうにかこうにかして欲しい問題。"

histric-4

なかのん&マジックさんのツイート: "スマートポインタのrefcountのコストが気になるって、ブラウザのピーキーさ凄いと思いません?"
なかのん&マジックさんのツイート: "ちなみに、管理をミスると即座にセキュリティバグにつながるので、Quantum Flowの前は安全のために掴んどけっていう流れでしたね。割とブラウザの速度のチューニングって、セキュリティに関して無保険車爆走みたいなところあります。"
なかのん&マジックさんのツイート: "私がDOMイベントをやりだしたのって、イベントドリブンなWebアプリにとって、この入り口の互換性の低さはシェアの低いGeckoにとってヤバいって思ったからなんだけど、いざやりだすと、BlinkとWebKitではもだいぶ違うんんだよね(そもそもBlinkでもプラットフォーム変わると結構違うけど)。"
なかのん&マジックさんのツイート: "ネイティブの入力イベントを抽象化したDOMイベントの場合、Webアプリ開発者さんは少なくともデスクトップではWindowsとmacOSの両方でテストすべき状況は続いてるし、もっというと、例えばWheelEventだと、Windowsはページ単位のスクロールかどうかのシステム設定で変わるし、macOSだとデバイスで変わる"
なかのん&マジックさんのツイート: "後者は未だに条件がよく分からない。"
なかのん&マジックさんのツイート: "USBの仕様に全然詳しくないのでなんとも言えないけど、Appleは自社のデバイスは認識時に特別扱いするようになってるのかなってのは思うなぁ。キーボードやマウスのテストしてると。"
なかのん&マジックさんのツイート: "Macユーザは同等なハードで、Apple純正か、サードパーティー製か悩んだ時はApple製の方が間違いは無いってのは感じるな。そんな市場は嫌なので個人の金を投げ入れたいとは思わないけど。"
なかのん&マジックさんのツイート: "XULアドオンって色んなタイミングを捕まえられるように、さまざまなobserverになり得たんだけど、これってmutation event listenerが大量にあるイメージで、呼び出し時にセキュリティを確保しつつ安全に全obseverに通知するってのがコスト高だったのには削除時にパフォーマンス調べてびっくりした。"
なかのん&マジックさんのツイート: "特にメモリのアロケーションが遅いmacOS版が深刻だった記憶。"
なかのん&マジックさんのツイート: "XULアドオンが無くなってどうしたかというと、そういうobserverをC++なら個別のクラスのnon-virtualなメソッドを直接呼び出すようにして大幅にランタイムコストを削減してる。綺麗なコードなのは前の抽象化されたobserverなんだけど。"
なかのん&マジックさんのツイート: "私のやってるeditorだと、検索バーが未だにobserverをJSで実装しちゃってて、これをどうにかすればもっとスッキリするんだけどな(ランタイムコストは検索バーが表示されてなかったらほぼゼロになるようにはしてる)。"
なかのん&マジックさんのツイート: "前にも書いたけど、場所によってはスマートポインタのrefcountの上げ下げすら問題になるのがブラウザっていうアプリなんで、observerって本当に厄介。"
なかのん&マジックさんのツイート: "nsCOMPtrとRefPtrと二種類あるの、いい加減にどうにかならないかな。Foo(RefPtr<Bar>& aBar)みたいにすると、nsCOMPtrで掴んでる場合にあかんし、こういうのをいちいちtemplateにしてると今度はバイナリサイズが悪化するし。"
なかのん&マジックさんのツイート: "まあ、 class Foo { RefPtr<Bar> mBar; void DoIt() { DoSomething(mBar); } void DoSomething(RefPtr<Bar>& aBar) { aBar->Boom(); } }; とかメンバを渡されたらあかんのでどっちみちセキュリティは保証されへんか。"
なかのん&マジックさんのツイート: "Rustってこういう所有権の問題、どうしてるのかよく知らない。"
なかのん&マジックさんのツイート: "ブラウザって要するに、このメソッド呼び出したらJS走る可能性があるから、なんでも起こりえるよっていうのが随所にあるので楽しい。"
なかのん&マジックさんのツイート: "Webアプリのパフォーマンスチューニングって当然ブラウザ毎に「このブラウザはこれが遅い」とかあるだろうから、本当に徹底してるWebアプリはブラウザ毎にパス変えてたりとかあるんだろうか。"
なかのん&マジックさんのツイート: "autocompleteの時にchromeがどう動いてるんだろうかと気になってテストしてみたら、InputEventではないinputイベントが発生してる疑惑だこれ……… "
なかのん&マジックさんのツイート: "マイナーブラウザのバグにまで対応しなくても良いんですよ。マイナーブラウザでもテストしておくと、開発者が自覚していない仕様のグレーゾーンがあぶり出される事が多いという点が重要。それを経てリリースされたWebアプリ側にマイナーブラウザ側がバグ修正して対応するのが理想的で誰も損しない。"
いざてんさんのツイート: "実装依存なコードはやめろっていうのは、別にWEBだけじゃなくてコーディングすべてに言えることだと思うの。よく知ってる例ではデータベースとか。"

histric-5

🐾わおん🐾さんのツイート: "ブラウザにベンチマーク機能内蔵してスペックの判定と負荷の許容度の設定を用意してWebサイトと連携しようなどと大変そうな妄想を広げている"
なかのん&マジックさんのツイート: "手遅れ感は強いけど、fingerpintingが……"
なかのん&マジックさんのツイート: "Firefox とChrome のマルチプロセス見てると、GUI アプリのマルチプロセス化は無理矢理感が強くて。かといってIE 方式なのはさらにどうなのかって感じだし。"
CORSAIR JAPANさんのツイート: "PCのメモリをいくら増やしても、あればあるだけメモリを使おうとするアプリありますよね (;_;)… "
なかのん&マジックさんのツイート: "使わんのも変やけどな。使いすぎてもアロケーションの速度落ちるから使い切るのがええわけでもないけど。"
Hideyuki Tanakaさんのツイート: "ブラウザのタブに、負荷が高いやつを色付けするとかあれば、重いやつ閉じればいいやんとかそういう風には言いやすくなる(´・_・`)"
なかのん&マジックさんのツイート: "タブの色が変わったりするの、動画広告と同じ理由でものすごく鬱陶しく感じると思う。"
ゆういちろうさんのツイート: "「わずか0.2秒という高速な処理」 って言うと早そうだけど 「処理に200ms掛かります。」 って言うと遅い気がする…"
なかのん&マジックさんのツイート: "入力イベントまわりやり出してから、人間にとっても1秒ってめっちゃ長いことを知った。"
いざてんさんのツイート: "数十~数百ms読み込みを早くするためにWEBサイトの作りをあれこれ考えるも、お偉いさんの「あれおいてよ、共有のためのボタン」という一言によりソーシャルウィジェットが設置され"
なかのん&マジックさんのツイート: "あれ、asyncにすれば大丈夫。… "
なかのん&マジックさんのツイート: "まあ、アカウント作らないと何もできないように思えるシステムってのは良くないと思ってて、アカウント作らないと駄目なシステムであったとしても、作成前に必要情報を入力させていって、じゃあ、今回の情報でアカウント登録しておく?って聞いてくる楽天みたいな方式が正しいんだろうなって思う。"
なかのん&マジックさんのツイート: "毎回入力すればアカウントを作らなくてもOKにできるなら、それが一番ストレス無いんだろうなと。"
なかのん&マジックさんのツイート: "アカウントを先に作らせるというのは、今、入力したいことを後に回させられるということで、システムやその運営者が強権的に思えてよくないんだよな。"
なかのん&マジックさんのツイート: "XUL のボックスレイアウトとflexbox は何が違うんだろう。flexbox にしろWeb components にそろ、Mozilla 内部では慣れ親しんだものなだけに、標準との違いがよくわからん。"
なかのん&マジックさんのツイート: "HTML の通常のフローはUI には遅すぎるので、まだ、XUL は捨てられないって言ってたときはあったけど、flexbox で完全に置き換えられるのかな?"
uint256_tさんのツイート: "ますますJavaScriptが広く使われてるのが意味わからなくなってきたし 今からでもいいから、Lispでもなんでもいいからまともな言語にしてほしい"
なかのん&マジックさんのツイート: "HTMLにしろ、CSSにしろ、かちっと仕様の方を定義しても斜め上の事するWeb開発者が出てきて仕様の方が折れるという歴史の繰り返しなので絶対無理。"
いざてんさんのツイート: "開発側の視点としては、Dartはよくできてるなって思ったんだけど、あんまり流行らないまま廃れたね。"
なかのん&マジックさんのツイート: "IE一強時代も、Chrome一強の今も、互換問題が報告された時にブラウザ側のバグが原因ってのは少ないという現実がある。"
なかのん&マジックさんのツイート: "Web開発者が ・仕様と違う事をやりつつ、一強のブラウザがバグってる ・仕様で定義されていない一強ブラウザの動作に依存している ということをやっていると、Webブラウザの多様性が失われていって、最終的には誰も幸せじゃない未来になる。"

histric-6

なかのん&マジックさんのツイート: "えー…… Googleさん、ちょっと、Webをコントロールしようとしすぎでは。 / remove document.designMode · Issue #177 · w3c/editing https://t.co/9wA3y1lm6t"
remove document.designMode · Issue #177 · w3c/editing
なかのん&マジックさんのツイート: "Webはメンテされなくなったドキュメントやらアプリやらがやたらと存在し続ける場所だから、APIの削除って基本的にはやるべきじゃないよなぁ。"
なかのん&マジックさんのツイート: "ChromeやFirefoxみたいな設計のマルチプロセスだとどうしようも無い気がするけど、どうなの…… / https://t.co/vCWlS0Z06m - On GNU+Linux switching tabs with alt+1 etc passes the hit of 1 to the page #もずでぶ"
なかのん&マジックさんのツイート: "特に不便なスマホやタブレットでアクセスしている時に、ページ内の一部に読み込んだデータを追加していってくれるUIは便利なんだけど、各状態にURIを別途割り当ててくれていないと情報のシェアには不便なので、そういうところは意識して欲しい。"
なかのん&マジックさんのツイート: "オーソドックスなページだとUXは落ちるものの、逆に致命的な問題は起きようがない。オレオレUIでUXを向上させると、ぱっと見では便利になってても、開発者が想定していない不便が発生してる。フィードバックを受け付けて順次改善していくようなものじゃなければ、有り物を使ったりすべきなんだろうな。"
なかのん&マジックさんのツイート: "特定のURLを特定のウインドウで常に開くようなアドオン無いかな……bugzilla専用のウインドウ作ってタブまとめないとあかん感じになってきた。"
なかのん&マジックさんのツイート: "最近のGoogleは本当におかしな方向に行ってるとしか思えない。実験実装にしても発想が非常識過ぎる。例えユーザーがそれを求めたとしても、その内容というか発想は非常識過ぎる。 https://t.co/HG0xzE6eUx"
Chrome Canary、Web検索時に検索語句だけをOmniboxに表示する機能をテスト中 | スラド IT
なかのん&マジックさんのツイート: "Google Chromeのトップに居てるDarin FisherとはMozillaで彼がやってた時期に面識あるんだけど、こういうのを是とする人と思えんので凄く不思議なんだが。"
なかのん&マジックさんのツイート: "プロジェクト細部までトップが決定できるとか、そんな幻想の話ではないというぐらいに、割と根幹に関わる話よね、特にChromeのシェアを考えると、Webの未来に直結しかねない。"
KIMATA RobertHisasiさんのツイート: "(続き)UAの挙動を指定するdownload属性の利用は target="_blank" 同様に別途検討が必要なのではと思いますが、どうでしょうか。pdfへのリンクなら、ユーザーによってダウンロード、そのままブラウザで読む、ダウンロードを経ずにPDFのリーダーで読むなど期待する挙動が違うのではと思いますので"
なかのん&マジックさんのツイート: "ダウンロードするという予告のもと、確実にブラウザにダウンロードを促すには必要不可欠なので必要だと思うんだよな。昔だと、MIME設定がひどくて、ダウンロードリンクをクリックしたはずが、膨大な容量のバイナリファイルをプレーンテキストとして表示しようとして「攻撃」を食らったりしたし。"
なかのん&マジックさんのツイート: "PDFを普段はブラウザで開きたいけど、PDFをダウンロードしたい場合もある時に、サイト側が通常のリンクとダウンロード用のリンクと別途用意してくれてるケースは正直、便利で助かってる。"
なかのん&マジックさんのツイート: "サイト側が使い方間違うと被害ありそうではあるんだけど、まあそれはたいがいの機能がそうな気もする。"
なかのん&マジックさんのツイート: "普通の人がメリットそうそう無いと思うけど、HTMLファイルをダウンロードさせようとすると、やっぱしそういう機能しかないかなーとも。"
なかのん&マジックさんのツイート: "最近、ひとつのアカウントでしかログインできないアプリの設計ってクソだなって思うようになってきた。"
なかのん&マジックさんのツイート: "全然関係無いけど、ふつうのサイトの開発に必要ないけど、ブラウザの開発には超便利な機能が無いと、仕事柄非常に困るので、HTML4の後、<base>が消えたりしないかと冷や冷やしてた。あれ、バグってるサイトをダウンロードしてテストする時にむっちゃ便利なのよね。"
なかのん&マジックさんのツイート: "あとEdgeよ、いい加減にdata URIをフルサポートしてくれ……"
なかのん&マジックさんのツイート: "んー、Nightlyのslow-loading trackersをブロックする機能、他のアプリにLANの帯域を食い潰されてると画像の読み込みとかに悪影響出てる気がする……"
なかのん&マジックさんのツイート: "auxclickイベントの再実装、どうしたもんかなぁ。いつやろう。どうにかねじ込まないとこれマズすぎる。"
なかのん&マジックさんのツイート: "ダウンロードしたブツの正当性を確認するためにハッシュ値を確認させようとするの最悪極まりないUIなのになんでか非難されない……"

なかのん&マジックさんのツイート: "これ読んでると、"OSSだから誰でも好きな機能を"とか、現実を知らない人居るようで、現実ではなく、妄想ベースの結論は「今の自分に都合の良いところに落ち着くだけ」なんだなと。 https://t.co/IApZpstnEi"
Mozilla、EdgeがChromiumベースになることに対しGoogleの独占を危惧 | スラド IT
なかのん&マジックさんのツイート: "こんなこと言えちゃう人は、だれでも無断で好きなパッチをツリーにコミットできると思ってるんだろうか……"
なかのん&マジックさんのツイート: "実装が一つの場合、使いやすいAPIのために元の設計を大きく書き直すということはコスト面を考えると無いのは明白ですな。今回、Geckoが65でkeypressイベントを(事実上)Blink/WebKitに合わせて標準化された動作に半年以上かけて修正したのも異なる実装だったからこその話なので。"
なかのん&マジックさんのツイート: "こういう大きな書き直しが無いとどういう実装になっていくのか、コードを長期間にわたってメンテしたことある人なら分かるんだけど、ハッキーなパッチでどんどんバグだらけの無理矢理な修正が積み重なっていき、袋小路に。その状況は短期的にはユーザーにとって好ましく見えるのがたちわるいところ。"
なかのん&マジックさんのツイート: "何しろそれなりに動いてるものが即座に追加され、簡単に治りそうに見えるバグが残ってるだけに見えるからね。そして、Blinkの挙動やテストをGeckoでの実装時に確認すると、Blinkはだいたいそうやってるんだなというのが見えてくるのでつらい。"
なかのん&マジックさんのツイート: "とりあえず、最近ますます速度が上がって、Webの進化に自分が関わってる所以外はついていけないんだけど、なんで「落ち着いてる」って言ってる人を結構見かけるのか不思議だ。"
なかのん&マジックさんのツイート: "Geckoの場合、開発者やプロジェクト全体にとって興味の無かったモジュールはNetscape時代からほとんど大きな変更無く放置され、それがさらに誰も触りたくない魔窟になっていってた。その内のひとつ、editorを引き取ったのは、書き直さないとこれから増えてくるAPIを実装でき無くなると思ったからで。"
なかのん&マジックさんのツイート: "実装が一つしか無かったら、変わり者が出現して、それを容認してくれるマネージャーがいないと、そういう場所はどんどん進化から取り残されていくだろうね。特にWeb開発者がそこに熱烈な仕様案を書いても誰も実装しない未来が待ってるのは確実。"
なかのん&マジックさんのツイート: "大きく書き変えての実装には、既存サイトがつぶれたり、regression報告をトリアージするコストも当然含まれるので、外部から来た大きすぎるパッチを無条件に取り込むなんてことも期待できない。"
なかのん&マジックさんのツイート: "Webブラウザの開発でつらいのは、既存の実装がある所にその設計をまったく考慮しない仕様案がしょっちゅう出てくるところ。なので、案の段階で、自分の所に不都合な形のAPIにならないように代替案をなんか考えないといけない。実装がひとつしかなかったら、その設計に依存したAPIしか通らなくなる。"
なかのん&マジックさんのツイート: "まあ、どのブラウザでも実装が難しすぎて消えていった仕様もあるけど、そういうのがより極端になっていくやろね。"
なかのん&マジックさんのツイート: "極端な話、実装書いて仕様案だけWICGに投げて、オープンを装ったり出来るんだよな。"
なかのん&マジックさんのツイート: "仕様策定で、その現場に居てる人の顔を立てて妥協したら、その人の所属する企業の他の部署の調子に乗った奴からの恫喝に仕事増やされ、それを対応したら、さらにその企業の他の部署がてんやわんやの大騒動になったというのが2018年の私のメインの仕事の顛末でして。"
なかのん&マジックさんのツイート: "自社製品が後出しジャンケンでinvalidとされるような仕様には二度と合意しないという気にしかならないよ、そんなことされちゃ。"
なかのん&マジックさんのツイート: "は??? Firefoxのタブバーの"+"ボタン、マウスで長押ししたらcontainerを選べるとか知らなかったんですけど……"
なかのん&マジックさんのツイート: "regression報告で初めて知った、なかなか衝撃のUI。デスクトップで長押しの発想はなかった。(まあ、戻るボタンとかは長押しあるけれども。)"
なかのん&マジックさんのツイート: "普通に考えたら、昔の戻るボタンのデザインみたいに、"+"の脇に小さくでも、下向きの▼とか必要だよな。"
なかのん&マジックさんのツイート: "Netscapeはブラウザをメインの事業のひとつとして、パッケージを売ることでも収益を上げていたので、アップグレードは当然金のかかる行為となってた。ここをMicrosoftは突いてきて、Windowsのプラットフォーム戦略の一環としてIEを無料で使えるブラウザとしてNetscapeの事業の資金源を潰しにかかった。"
なかのん&マジックさんのツイート: "もちろん、汚いビジネス手法だと今でも思うんだけど、無料でもアップグレードを渋る人達すら居てる現在の現実を見ると、もし、ブラウザのアップグレードが有料のままだったとしたら、世の中、最新じゃないブラウザを使い続ける人が大量に居た(むしろ主流派になってた)であろうことは確実に思える。"
なかのん&マジックさんのツイート: "そこを当時のMicrosoftが狙っていたとも思えないんだけど、結果的にブラウザのように更新頻度が高くて、常に最新版にしておかないといけないものが無料で手に入るのが当たり前になった現状を作ったMicrosoftの歴史的な決定は今のWebのセキュリティに無茶苦茶貢献したと言えると思う。"
なかのん&マジックさんのツイート: "もし今でもWebブラウザが有料のソフトウェアで、バージョンアップに金がかかるのであったなら、ブラウザのバージョンの断片化は昔のそれよりはるかに酷くなってて、Web自体がここまで使いやすいプラットフォームになってなかったんではないかな。"
なかのん&マジックさんのツイート: "こんだけブラウザが多機能になってる時代に、Ctrl + Uがソース表示に使われてるの、むっちゃ勿体ないように思う。開発者用は全部Shift付きで良いような(開発者的に不便ならShiftLockみたいなのキーボードレイアウト関わらずできるようにするとか)。"
なかのんクエストさんのツイート: "@momdo_ ああ、マウスジェスチャーは冬の時代かもですね……あれってアプリが実装するのも変なようには思いますが(OSから結果だけAPPCOMMANDとかのイベントで来いよって感じが)。"
マウスジェスチャー - Wikipedia
マルチタッチ - Wikipedia
なかのん DAYS''さんはTwitterを使っています: "思った以上にキャレットが多かったですね。ちなみに、用語的にはカーソルは、マウスカーソルを指すことが多く、キャレットを使った方が誤解が無くなります。"
なかのんクエストさんのツイート: "というか、Windowsってなんで未だにデスクトップアプリのセッション復元に関するAPI整備を未だに行わないんだろうかと不思議。OS側で仕組みを用意してやれば、開発が活発なアプリは追従してくると思うんだけど。"
なかのん&マジックさんのツイート: "なんだかんだで、メニューって便利よね。モダンなアプリのデザインではどんどん廃止・オプション扱いにされてるけど。最短でのアクセスはできないけど(最低でも2クリック)、整理されてるのでアクセスしにくいメニューってのはそうそう無い。"
なかのん&マジックさんのツイート: "ネイティブのタイトルバーはWindowsの場合、アプリのプロセスがハングアップしてても操作可能なので、GPUドライバのバグとかで固まりやすいメディアプレーヤー系では使えるようにしておいて欲しい。自前のモーダルダイアログ出すアプリとかだと詰むんだよなぁ。"
なかのん&マジックさんのツイート: "observer (listener)って綺麗にデザインできるけど、runtimeコスト高いなーと思う今日この頃。"
なかのん&マジックさんのツイート: "ところでドロップダウンリストの「選択」って用語、一般的には開かれてるリストをハイライトしてることを言うのか、それを選んで閉じた状態を言うのか、いまだによくわかっていない。"
なかのん&マジックさんのツイート: "説明文書いてると後者を「選択」というのが自然な気もするけど、じゃあ、前者をどう呼ぶ? って感じが。"
なかのん&マジックさんのツイート: "Ctrl+ZXCVみたいに、Ctrl+Shift+CXVあたりもリッチテキストを扱えるアプリ間で暗黙の共通のショートカットキーとならないんだろうか。 / 【レビュー】[Windows]+[V]キーでテキストから書式を取り除いて貼り付け「PureText」 - 窓の杜 https://t.co/TQjnNbHQ5l @madonomoriさんから"
なかのん&マジックさんのツイート: "OSに標準搭載されてるアプリがショボくて、なんでこんなのあるんだって思う人も多いかと思いますが、サードパーティーのアプリはあれを参考にすることでOS上でアプリ間共通の用語、メニュー構成、ショートカットキー、その他使い勝手を実現できるので、無いとえらいことになるんです。"
いけち@狐耳さんのツイート: "弊社のITスキルは偏差値3くらいしかないので、Outlookが最新版に更新されてアイコンが変わった日の朝、「メール開くやつがなくなった。直して欲しい」という電話で情シスのヘルプデスクがパンクした。"
なかのん&マジックさんのツイート: "いやほんとに、PC 等に苦手意識のある人は理解せずに使い方を覚えてるだけなので色々と難しい。"
なかのん&マジックさんのツイート: "アプリの操作方法を驚きの固定手順で覚えてる人ってライトユーザにはたぶん多くて、「これぐらい分かるやろ」っていう変更がかなりあかんパターンは多いと思う。かといっていつまでもUIデザインを変更しないわけにもいかなく…… https://t.co/9StksFHaL0"
最近気になったアプリケーションの操作方法の変更について | アクセシビリティBlog | ミツエーリンクス
なかのん&マジックさんのツイート: "変更回数が少ない方が良いのは間違いないけど、じゃあ、溜め込んでおいて、一回のアップデートで大変更が良いのか、ちょっとずつ変化していく方が変更に追随しやすいのか、その辺はデータ見たことないのでプロダクトとしてどちらが好ましいのかよく分からない。"
なかのん&マジックさんのツイート: "ふと、MozillaのCSSのbindingによってショートカットキーが特定の要素に付加された時にどこからその処理が来てるのか気になったのでデバッグビルドでスタック見てみたら、非同期で投げられててどっから来たのか分からないという……"
なかのん&マジックさんのツイート: "そら、ソースコードを読んでてもたどり着けませんわ……"
なかのん&マジックさんのツイート: "今、ショートカットキーはキーイベントがある度に、連結リストを辿って、マッチするかどうか確認するようになってて、メモリ削減には貢献してるんだけど、その代わりにオーバーライドするのがちょっと無理って感じになってしまってる。"
小池宏幸@Piascoreさんのツイート: "トグルボタン問題、こういうのやね。… "
なかのん&マジックさんのツイート: "あの分かりにくいウイジットを使い出したAppleのデザインセンスわけわからん。"
Takashi Kawasakiさんのツイート: "この前のトグル問題の本質だと思うけど、説明に動詞がほしいし、日本語がそもそもおかしい。「起動時またはバックグラウンドで起動」って、何が「または」なんだよ。… "
Takashi Kawasakiさんのツイート: "HUAWEIのこの辺の設定、全体的に意味がわからん。「消費電力の高いアプリ」っていうのはユーザーが表明するという意味なのか、それとも他の意味があるのか。英語か、中国語で語彙を調べた方がよさげではある。… "
なかのん&マジックさんのツイート: "GPUのドライバがクラッシュしたっぽいけど、この場合、NightlyのUIは完全にお亡くなりになるのか。メニューとかすら自前レンダリングのアプリはこういう時は弱い。"
なかのん&マジックさんのツイート: "本格的にContainer Tabを使い出して思うけど、ウインドウ単位でContainerになって欲しい。せめてデフォルトで利用されるContainerがそうであって欲しい……"
なかのん&マジックさんのツイート: "もう、本当にWin10に「ディスプレイのタッチ機能」を一時的に無効化するUIつけて欲しい。子供がさわりに来ると使えなくなる。"
なかのん&マジックさんのツイート: "でも、2018年にもなってって感じだけど、自分専用のファイラは作った方が仕事がはかどるのではって思うこと多いな、最近。"
なかのん&マジックさんのツイート: "Mozillaのソースコードとか読んでみると良いよ。ネイティブUIとできるだけ同じルック・アンド・フィールを実現するために、どれだけのコードが必要になってて、どれだけメンテナンスコストかかるかなんとなく想像できると思う。それでも全然完璧からはほど遠いんだし。"
なかのん&マジックさんのツイート: "ウイジットを全て自前で実装して、本当にその価値があるのってブラウザみたいに自前でレンダリングするしかやりようが無いような特殊なアプリか、クロスプラットフォームでUI部分のコードを完璧にシェアしつつ、自分達でその仕様をコントロールする必要がある場合だけだよな。どちらにしろ特殊。"
なかのん&マジックさんのツイート: "ホイールとかタッチとか、あの辺はGUIアプリでも入力が来すぎてどうなのってところあるし、今、Mozillaでもcoalescingしようかみたいな話は出てるけど、それぐらいかなぁ。"
なかのん&マジックさんのツイート: "macOSが特に顕著なんだけど、ホイール操作で1px単位のスクロールのイベントが飛んでくるの、本当にやりすぎでは。"
なかのん&マジックさんのツイート: "passiveじゃないホイールイベントやタッチイベントのリスナが居てると非同期スクロールも使えないんで、細かすぎるスクロールを示唆するイベントはパフォーマンスの低下につながってる。"
ɔさんのツイート: "3/19にリリース予定のFirefox 66から、疑似カーソルが正確に座標を追尾するようになります。普段使っているブラウザが対応するのは本当に嬉しいので 確かみてみろ! 完"
なかのん&マジックさんのツイート: "その節は本当に勉強になりました。"
なかのん&マジックさんのツイート: "個人的にはUIにアニメーションは派手さ以外の面では要らないって思ってます。あれがあることで変化が分かりやすいってのはユーザテストしてない結論だと思ってる。大概の人はそんなに視界の変化について注意してないと思ってる。"
なかのん&マジックさんのツイート: "みんなそんなに視界の変化に注意を払ってるなら交通事故なんて起きないんですよ……"
なかのん&マジックさんのツイート: "人は見ようとしているもの以外は視界にあっても認識していないと思う。"
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「確かに白い背景のUIが多い昨今、白いマウスカーソル使うのは理にかなってないな。」 / Twitter
Asa DotzlerさんはTwitterを使っています: 「Did you know you can easily change your pointer color and size in Windows? I didn't until last week but I've been running with a yellow pointer for several days now and it's SOOO nice to be able to find the thing without all that jiggling and circling. https://t.co/Rmglg0a304」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「未だにフォーカスが移動しちゃいけない時や、フォーカス移動がからむデバッグと、DnDのデバッグは面倒くさい。」 / Twitter
Manabu UenoさんはTwitterを使っています 「マウスオーバーすると色が薄くなるボタンとか、下線が消えるリンク文字とか、何を考えてるんだろう。そのオブジェクトが視覚的に体現していた意味性を手放すということは、操作を拒否してることではないか。そもそもマウスオーバーによる変化は全て不要だと思う。UIを複雑にするだけ。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「私はマウスホバーという、「状態の変化」が正常に処理されたか見えないと困ることがあるので変わって欲しいと思う。みなさんは、アプリのフリーズ(一時的なものも含め)にどうやって気付いてるでしょうか? マウスカーソルが期待通りの変化をしなかったことから気付くこと、多くありません?」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Firefox for Androidでは長押しでmousemoveイベントと、その副産物のhover状態の変更が起きなかったんですが、わざわざ去年か一昨年に入れましたよ? そうじゃないと困るサイトがあったので。 https://t.co/J8oklxOvav」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「マウスオーバーによる表現、PCユーザーが中心だった時台は必要でしたがスマフォ・タブレットユーザーが中心だとわざわざ付ける必要がない気もしますね。 皆さん今でもマウスオーバーで見た目を変えているのでしょうか…?」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox 確かに長押しで変化しますね。スマフォでリンクなどを長押しするユーザーがどれだけいるのか気になります…」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「@Stocker_jp これがないとメニューバー内のメニューがリンクになってるのに、そこにhoverして開かれるポップアップメニューを使うことを期待してるサイトが全滅なのですよ。」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox スマフォでそういう表示が出るサイトはそろそろ改善して欲しいですね…」 / Twitter

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Bug 1472618 - navigator.platform returns "Win64" in Firefox but "Win32" in Chrome and Edge on Win64 OS https://t.co/2WTuOEB0S0 というか、Win64なIEはWin64と返してたのに、EdgeになるとWin32になるってなんだそれ"
Makoto Kato ︎︎さんのツイート: "Win64なFirefoxでWin64と返すようにしたのはずっと昔の自分ではあるが"
Makoto Kato ︎︎さんのツイート: "Got win64/arm64 laptop!!… "
Makoto Kato ︎︎さんのツイート: "重いんだけど、これ。しかも電源がType Cじゃないんだ"
Makoto Kato ︎︎さんのツイート: "syswow64ある意味わからない"
Makoto Kato ︎︎さんのツイート: "… "
Makoto Kato ︎︎さんのツイート: "No arm64 string in Edge Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
Makoto Kato ︎︎さんのツイート: "SunSpider on Edge + Windows 10 / arm64 https://t.co/CRR3TsS1gw… "
Makoto Kato ︎︎さんのツイート: "Emulation mode of Windows 10 / arm64 is slow... (this result is Firefox x86 on emulation mode) https://t.co/51OzDrjkUb… https://t.co/P8SJVFhMqR"
Makoto Kato ︎︎さんのツイート: "もしかして、sysarm32がthumb2でsyswow64がx86のバイナリってことか"
Makoto Kato ︎︎さんのツイート: "notepad.exeがx86とthumb2とarm64の3バージョン含まれてるとか、誰得だよ"
Makoto Kato ︎︎さんのツイート: "SONYはWebKitにコミットしてる (WebKit reviewerも社員にいる) ので、次もWebKitだと思いますよ。任天堂はACCESS次第 (これ https://t.co/TbaGqgBZsa)… "
WebKitブラウザ「NetFront® Browser NX」|ブラウザ|製品情報 | 株式会社ACCESS

@rockridge07

Rockridgeさんのツイート: "Fx55:Windows版で、描画関係の処理において常に垂直同期(vsync)タイマーが使用されていることから、ソフトウェアタイマーを使用するモードを削除した。 / “1352074 - Firefox fixes Window…” https://t.co/cHdNp6G3Vl"
Rockridgeさんのツイート: "FirefoxにPolicy Engineと呼ばれるコンポーネントが追加される見込み。システム管理者が作成したJSONベースのカスタマイズ設定を読み込み、本体に反映させる。また、"ESR 60"という表記にも注目すべきだろう。 https://t.co/VZpDE6sj2H"
Rockridgeさんのツイート: "FirefoxのUIアニメーションがPCにかける負荷は軽微なものではない。Mozillaはマシンパワーに乏しい環境ではフレームレートを下げ、負荷を減らそうとしている。参照:https://t.co/t2qYcmhKaR / “T…” https://t.co/VxPpYlM7XB"

@shibu_jp

渋川よしきさんのツイート: "動的ウェブの高速化、そろそろ、データ変更時にそれを表現するhtml片を生成まで事前にやっておく、みたいになって、エンタープライズなバッチシステムに回帰していくのでは。"
渋川よしきさんのツイート: "What's 3 Words、すでにあるマップコードの仕組みを単語の空間にマッピングしたものという理解でいいのかな?というか、これもベースはデンソーなのか。すごいな、デンソー 。 https://t.co/UzIgpTfiyr"
Mapcode - Wikipedia
渋川よしきさんのツイート: "ガントチャートは依存関係を持ったタスク情報をコンパイルしたら出力されるべきものであって、ガントチャートを入力するものではないよね。"
渋川よしきさんのツイート: "QML向けのReact Nativeが出れば、クライアント開発の一発逆転はあり得る気がしてる"
渋川よしきさんのツイート: "アイディアを書き留めたり、一次入力としてよく使ってます。編集は提案を自動で作って選択肢から選ぶぐらいのUIが実現したらできそう。構成は複雑なカードゲームのユニット編成とかゲームでやってるからできそう。 https://t.co/12OA5XZecV"
渋川よしきさんのツイート: "僕の中でmacOS機が良いのはディスプレイが綺麗で、フォントが綺麗で、スクロールがなめらかで、SSDがそこそこ高速なコンピュータという位置づけなので、他のOSはまだいまいち。特にスクロール。最近の普段使いはLinux機だけど。"
渋川よしきさんのツイート: "Windowsってスクロールイベントが行単位なんだよな。Xもそう。Waylandはwheelは「ボタンクリック」って書かれているので期待薄だけど、fingerでのスクロールはkineticって書いてあるので、WindowsよりはLinuxとかの未来に期待してる。"
渋川よしきさんのツイート: "macとiOSは常にデバイスのdevice pixel ratioが一定で、macはretina機種だと2。2880x1800の物理解像度でも、文字一番小さい設定にすると、論理的な作業スペースは1920x1200。標準で1440x900。内部では2倍の3840x2400でレンダリングしてスケーリングしている。"
渋川よしきさんのツイート: "これ、すごく無駄に見えるようだけど、画面描画はアンチエイリアスが効いて悪くない。あと、スクリーンショット撮ると、常に2倍のサイズで取得される。RPAでオートメーションするときにDPI変えても動作に影響ない。macはこの画面の描画とピクセル単位スクロールイベントの2つは尊い。"
渋川よしきさんのツイート: "MacBook Proは高い、○○なら/自作したらもっと安い、と言っている人よく見かけるけど、System 76ならたしかに半額ぐらいで32G/1TBマシンが選べる。なんだけど、ユーザーランドの部分はともかく、電源管理だったり、スクロールだったり、Retina対応だったりの部分は圧倒的にmacがいいのだよな。"
渋川よしきさんのツイート: "Surface Proも身近で買った人は多いけど、もろもろ電源の問題だったりとかトラブル抱えていたりするし、いろいろ厳しさがある(し、Surface 2とWindows Phone 7でハードの寿命とサポートされなさが異常だったのでMS製ハードはしばらく近寄りたくない)"
渋川よしきさんのツイート: "Macがダメになっているといっても、他のダメさがまだ勝っているので、しばらくはmacかなぁって。Linuxが8th Genの電源管理完全にサポートしてWaylandでピクセル単位スクロールが実現したらLinuxメインにしたさはある。"
渋川よしきさんのツイート: "UI部品。今までもX, Yと重なりのZの3次元であったけど、最近はZ軸でフォーカスアウト(ぼかし)や、アニメーションという時間軸tが入ってきた。その次は回転でも入るのかな。"

@uint256_t

uint256_tさんのツイート: "#Naglfar - クラッシュしたら、Issueで報告してねって表示がでるようにした"
uint256_tさんのツイート: "#Naglfar これ、Naglfarはすぐにクラッシュするからその都度報告してもらってたら大変なことになりそう()… "
yumetodo-鳥の氷河から逃げるさんのツイート: "違法なHTMLに対して「あきらめましょう」と出す機能はありますか?… "
uint256_tさんのツイート: "これが許されるなら、HTML はもっと健全な方向へ進化していったんだろうなあ (今のところそういう機能はなくて、おかしなHTMLでも無理やり解釈するようになっています… "
なかのん&マジックさんのツイート: "なんかこう、MS vs. Netscapeな頃を彷彿とさせてくれてて、良い。"
uint256_tさんのツイート: "ブラウザは一人の人間が作るものじゃないよ。"

@yugui

Yuki Yugui Sonodaさんのツイート: "だからIMEの状態を見ずにエンターキーイベントだけ拾って検索を開始するのはやめろと何度言ったら"
Yuki Yugui Sonodaさんのツイート: "Googleは正攻法と正論を突き詰めて成立してる会社って印象があって。品質を保ちたい→テストを書く。テストしづらい→テストしやすい設計をする。テストを浸透させたい→浸透させる職種を作って全チームに配置。テンソル計算が遅い→速いプロセッサを作る。時刻ズレで整合性が辛い→原子時計を設置"

@shirouzu

ダブルバッファリング

Shirouzu Hiroaki(白水啓章)さんのツイート: "描画のちらつき抑止用ダブルバッファリング、OS側がそれ的な動作をサポートしてくれないものかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: ".NET には存在しているようだ。 https://t.co/SjjgMV7Dco"
ダブル バッファリングされたグラフィックス | Microsoft Docs
Ryota Shioyaさんのツイート: "いまどきの Windows でデスクトップ・コンポジションが有効な状態だと実質的に常にダブル・バッファしてるようなもんだと思うんですけど,どうでしょう?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "その意味ではその通りです。 ただWindowDCにGDIで直接お絵かきすると、その過程がすべてリアルタイム更新されるので、ちらつくんですよね。(手動ダブルバッファなしに)BeginPaint~EndPaintをまとめて最終結果だけ表示するモードも欲しいなぁ、と。… https://t.co/sH84BFwODx"
Ryota Shioyaさんのツイート: "マシンパワーゴリ押しで十分速く更新されるので運悪く DWM の更新タイミングにぶつからないぎりは平気かなとか思ってたんですが,ネットみてるとそんな簡単にはいかないみたいですね・・・ ところで,BeginBufferedPaint という API もあるようですけど,こちらで解決されたりしませんか?… https://t.co/lk6Pkbv9Y2"
Shirouzu Hiroaki(白水啓章)さんのツイート: "おぉ、いつの間にかこんなAPI(Vistaで増設)が…これを使えば大丈夫そうですね。 ありがとうございます! (Vista以降のAPI増えたし、そろそろ「XPでは起動もしません」にするかな)… "
Ryota Shioyaさんのツイート: "Vista で導入されたコンポジションのバッファリング関係の API を眺めていたら、「あれ?これは名前からして目的そのものなのでは? 」という感じでした! 頑張れば動的ロードで XP でも最低限動くように出来るとも思いますけど、流石にもう打ち切っても良いのではないかなと言う気がします… https://t.co/TvPHzgaPHD"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸、DirectWrite(Win7以降)やカラー絵文字(Win8.1以降)対応しつつ、未だにWin98サポートのすごさ。 OS毎の分岐で悪夢なコードになっていないか、気になる。 https://t.co/kIhkQPQp9D… "
秀まるおのホームページ(サイトー企画)-秀丸エディタ

Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ハンドラ内でMessageBoxを生成すると、メッセージループが回る=同一スレッドのタイマー処理が動くスキを与えてしまう問題。 MessageBox専用スレッドを別途生成すれば一応解決するが、やや牛刀感。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messengerでも(昔から)非アクティブでも選択が見える形にしている。 ただしオーナードローではなく、WM_KILLFOCUSをブロックというhack的な実装。… "
やねうら王さんのツイート: "『将棋神やねうら王』は、ListViewが複数配置されていて、そのすべてがアクティブという特殊なUIデザインになっています。この理由について記事にしてみました。 ListViewが複数あるこの世界で世界最強 https://t.co/bDNHg2i7Jr"
システムのフォントサイズを大きくする機能が追加 ~「Windows 10 RS5」Build 17692 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーザには良い機能だが、開発側はダイアログで表示が切れる等に気をつけないと。(以前、IEEEでも有名な年配の米女性から、丁寧な指摘メールが届いた経験が、、、)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーレカ! ent->TimerProcの中で(レア設定の場合に)MessageBoxを通っていた。 MessageBoxは内部メッセージループを持つ=パケット処理やタイマー処理などが再入的に発生する。 msgActイテレーション中のMsgBoxでパケット受信が発生、別関数でのmsgActイテレーション再発生が原因。(再現も完了)… https://t.co/0G9RELEoD0"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WM_INITDIALOGのコンテキスト内だと、MessageBox等のModalDialogを作っても、Modalにならない不思議(まるでオーバーラップ的な挙動)。 (さらに、PostMessageでわずかにDelayさせても回避できない様子)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetForegoundWindow API、Edge(UWP)内部での発行 と、一般プロセス発行で違う値が返るなぁ…Edge側Containerが余計なことをしているように見える。"

エディタ

その他

その他

ed(1) is Turing-Complete – *nix Windows
最初のアウトライナー
Outliners & Programming
技術文書
What I learnt from coding a text editor in C
「Skype」のメッセージからタスクを生成、“Microsoft To-Do”へ直接登録可能に - 窓の杜
ClangdでC++ソースコードを補完する際にコンパイルオプションを指定する方法 - uchan note
世界を劇的に変えた大発明の1つ「スプレッドシート」誕生秘話 - GIGAZINE
「CKEditor 5 v16」リリース、コードブロックのサポートや制限モードの導入が行われる | OSDN Magazine
Pandocで索引をどう作るか - golden-luckyの日記
抽象データ型を自作する - golden-luckyの日記
matsumoto19.pdf
2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE

KeyboardEvent

MS

なかのん&マジックさんのツイート: "そうだ、 https://t.co/xaBjzAiLxI を一度、アップデートしておかないとな。"
KeyboardEvent.key mapping of each browser - Google スプレッドシート
なかのん&マジックさんのツイート: "ラフに調べて見ても、Edge、今回の大型アップデートでKeyboardEvent.keyの値が改善してるものの、まだいくつかアレやわ……バグ報告しとかんと。"
なかのん&マジックさんのツイート: "というか、なんで、Travisが居てるのにこんなことになるんだよ。"
なかのん&マジックさんのツイート: "UWPのイベントモデルを全く知らんけど、デスクトップアプリで受け取れてた仮想キーコードが受け取れなくなってるとも思えんしなぁ。"
なかのん&マジックさんのツイート: "それにしてもまだ、EdgeはKeyboardEvent.codeに対応してないのか。これ、かなり簡単なんだけどなぁ。"
なかのん&マジックさんのツイート: "それともUWPでscancodeが取れなかったりすんのかな?"

なかのん&マジックさんのツイート: "よくよく調べてみたら、Safariも既にKeyboardEvent.keyとKeyboardEvent.codeをサポートしてるやん。なんで、未だにKeyboardEvent.keyCode使ってるサイトが多々あるんだ?"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeで、記号の入力キーを見るのだけは本当に頭おかしいのでやめていただきたい。真面目に対応しようとすると、各ブラウザの各OS版で、しかも各キーボードレイアウト毎に対応しないといけないのが昔から分かってる。"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeの値に意味がそもそも無いので、各ブラウザが各OSで都合の良いようにマッピングしてるだけなので、UA文字列なりを確認してブラウザごと、OSごとに処理を分岐させるしかない。なので、ブラウザ側で他のブラウザにあわせた値に今更変更すると、既に存在してるアプリを壊してしまう"
なかのん&マジックさんのツイート: "というわけで、こいつの互換性に問題ありまくりなのはブラウザ開発者側も分かってるから、標準仕様ではkeyCodeはちゃんと定義されず、keyとcodeという新しい属性が、その値のリストも含めて新たに標準仕様としてまとめられてる。"
なかのん&マジックさんのツイート: "よく誤解されてるけど、勧告に至ってるKeyboardEventの仕様って2018年2月になっていも未だに存在しないからね。DOM Level 2 Eventsでも未定義: https://t.co/RnXVtM1buh"
Document Object Model Events
KeyboardEvent.keyCodeとは何か - WebStudio
KeyboardEvent.keyCodeとは何か - WebStudio
vyv03354さんのツイート: "> Mozillaのソースコードを公開した当時の履歴は既に残っていませんでした。 https://t.co/sPQl5E0cai… "
mozilla-central-cvs: dom/public/idl/events/nsIDOMKeyEvent.idl@2df74fb33691 (annotated)
なかのん&マジックさんのツイート: "おお、ありがとうございます。cvsのリポジトリのコピーあったんですね。助かりました。… "
UI Events KeyboardEvent key Implementation Report
UI Events KeyboardEvent code Implementation Report
なかのん&マジックさんのツイート: "Firefox本体内で、たまに、 if (event.key === " ") { // something for spacebar } ってコードを見かけるけど、これたぶん間違ってて、 if (event.code == "Space") { // } じゃないといけない。確かASCIIの空白以外を入力するレイアウトがあったはず。"
なかのん&マジックさんのツイート: "スペースキーをショートカットキーとして処理する場合、普通の文字キーと違って、物理位置の確認で普通は問題無いはず。(AltGr+?)スペースキーをTabとして使うという、超変態レイアウトもあったように思うけど、あのレベルは無視しても良いと思う、さすがに。"
なかのん&マジックさんのツイート: "今やってる事: ・keypressイベントをnon-printableキーや、キーコンビネーションでは発火しないようにする ・keydownとkeyupイベントを、IMEの未確定文字列があっても発火するようにする Web開発者さんの負担を減らすために同時投入が望ましいと考えてます。 #もずでぶ"
なかのん&マジックさんのツイート: "ようやくここまで来た。 / Intent to stop dispatching "keypress" event for non-printable keys and key combinations in Nightly and early Beta - Google グループ https://t.co/oYfGCNQBBb #もずでぶ"
なかのん&マジックさんのツイート: "間もなく、Nightlyとearly Betaのデフォルト設定を変更して、keypressイベントの発火を止めますが、"dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content"をtrueに変更すれば今すぐテストできますので、それで問題のあるUIやサイトを報告してください。 #もずでぶ"
なかのん&マジックさんのツイート: ""keydown"と"keyup"イベントを未確定文字列がある場合にも発火するように(リリース版では)同時にやるんだけど、こっちはたぶん、そんなにバグが無いと思うんだよな。たぶん、あっても、イベントリスナ内で、KeyboardEvent.isComposingをチェックするだけで済む。 #もずでぶ"
なかのん&マジックさんのツイート: ""keypress"イベントの発火中止は、Netscape時代からの(Geckoの最初期からの)実装仕様を変更しちゃうんで、影響範囲が大きい。また、chrome documentとか、system event groupでは引き続き発火してるんで、ソースコードから単純に検索してバグる場所を探し出せなくて厳しい。 #もずでぶ"
なかのん&マジックさんのツイート: "ちなみに、keypressの発火を止める件って、keypressイベントの動作をUI Eventsの仕様策定中に、WGの編集者が、Firefoxの動作だけ違うから、それ以外を標準ってことにしてしまおうっていうひどく乱暴な話だったのに、それを盾にしてくるとはなぁ。"
なかのん&マジックさんのツイート: "私は、もう歴史的な問題が積み上がりすぎだから、定義せずに、MAYで参考情報入れとけば良いやんってスタンスやったんやけど。そもそもFirefox以外のブラウザの動作も完全に同じじゃないし、Chromeもプラットフォームによって動作違うし。"
なかのん&マジックさんのツイート: "本当にUI文字列見ないとクロスブラウザなコードを書けないパターンって、KeyboardEvent.keyCodeぐらいのものだと思うんだけど、他でもあるのかなぁ。keydownでハンドリングすべきイベントを、わざわざFirefoxの場合にだけkeypressでハンドリングしてるという理由が想像つかない。"
Non-printable keys will soon stop firing keypress event (Affecting) | Firefox Site Compatibility
なかのん&マジックさんのツイート: "未だにOSの違いを見てるクソサイトあるのか。KeyboardEventでよほどセンシティブなことやるとき以外は、PCかモバイルかぐらいしか見分ける意味が無いはずなんだけど。"
KeyboardEvent.keyCodeとは何か - WebStudio
JSer.infoさんのツイート: ""KeyboardEvent.keyCodeとは何か - WebStudio" https://t.co/MdNT9glaPb => https://t.co/QkP7hNkIJj KeyboardEvent.keyCodeの歴史や実装について。 keyCodeはOSやブラウザ間で問題があり標準化もされていないため、keyやcodeを代わりに使うべきという話。"
uehajさんのツイート: "KeyboardEvent.keyとKeyboardEvent.codeは、 KeyboardEvent.keyCodeと違って、数値ではなく、文字列である / “KeyboardEvent.keyCodeとは何か - WebS…” https://t.co/xUIVeyCVQf"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeでググったりすると、KeyboardEvent.keyと、KeyboardEvent.codeの解説も書かなきゃいけないなって気がしてきてる。Reactのissueなんか読んでも、不信感しか湧いてこない。"

Range

azuさんのツイート: "見てる: "range - Web API インターフェイス | MDN" https://t.co/1T4tv5Eq6t"
range - Web API インターフェイス | MDN
なかのん&マジックさんのツイート: "@azu_re DOM Rangeの生成・初期化コストの高さは各所で問題になってるので、速度には注意が必要です。"
なかのん&マジックさんのツイート: "DOM Rangeの生成・初期化、あとは、大量にインスタンスが存在する時のDOMツリーの変更速度の低下は深刻。Quantum Flowでは、ここの速度の多少の最適化と、変更回数自体を減らしたりというのを、エディタ周りでは行ってる。"
なかのん&マジックさんのツイート: "提案されてるStaticRangeで多くの場合は事足りるハズなんだよな。"

Web Components

Custom Elements

Firefox Nightlyさんのツイート: "Custom Elements v1 are enabled in Nightly! https://t.co/wccEYEExji - MDN documentation and demo: https://t.co/K17kLhmV2f"
Custom Elements - Web Components | MDN
Rockridgeさんのツイート: "Fx59:予定通りNightlyチャンネルでCustom Elements v1がデフォルト有効化された。脱XBLに向けても前進となる。 / “1406825 - [meta] Enable Custom elements v1…” https://t.co/CzPOswCEDP"
W3C HTML 5.3にCustom Elementsが統合された - 水底の血
Using custom elements - Web Components | MDN

microformats2

Rockridgeさんのツイート: "Fx50:microformats2対応の新パーザに一本化するため、旧パーザを削除。 / “1254367 – Remove old microformats parser now that we have the new mi…” https://t.co/1VgbEQWChZ"

JSON-LD

schema.org 日本語訳 - ホーム
schema.org構造化データマークアップのシンタックスにJSON-LDという選択 | HTML5Experts.jp
Home - schema.org
Silo Buster
JSON-LD と Open Graph で構造化メタデータ対応 | blog.jxck.io
ついに始まった、Google AMP(Accelerated Mobile Pages)を試してみよう! (1/2):CodeZine(コードジン)
やっぱりWebComponents+JSON-LDがこれから熱くなるわけです | WP-kyoto
JSON for Linking Data Community Group
JSON-LD Guiding Principles, First Public Working Draft | W3C Blog
First Public Working Drafts: JSON-LD 1.1 Syntax, JSON-LD 1.1 Processing Algorithms and API, and JSON-LD 1.1 Framing | W3C News
JSON-LD 1.1
JSON-LD 1.1 Processing Algorithms and API

Polymer

Web Componentsを簡単・便利にするライブラリ「Polymer」を使いこなそう | HTML5Experts.jp
Web ComponentsはじめるならPolymerで | apps-gcp.com
Welcome - Polymer Project
いまさら聞けない Polymer 入門 - Polyfills は Web Components の夢をみるか - Librabuch
Polymer と Web Components の違い9選(もとい Polymer の便利機能) ::ハブろぐ
Web ComponentsとPolymer【解説編】 - Qiita
WebComponentsとPolymerコード比較 - Qiita
Polymer を導入して Web Components による革命に参加する
Web ComponentsやPolymerについてまとめる – Simple IT Life
Polymer Japan Meetupに出演しました - EagleLand

webcomponents.org
VirtualDOM Advent Calendar 2014 - Qiita
リアルな DOM はなぜ遅いのか - steps to phantasien
JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ
Web Components | HTML5Experts.jp
X-Tag ★ Web Components
web.mit.edu/freebsd/head/sys/contrib/dev/acpica/components/namespace/nsinit.c
skatejs/skatejs: SkateJS is a library built on top of the W3C web component specs that enables you to write functional and performant web components with a very small footprint. It focuses on size, performance and is built around a functional rendering pipeline.
riot - デザイナはWeb Componentsに夢を見るのか - Qiita
Shadow DOM 101 - HTML5 Rocks
2017年のWeb Components:新春特別企画|gihyo.jp … 技術評論社
コンポーネント化: Web のために生まれ変わった従来の設計プラクティス | Microsoft Edge Japan
Microsoft Edge と Web コンポーネント | Microsoft Edge Japan
Web Components 周辺の仕様とか 2017年秋 - EagleLand
連載 | 基礎からわかる Web Components 徹底解説 〜仕様から実装まで理解する〜 | HTML5Experts.jp
Web ComponentsベースのUIライブラリ「Brick」をMozillaが公開 | HTML5Experts.jp
Web Componentsが変えるWeb開発の未来 | HTML5Experts.jp
Web Componentsについて気になること、泉水さんに全部聞いてきました! | HTML5Experts.jp
渋川よしきさんのツイート: "WebComponentはそのままでいいから、InnerHTMLみたいな感じで、内部状態を含めたそのままJS無しで再現可能なDOM/CSS片を取り出す、みたいなものが作られないとつらそうだなぁ、というお気持ち。"
Web Components を本番投入する(2018年春) - EagleLand
R.I.P. Web Components v0 - EagleLand
渋川よしきさんのツイート: "Shadow DOMのPolyfillのShadyDOMを使ってSSRというのはどこかで見た。ただ、Polyfillと仮想DOM同時に使うと更新うまく行かないのは確認済み。なので、ブラウザ固定できる環境以外はまだ無理かなって。 : え、まだWeb Componentsを未来の技術だと思ってるの? https://t.co/yns14WSEYV"
え、まだWeb Componentsを未来の技術だと思ってるの? - Speaker Deck
Rockridgeさんのツイート: "最近のWeb ComponentsはCustom ElementsとShadow DOMにES Modulesが加わったものが主流であり、HTML Templatesは直接使わず、HTML Importsは非推奨になっているとのこ… https://t.co/8m0tDBvTTr"
Web Components のリアル/ Realistic Web Components - Speaker Deck
lit-html 入門と lit-html だけで作る Todo アプリ - Qiita

Extensible Web

The Extensible Web Manifesto | Extensible Web Community Group
extensibleweb/manifesto: The Extensible Web Manifesto
manifesto/README.ja.md at master · extensibleweb/manifesto
Extensible Web Manifesto
Extensible web
【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る! (前編)─HTML5は問題だらけ? | HTML5Experts.jp
【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る!(後編)─技術の進化は必要か? | HTML5Experts.jp
Webの未来を議論!「Extensible Web Summit Berlin」イベントレポート | HTML5Experts.jp
開発者によるWeb標準化を可能とする「Extensible Web」とは? | HTML5Experts.jp
Extensible Web、WebAssembly、ORTCなど、なぜいまWeb標準は低レイヤへ向かうのか - Publickey
Extensible Web の夜明けと開発者が得た可能性の話 - Block Rockin’ Codes
Extensible Web を支える低レベル API 群 - Block Rockin’ Codes
[フロントエンド] The Extensible Webという考え方 - YoheiM .NET
Webエンジニアはどれだけ「Extensible Web」に興味あるか - albatrosary's blog

DOM

W3C

Language Bindings for DOM Specifications
ECMAScript Language Binding
ECMAScript Language Binding
ECMAScript Language Binding
ECMAScript Language Binding
Document Object Model (DOM) Specifications
IDL Definitions
IDL Definitions
IDL Definitions
Document Object Model (DOM) Level 2 Core Specification
Document Object Model (DOM) Level 3 Core Specification
(メモ)W3C DOM 4.1、勧告候補への移行のコンセンサスが取れず遅延する - 水底の血

本の虫

本の虫: DOM mouse eventの座標がカオスだ
本の虫: DOM level 3のマウスイベントにおけるカーソル位置の詳細
本の虫: ブラウザの座標再び

Twitter

Rockridgeさんのツイート: "Shadow DOM v0の知識がある人向けに、v1がどのような点で違うのかを実例付きで示したガイド。 / “What's New in Shadow DOM v1 (by examples) — [Dev] hayato.io” https://t.co/KBZff1EHnG"
Jxckさんのツイート: "ShadowDOM の v0 も OriginTrials だったらよかったのかなと一瞬思ったけど、そしたら使われず v1 への改善も無かった可能性があるかな。 OriginTrials は RC 的な位置付けで、 v0 を出し update/deprecate してくべきか。"
なかのん&マジックさんのツイート: "WHATWGのDOM Standardsの仕様書、読んでてまったく意味分からないんで書いてある通りにコーディングしてみたらなんとなく分かってきた。もうPascalかなんかで書いたらよくない? この仕様書。"
なかのん&マジックさんのツイート: "初めて、自信が全く持てないレビューしてる。ShadowDOM + DOM Eventsムズい……"

DOM Standard 日本語訳
DOM1仕様書
ECMAScript Language Binding
ECMAScript Language Binding
Document Object Model - Wikipedia
IDL35
IDL 4.0
Shadow DOM v1でHTMLの内容と構造を分離する
GeckoのDOMイベント処理の実装 (Gecko Inside ver.)
DOM リファレンス - DOM | MDN
DOMのまとめ - Qiita
JAVAスクリプトが書き出すHTMLにスタイルを当てる際の注意 - CSS小技集
DOM操作の最適化によるJavaScriptチューニング(前編) | HTML5Experts.jp
DOM操作の最適化によるJavaScriptチューニング(後編) | HTML5Experts.jp

DOM Parsing and Serialization

DOMParser - Web API インターフェイス | MDN
DOM Parsing and Serialization
DOM Parsing and Serialization (日本語訳)

ODF

組版

JLREQ

日本語組版処理の要件(日本語版)
日本語組版処理の要件(日本語版)
html5j 電子出版部 勉強会「JLREQとCSS」参加レポート — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
村田 真さんのツイート: "#html5jpub EPUBではむりやりページを作り出しているし、見開きもやっている。しかし、袋小路だと思う。電子書籍リーダの相互運用性という一点をとっても、CSSでページや見開きをやってほしい。"
maihaさんのツイート: "ジャスティファイしない場合は、文節など意味のある単位で自動改行されたほうがいい。左揃えで行末を揃えない場合にももっとよみやすくなるといい。 #html5jpub"
Satoshi Kojimaさんのツイート: "日本語のJustifyには行長計算が必要。行長可変なWebブラウザだと無理(ものかのさん) 確かにその通り。だが普通の人にはそれなりに読みやすいはず。さらに改善する仕様のドラフトは存在している。 (村上さん) #html5jpub"
渋川よしきさんのツイート: "&nbsp;ってのはノンブレークで改行しないスペースだけど、問題なければスペースを表示しないんだけど、ここで改行してもいいよっていう真逆の文字ってあったりするのかな?"
渋川よしきさんのツイート: "お、ゼロ幅スペースあるじゃん。 https://t.co/wKfUDSLBjN"
JIS X 4051からJLREQへ - JAGAT
渋川よしきさんのツイート: "文字をWebGLで描画とか死亡フラグ。JLREQを読んでみよう。日本語を表現するってめちゃ難しいよ。ましてや自分がしらない言語とかね。僕はWebAsmが普及してもDOMを置き換えることは絶対ないって思ってる。"
JLREQの今日と明日、そしてCSS日本語組版 | ICT CONNECT 21
html5j電子出版部 勉強会「JLREQとCSS」まとめ - Togetterまとめ
W3C「日本語組版処理の要件(JLReq)」の改訂作業がGitHubで from Shinyu Murakami on 2016-12-23 (public-html5jp@w3.org from December 2016)

ALREQ

W3C I18n Activityさんのツイート: "Text Layout Requirements for the Arabic Script just published as First Public Working Draft. https://t.co/gAPaALZyzz Still plenty to do! Looking for comments and contributors. https://t.co/vg9IIU7D0F (Or help with other languages: https://t.co/wAVGziqMox)… https://t.co/YhzpsCOQxR"
Text Layout Requirements for the Arabic Script
Issues · w3c/alreq
Language matrix

TeX

Apache FOPを使ってみる~Knuthの分割アルゴリズム - X-plus
Wayback Machine
TeX 以外の組版・レイアウトシステム - TeX Wiki
日本語組版あれこれ - おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか
TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る
monge.dvi
Line breaking — Xxyxyz
The Tectonic Typesetting System
tectonic-typesetting/tectonic: A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
TeXやLaTeXで図の挿入に時間がかかるときに挿入を省略する方法 - Qiita
TeXの脚注をなんとかする - golden-luckyの日記
日本語化プロジェクト 〜TeX Live と learnlatex​.org〜 / localize - Speaker Deck
keiichiro shikano λ♪さんはTwitterを使っています 「PostScriptを知っていると.bstが読めて便利」 / Twitter
.bst file - Google 検索

ウイドウとオーファンって、なかなか深い | 電子書籍、電子出版のCAS-UBブログ
䭄さんのツイート: "多言語組版処理システムは一人の人間がつくるものじゃないよ。"
SATySFi - Google 検索
『数式組版』を組む技術:基本版面(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:基本版面(2)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:基本版面(3)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:脚注|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:柱とノンブル|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:出力ルーティーン(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:出力ルーティーン(2)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:PDFの生成(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術 Advent Calendar 2019 - Adventar
七誌さんはTwitterを使っています: 「アラビア文字の組版についての資料を見付けた。 https://t.co/W6JDp7Rhlw アラビア語だけでなくペルシア語、ウルドゥー語、現代ウイグル語についての記載もある。 「筆者は専門家ではありません」とのことだけど、詳細にまとめられていて凄い。 多言語組版研究会というのがあったのですね。」 / Twitter
moji >> アラビア系文字 > 「アラビア系文字の基礎知識」
Arabic.pdf
日本語組版に関連するCSS規格の策定状況について - Speaker Deck

MS

Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ
Hack Patch!: CEMIについて
ExcelのセルがAI対応へ進化 - PC Watch
Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
Microsoft、Excelカスタム関数としてJavaScriptのサポートを発表
Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
Shirouzu Hiroaki(白水啓章)さんのツイート: ".xlsファイルは開くだけで、開いた日付がNTFSタイムスタンプ形式で格納されるようだ。(末尾-404~-396の8byte) ちなみに、ファイルの更新日付は変更されない。 このパターンだとアーカイブビットでも見ない限り、変更を検出できない。 (mmap系のファイルだと良くある話だが)"
拡張子「.iqy」の添付ファイルに注意! ウイルス感染狙うメールが1日だけで29万件も拡散 - INTERNET Watch

窓の杜

【Excel】他人から受け取った表の構造がわからない!エクセルで数式やデータの入力規則が設定されたセルを特定するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
【Excel】「ME1234」のような商品コードを「ME」と「1234」に分けたい!エクセルで区切り文字がないデータを分解するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
「Excel」にセルの選択を一部解除する機能が導入 ~「Office Insider」2018年1月版 - 窓の杜
【Excel】クリック操作だけで簡単に売上の前月比計算ができる!エクセルのピボットテーブルで効率よくデータを分析するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
【特別企画】Excelのお株を奪う? 「EmEditor」は連番入力や氏名の分割・結合も自動化できる! - 窓の杜
エクセルで表を印刷する際にミスを減らせる3つのステップに注目(3月第4週) - 窓の杜
“SUM()”関数を独語版「Excel」で使うには……行き過ぎたローカライズの悲劇に終止符を打つアドインが“Microsoft Garage”から登場 - やじうまの杜 - 窓の杜
【Excel】表を再利用するため数値を削除したら数式まで消してしまった!エクセルで簡単に数式以外のデータだけを削除するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
エクセルで数式が入力されているセルだけを見つける方法に注目(5月第4週) - 窓の杜
「LibreOffice」に1件の脆弱性、ODF文書に埋め込まれたSMBリンクを介して情報が漏洩 - 窓の杜
【Excel】「㈱」「㍿」「株式会社」などの表記がバラバラ!エクセルの名簿で会社名の表記を統一するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
エクセルで普通では検索できない“?”などの文字を検索する方法に注目(7月第2週) - 窓の杜
【Excel効率化】作業フローなどに使う図形をすばやく書きたい!手書きで書いた図をエクセルで使える図形に変換するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
Excelの結合セルもまるごと移動! 「RelaxTools Addin」に選択セルの移動コマンドが追加 - 窓の杜
Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter

できるネット

【エクセル時短】関数よりも便利!? 知る人ぞ知る「フラッシュフィル」はこんなときに威力を発揮する | Excel | できるネット
【エクセル時短】大きな表を会議で見るなら必須! ムダにスクロールしないウィンドウ操作の鉄板ワザ3選 | Excel | できるネット
【エクセル時短】VLOOKUPの応用ワザ。2つの条件で値を検索するために組み合わせる関数とは? | Excel | できるネット

Wikipedia

OpenDocument - Wikipedia
OpenDocument - Wikipedia
Extensible Markup Language - Wikipedia
XML - Wikipedia

Qiita

Pythonでパワポの説明資料(報告書)を生成する - Qiita
パワーポイント内のテキストをgrepする - Qiita

Twitter

Yuki Yugui Sonodaさんのツイート: "割と良くできたExcel文書を見て、文書作成にExcelを使う人の気持ちが初めて分かってしまった。Wordと違って出力用紙設定の幅に依存してないから、主に画面で見る目的の割と幅の広い画像・表入り文書に便利なんだな。 で、その文書は初めから社内Wikiに書きゃ良かったと思うんだけど"
SODA Noriyukiさんのツイート: "「メモリーダンプみたいなものをそのまま保存」って、Smalltalkのプログラムの保存(システムイメージのスナップショット)もそんな感じだし、Xerox文化~って感じがする>RT"
渋川よしきさんのツイート: "ほんこれ。Excel嫌いすぎる人は、ウェブですぐに超えるものを作れると思ってる。数式使いたい、ドラッグでまとめて入力、コピペとか言われた瞬間に死ぬ。… "
qsonaさんのツイート: "社内で表計算ソフトウェアを利用したマスタデータ管理の仕組みを作ったときに「なんで表計算ソフトなの?管理画面つくればいいのでは?」と聞かれることが数回あったが、「表計算ソフトは100点だとは思っていないが80点以上ある、80点を超えるソフトウェアを作るのはとてもむずかしい」と説明している"
Teppei Satoさんのツイート: "まさにその通りで、80点の管理画面付きデータ管理を量産できるのがkintoneです。… "
qsonaさんのツイート: "80点で良いし80点のものを自分で作るのってすごい大変なんですよね。。 社内でヘボいツールが出来るたびに、kintoneを適用すべき場面なんだろうなあって思っているんですが、次に見かけたらちょっとpushしてきますw… "
楠 正憲さんのツイート: "ほぼほぼOffice Suiteがブラウザで動くようになって、印刷の問題が解決し、ドライバの問題もなくなって、台数ならPCよりもスマホのエコシステムが大きくて、ようやっとデスクトップLinuxの障壁がほぼほぼ霧散したのに、デスクトップUX自体が陳腐化してしまって誰も自由化することに興味を持たない時代"
勝(まさる)さんのツイート: "Office OnlineのPowerPointで図を描いてみると、幻想だとわかる。"
勝(まさる)さんのツイート: "出張先のホテルで、パワポ修正しようとOffice Onlineに食わせた後、図を調整しようとしてもまともに線すら引けなくてどうにもできず、修正前のままプレゼンしたのは懐かしくも苦い思い出。"

Announcements and Press Releases - Open Document Format (ODF) 1.2がISO/IEC(国際標準化機構/国際電気標準会議)によって国際標準26300:2015として発行されました
オフィス文書のためのオープンな文書形式(Open Document) v1.0改正原案作成委員会 | IPSJ/ITSCJ
[mixi]ODFのJIS化 - ODF (OpenDocument Format) | mixiコミュニティ
[mixi]ODF V1.2 が OASIS 標準になりました。 - ODF (OpenDocument Format) | mixiコミュニティ
村田真のXMLブログ
村田真のXMLブログ
Extensible Markup Language (XML) 1.0 (Fifth Edition)
Extensible Markup Language (XML) 1.0 (第五版)
クラウド会計ソフト「freee」のExcel用アドイン提供開始、独自のfreee関数で勘定データを自動で取り込み - INTERNET Watch
「LibreOffice 6.2」リリース、NotebookBar UIが正式機能に | OSDN Magazine
Tableauの関数を全て試してみる〜表計算関数編その1〜 #tableau | DevelopersIO
ドキュメント技術とプログラミング言語の相似について - golden-luckyの日記
なんでドキュメントといったらXMLが出てくるのか - golden-luckyの日記
SXML
XMLをLisp評価器で実行する - golden-luckyの日記
XMLをつぶす機械を作る機械を作る - golden-luckyの日記
XMLのつぶし方 - golden-luckyの日記
Index of /office/OpenDocument/

EditorConfig

EditorConfig
EditorConfig
EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
EditorConfig でエディタの設定も共有しよう - デブハゲ
.editorconfigが便利すぎて失禁した - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)

リファクタリング

第36回 リファクタリングについて:Android Studio最速入門~効率的にコーディングするための使い方|gihyo.jp … 技術評論社
リファクタリング(IDE チュートリアル) - RAD Studio
IDEの機能比較:ローカル変数の抽出 - しおしお
NetBeans IDE - 編集とリファクタリング
コードの作成とリファクタリング (C++)
Eclipse JDT のリファクタリング機能を探る
マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ - Publickey
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「VSCodeで変数名を変更する機能使ってみたら別の変数まで書き換わってて、スコープも確認せずにやってるクソ機能だった……(結構やりなおし発生)」 / Twitter
ASTを活用してコードの自動修正に挑戦してみよう - Cybozu Inside Out | サイボウズエンジニアのブログ
WideStudio/MWT Home page
メンテナンス性とモジュール化のためGitHub OctoKit JavaScript REST SDKをリファクタリング

コード整形

Artistic Style - Index
Artistic Style download | SourceForge.net
島 敏博さんのツイート: "C言語,C++言語用自動整形ツール、astyle https://t.co/pJvvj3Yn66 はこういう整形ができて素敵 --align-pointer=type ポインタの*、参照の&を、型側に寄せるか変数名側に寄せるかを指定するオプション。*も&も型の一部なので私も型側 https://t.co/e60bKZQ0PO"
ちゃーしゅーねこさんのツイート: "代入の=の位置を縦にそろえるの嫌う人結構いますけど(別に僕は嫌いじゃない)、gofmtだと行末コメントが複数行にあると縦にそろえられる件はどうお考えなのだろう"
なかのん&マジックさんのツイート: "行の途中の何かを基準に無駄にスペース入れてしまうと、その位置では左すぎる行を挿入しなくちゃいけなくなった時に、本来は変更不要な行までdiffに含まれてきて、レビュー時のリスクが高まるんだよな。行内diffまで表示してくれるレビューツール使ってたらマシだけど、結局、blameにゴミが入る。"
インデントのスタイルについて - in neuro

コード検索

Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
Geoff's site: The Silver Searcher
ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
コード検索ツール「Sourcegraph」、オープンソース化される | OSDN Magazine
なかのん&マジックさんのツイート: "Mozillaの現在のソースコードビューアはJavaとObjective-Cには非対応なものの、かなり使いやすい。けど、ローカルに立てて他のプロジェクトに使えるのかどうかちょっとよく分からんかった。 https://t.co/IdJxSXsv6f"
/ - mozsearch
なかのん&マジックさんのツイート: "JSとC++の境界もまたいでくれるのでありがたい。 https://t.co/a9ZYoojYyE"
Symbol _ZN18nsIPlaintextEditor10InsertTextERK12nsTSubstringIDsE,#insertText - mozsearch
chikoskiさんのツイート: "みんな巨大なJSのコード読むのどうやってんだろう。1万行以上 / 100ファイル以上の場合"
Makoto Mizukamiさんのツイート: "読んだふりをする (違 / 私の場合は, grep しながら興味と合致しそうなところを探すことが多いですかねえ. それこそ good practice があれば試してみたい.… "
chikoskiさんのツイート: "私の場合は、The Sliver Searcher(agコマンド)で探して、lessで読む感じ。真面目に読むときは、継承関係や参照関係を図に書きながら読むことが多いのですが…コード検索エンジンが使える場合は、それも使います。タグジャンプはしないかな"
なかのん&マジックさんのツイート: "イベントリスナを探すの超めんどうくさいな……addEventListener(の後に改行あるケースもあるし、イベント名が変数な可能性もあるし。"

全文検索

簡潔データ構造

簡潔データ構造 - Wikipedia
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
簡潔データ構造の第一歩 - Koike's Lemma
文書解析のための簡潔データ構造 | Preferred Research
https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0ahUKEwjKtab2i7HQAhUGmpQKHbOqDcEQFghIMAY&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D65880%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNEplWOqDZosSHI_og4VS9Ateuh5WA&sig2=eUziEC640ySMd51wseszFQ&bvm=bv.139250283,d.dGo
wavelet行列で高速な「もしかして友だち?」検索 | 株式会社サイバーエージェント
[Javaの小枝] 週刊 簡潔データ構造を作る 番外編 5分でわかるLOUDS - Qiita
NII表紙.indd
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)

アスペ日記

気ままなブログ

高速文字列解析の"別"世界 - 気ままなブログ
Wavelet Treeをもう一度 - 気ままなブログ
Wavelet TreeのTop-Kの改善 - 気ままなブログ
FM-Index - 気ままなブログ

スライド

FM-indexによる全文検索
Oktavia全文検索エンジン - SphinxCon JP 2014

Qiita

ハクビシンにもわかる全文検索 - Qiita
[C++]コンパクトなBWT - Qiita
SA-IS - Shogo Computing Laboratory
SA-IS(Suffix Array - Induced Sorting)を実装した - Qiita

Twitter

Rockridgeさんのツイート: "Searchfox(Firefoxのソースコードの全文検索ツール)がWindows版特有のRust/C++コードのインデックス化に対応した。 / “PSA: searchfox now indexing Windows Rust…” https://t.co/GqjfUhdW8p"
Makoto Kato ︎︎さんのツイート: "https://t.co/rIW92muoIF ってGoogle社内でも使われているソースインデクサ使ってるんだろうけど、あの会社の人たちあれで満足してるの? https://t.co/KK3JpDgl2f の圧倒的な検索能力を見てしまうとねぇ。。。"
Code Search
Searchfox
Makoto Kato ︎︎さんのツイート: "ソースコードインデクサ作るのにclang-plugin使うというアイデアはホント正しい"

ぬるぽへさんのツイート: "前々から何度も言ってるんだけど自分が今までに閲覧したサイトの全てから光速に検索できてほしい"
ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++
Oktaviaとは何か? — Oktavia
Shibu's Diary: [JSX][FM-index]httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!
Microsoft、Bing検索エンジンの主要コンポーネントをオープンソース化 | マイナビニュース
Groongaでb Bit MinHashを使って高速に類似検索 - CreateField Blog
ストップワード とは 意味/解説/説明 【stop words】 | Web担当者Forum
Windows サーチに拡張インデックスモードを追加 ~「Windows 10 19H1」Build 18267 - 窓の杜
メモリ効率のよい全文検索をRustとWebAssemblyで実現する

正規表現

PCRE2

Perl Compatible Regular Expressions - Wikipedia
Perl Compatible Regular Expressions - Wikipedia, the free encyclopedia
PCRE - Perl Compatible Regular Expressions
Index of /pub/pcre/
PCRE2 specification
perlre - perldoc.perl.org
PCREの範囲の正規表現を可視化してくれるサイト - 唯物是真 @Scaled_Wurm
PCRE2-10.31
pcre2unicode specification
unicode - libpcre2 Code Unit Width - Stack Overflow
PCRE2 Open Source Library for Perl Compatible Regular Expressions
PCRE2 specification
pcre2 specification
Project Zero: (^Exploiting)\s*(CVE-2015-0318)\s*(in)\s*(Flash$)

Oniguruma

Oniguruma - Wikipedia
kkos/oniguruma: regular expression library

本の虫

本の虫: なぜC++0xの正規表現は、ECMAScript準拠なのか
本の虫: C++の正規表現ライブラリ: std::regex
本の虫: JavaScript規格の正規表現リテラルの文面の疑問点

POSTD

Sublime Textの「あいまい一致」をリバースエンジニアリング | プログラミング | POSTD
部分文字列とRegExpの領域の冒険 | 未分類 | POSTD
40行以内で正規表現エンジンを構築 | プログラミング | POSTD

GitHub

eriknyquist/librxvm: non-backtracking NFA-based regular expression library, for C and Python
nadrane/build-your-own-regex: This is a test spec driven guide to help you build a simple regex implementation
microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.

Qiita

正規表現のJITコンパイラを実装する - Qiita
Brzozowskiのアルゴリズム - なぜDFAを2回反転すると最小化できるのか - Qiita

Wikipedia

正規表現 - Wikipedia
Regular expression - Wikipedia
Regular tree grammar - Wikipedia
Thompson's construction - Wikipedia

Twitter

OS作れないマンさんのツイート: "生成されるパターンに順序を付けて、文字列を整数で表現する考え方を @sinya8282 さんから聞いた気がする。 https://t.co/L3OjrTA2Ps"
kb10uyさんのツイート: "正規表現エンジン、パターンマッチできるということは逆にパターンからマッチする文字列を生成できるよな普通に考えて"
島鉄雄さんのツイート: "そのページ冒頭の電話番号の正規表現が複雑過ぎてビビる… 正規表現は結果であって、そこに至る途中経過がバッサリ無いのが問題だろう。 だから、電話番号は正規表現じゃなくて、BNFで記述してパーサジェネレータを使うべきだろうという事を理解した。 可読性が高いし、速度もそれ程問題無いはず。… https://t.co/MDhAwxkmTl"
tc39/proposal-regexp-unicode-property-escapes: Proposal to add Unicode property escapes `\p{…}` and `\P{…}` to regular expressions in ECMAScript.
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜 - Eureka Engineering - Medium
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、FastCopy の UNIX WildCard 実装も NFA 。 (ただ、イプシロン遷移対応が面倒だった。あとUTF16対応も)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Readable Regular Expression が欲しいところ。 似たことを考える方は多い様子。 (expresso なんてGUIツールあるのね) https://t.co/KorHIXXCGX」 / Twitter
Readable regular expressions without losing their power? - Software Engineering Stack Exchange
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに include/exclude は UNIXワイルドカード形式サポートだけど、ビットシフトによる非決定性有限オートマトン(NFA)を使って作ってるので、さほど遅くならないはず。 (ビットシフトだと、NFA弱点の多状態を同時進行できる)」 / Twitter
yoh2さんはTwitterを使っています 「昔見掛けた、単純なくせにひどく時間がかかる正規表現ってこんなのだったかな。なにか違う気がする。 .*?.*?.*?.*?.*? 最短一致させるためのバックトラックが延々と走るのがミソだったような。」 / Twitter
抹茶氏さんはTwitterを使っています 「@yoh2_sdj ReDoS で調べてみて」 / Twitter

ViVi & vine - regexp
ja
正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう | 徳丸浩の日記
DSAS開発者の部屋:最近の Python-dev (2017-02)
正規表現の略記法 \d と \s と \w – ものかの
Unicodeで「漢字」の正規表現 – ものかの
Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog
HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog
[JavaScript] 正規表現はコンパイルしたほうが処理速度が速いのか? - ログろいど
The Man Who Fell From The Wrong Side Of The Sky:2017年5月24日分
https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
危険な正規表現 | MOYO Laboratory
Onigmoを最大49%高速化した話 | κeenのHappy Hacκing Blog
正規表現技術入門を読んだ | κeenのHappy Hacκing Blog
YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
正規表現からLLVM IRを生成する - めもちょー
Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript
その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
ヘルプシステムで正規表現を使う - 増井俊之
正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects - Speaker Deck
Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 - Publickey
遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは? - GIGAZINE

grep

ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
第287回 Ubuntuで超高速grep「The Silver Searcher」を使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
The Silver Searcher のススメ - Qiita
grepより高速に検索できるag(The Silver Searcher)のインストール方法 - Qiita
超高速grep「The Silver Searcher(ag)」からhighwayに乗り換えた - Shoyan blog
grepの高速版「ag」 (The Silver Searcher) - メモ
agとptとripgrep,どっちがどうでどれを使えばいいのか調べた予習 - Lambdaカクテル
agとUnite.vimで快適高速grep環境を手に入れる · THINKING MEGANE

find

ドッグさんのツイート: "grep に対する ag みたいな,find のユーザフレンドリ版.find のユースケースの80%ぐらいを確保しつつ find より速くて出力が色付きで見やすい https://t.co/lZ8KiQdH4a"
sharkdp/fd: A simple, fast and user-friendly alternative to find.
jhawthorn/fzy: A better fuzzy finder
tavianator/bfs: A breadth-first version of the UNIX find command

編集距離

レーベンシュタイン距離 - Wikipedia
Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた
いまさら編集距離 (Levenshtein Distance) を実装するぜ | takuti.me
編集距離(レーベンシュタイン距離)の求め方 - 具体例で学ぶ数学
レーベンシュタイン距離のアルゴリズムを理解する
【技術解説】似ている文字列がわかる!レーベンシュタイン距離とジャロ・ウィンクラー距離の計算方法とは - ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発
編集距離アルゴリズムを使って文字列を変換する (1/4):CodeZine(コードジン)
レーベンシュタイン距離の編集操作を統合してグラフ化する - Qiita
編集距離についての説明及びPythonでの実装 - Qiita
編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | POSTD
bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG
七誌さんはTwitterを使っています: 「単語の類似度と言えばレーベンシュタイン距離なので記事を読んでいた。 Pythonのデコレーターは処理系へのアノテーションではなく、関数をラップする糖衣構文だと知って驚いた。 このメモ化の手法はLISPっぽい。 編集距離(レーベンシュタイン距離)を理解し、実装する https://t.co/m1jBS6A5po」 / Twitter
編集距離(レーベンシュタイン距離)を理解し、実装する - Qiita

ソート

Kazuho Okuさんのツイート: "なるほどMSBからradix sortすればcache localityが確保できるのか #spkai"
Kazuho Okuさんのツイート: "cache digestsの計算はradix sort使ったほうがいいんだろうな。存在すら忘れてた #spkai"
404 Blog Not Found:algorithm - bucket sort - 比較しなければソートは相当速い
404 Blog Not Found:algorithm - bucketsort.[ch] - 汎用かつlibcの*sortより高速な
積炭酸さんのツイート: ".NET ReflectorでC#のArray.Sortの実装見てるんだけどおもしろいね.再帰の深さ制限したクイックソートを使っているようだ."
ミクミンP/Kazuhiro Sasaoさんのツイート: ".NET Framework 4.5 以降は標準実装のソートアルゴリズムがイントロソートになったのか https://t.co/yPIyT5uAro 最悪でも O(n log n) 。 4.0まではクイックソートで最悪 O(n^2) https://t.co/EvD4ZyGcmf"
Array.Sort Method (Array) (System)
Array.Sort Method (Array) (System)
積炭酸さんのツイート: "ついでにSTLのstd::sort(Dinkumware)も見てみたけど,やっぱり似たようなことしている.範囲の大きさを見てヒープソートに切り替えたり,挿入ソートに切り替えたりしている."
イントロソート - Wikipedia
Introsort - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "「クヌース先生の本にqsortも分割してnが小さくなってきたら、挿入ソートに切り替えると書いてある」という話、昔、RingServerミーティングの道すがらShow(@shownakamura)さんから「qsort→挿入ソートという切替が、常時、挿入ソートになるミスが混入してて困った」というネタと共に聞いた記憶。… https://t.co/3fgdn2W6i8"
satさんのツイート: "昨日だかにバブルソート(O(n^2)のほうがクイックソート(O(n*log(n)))より速いケースいついて少し触れたので、小さな記事を書いてみました。バブルソートのかわりに挿入ソートを使っていますが、両方O(n^2)なので s/挿入/バブル/ と読み替えてもだいたいOKのはず https://t.co/H5nJZhPbzq"
ソートの計算量と現実のプログラム - Qiita
satさんのツイート: "「バブルソートのかわりに」以降は忘れてください…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、WindowsSDKのqsortはループ実装かつ、ピボット配列が62個の固定長で確保されている(64bit版)。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "qsortの最悪ネスト数はn=最大ピボット数では?と思ってしまうが、2分割するたびに個数の少ない方から先に処理するというトリックで、最大log2N を実現。 さらに小さなエントリは挿入ソート切り替えのため、log2 2^64 = 64から2減らして、62個の配列でOKという話。… https://t.co/RA77dPcHC1"
高速な比較安定ソートアルゴリズム「颯式」の紹介 - Qiita

スペルチェッカ

GNU Aspell - Wikipedia
欧文スペルチェッカー GNU Aspell — 名無しのvim使い
Rockridgeさんのツイート: "Fx55:Googleドキュメントなどアプリ側でスペルチェッカーが働く場合は、本体側のスペルチェッカーを動作させないことで無駄な処理を省いた。 / “1330912 - Don't init spell checker for …” https://t.co/CPLktJo8M0"
ブルームフィルタ - Wikipedia
Bloom filter - Wikipedia
確率的データ構造・ブルームフィルタについてのまとめ - kakts-log
ブルームフィルターとは
Shiro Kawaiさんのツイート: "Bloom filterはCommon Lispで実装されたものを以前仕事で使ったことあるけど気をつけて型宣言すれば非常に速いっす。Allegro CLではビットベクタのインデックスの範囲チェックを省くのに型宣言での値の範囲指定がクリティカルだったような覚えが… https://t.co/0VaNFjJg88"
Common Lispで動くブルームフィルタ作った - Lambdaカクテル
C++でブルームフィルタを実装する方法 | プログラミング | POSTD
渋川よしきさんのツイート: "Wordの文法チェックについてすごい書かれている。.netでもCOMでもいいからAPI化してほしいって10年ぐらい思ってる。… "
確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | プログラミング | POSTD

blog

本の虫: なぜedはクソなのか
Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
Emacs 風のキー入力部 - Tociyuki::Diary
Emacs 風テキスト・エディタ向けの端末キー入力手順 - Tociyuki::Diary
Emacs 風のキー入力部 (2) 単独 ESC 文字の受け入れ - Tociyuki::Diary
行の折り返し表示 その 1 - Layout クラス - Tociyuki::Diary
行の折り返し表示 その 2 - Line を求める - Tociyuki::Diary
行の折り返し表示 その 3 - キャッシュ - Tociyuki::Diary
テキスト・エディタの Undo - Tociyuki::Diary
テキスト・エディタのカーソル移動 - Tociyuki::Diary
テキスト・エディタのエコー領域 - Tociyuki::Diary
テキスト・エディタの文字列補完 - Tociyuki::Diary
テキスト・エディタの上下タイリング・ウィンドウ - Tociyuki::Diary
テキスト・エディタのウィンドウ - Tociyuki::Diary
テキスト・エディタのミニバッファ - Tociyuki::Diary
テキスト・エディタのインクリメンタル・サーチ - Tociyuki::Diary
テキスト・エディタのマルチ・バッファ - Tociyuki::Diary
テキスト・エディタの行の折り返し表示 その 4 - キャッシュ更新の改善 - Tociyuki::Diary
テキスト・エディタの interactive 引数指定の正規表現 - Tociyuki::Diary
[速報]マイクロソフト、Webブラウザで動作する「Visual Studio Online」発表。VSCodeベース、IntelliCode、Live Share、拡張機能にも対応。Microsoft Build 2019 - Publickey
テキストエディタを作る – GitHub 出張所 – プログラム関係のブログはここに
Goで作るテキストエディタ - Sansan Builders Blog
ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた - mizdev
Incremental Static Regeneration で実現する次世代のサーバーアーキテクチャ - mizdev
七誌さんはTwitterを使っています 「実際に使ってみたけど、メッセージが来た直後に取得すると結構な頻度で失敗する。0.1秒ほどウェイトを入れると問題なくなった。」 / Twitter
クリップボードの履歴をとるアプリの作り方 | 鳩でもわかるC#
クリップボードの内容の変化を知る方法 | 鳩でもわかるC#

GitHub

rhysd/NyaoVim: Web-enhanced Extensible Neovim Frontend
rhysd/neovim-component: <neovim-editor> WebComponent to embed Neovim to your app with great ease
vim/vim: The official Vim repository
welcome home : vim online
antirez/kilo: A text editor in less than 1000 LOC with syntax highlight and search.
DigitalMars/me: Micro Emacs in C
GrenderG/tte: tte (tiny text editor) is a terminal based text editor written in C from scratch.
adsr/mle: a small, flexible console text editor (C)
martanne/vis: A vi-like editor based on Plan 9's structural regular expressions
lpan/viw: VI Worsened, a lightweight and fun VI clone.
hellerve/e: A dead simple editor
maildrop/a2pr-j

POSTD

15年目のVim | POSTD

OSDN

ブラウザ上で動作するHTML編集コンポーネント「CKEditor 5 v12.2」リリース | OSDN Magazine
ブラウザ上で動作するリッチテキストエディタ「CKEditor 5 v12.3」リリース、文字数カウント機能などが加わる | OSDN Magazine
米Microsoft、ソースコードエディタ「Visual Studio Code 1.37」をリリース | OSDN Magazine
米Microsoft、「Visual Studio Code 1.38」を公開 | OSDN Magazine

Qiita

ctrlp.vimの使い方まとめ - Qiita
自作エディタをつくる Advent Calendar 2016 - Qiita
VSCode公式の機能で、リモートサーバにSSHして編集する【Insiders Preview】 - Qiita
HTML内でIDをつけた要素はJavaScriptのグローバル変数に格納される - Qiita
メニュー使っていますか? - Qiita
いま熱い最新スクリーンエディタmicro ことはじめ - Qiita

Wikipedia

vi - Wikipedia
vi - Wikipedia
nvi - Wikipedia
nvi - Wikipedia
Vim - Wikipedia
Vim (text editor) - Wikipedia

Twitter

シェル

解答略さんはTwitterを使っています: 「個人的には、zsh, awk, sed, textutilsといったUNIX系のCUIツールを現代的な視点で全て刷新してほしい。人間工学を取り入れつつ、頻出コマンドを全て1文字にしてタイプ数を現行シェルの半分以下に削減し、mapやfilterといった関数型言語の知見を取り入れた最強のツールを流行らせてPOSIXを滅ぼしてくれ」 / Twitter
解答略さんはTwitterを使っています: 「vimのノーマルモードでは、部外者に理解不能のキーコマンドを連打して画面をどんどん書き換えるけど、あんな感じでシェルを操作したい。」 / Twitter
解答略さんはTwitterを使っています: 「3年ほど前に「vimのようなコマンド入力でシェルを操作する拡張」を自作した。もうこれ無しでは生きれない。 僕以外の人類、みんなめっちゃ頑張ってコマンドラインにタイピングしまくってて笑う。あんまりTAB補完連打してたら小指壊すで https://t.co/aMkYfSyLgB https://t.co/PfrhQab6Zb」 / Twitter
解答略さんはTwitterを使っています: 「リポジトリはこれ。snippet.zshをsourceして、bindkeyをいくつか設定すれば動く。awkもperlもsedも使わず、素のzshだけで動くように作ってあるし、多分どこでも動く。ソースコードは短いけどキレイじゃないので、こういうの詳しい人がいたらどんどんフォークして改良版作って https://t.co/9cZL5zqrFA」 / Twitter
kaitou-ryaku/zsh-simple-snippet

グローバル変数

なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「https://t.co/4M2Vow6Yzw に報告してあるけど、今のGeckoのエディタって、変更直前にSelectionを変更、各メソッドはSelectionを取得してその範囲を編集ってやってる。」 / Twitter
1555919 - Make editor not update Selection directly
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「これ、分かりやすく言うと、グローバル変数を予め設定しておかないと動かないメソッドだらけって話。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「しかも、このグローバル変数にあたるSelectionの変更がとにかく遅い。DOMのRangeやSelectionの仕様が速度を全く考えていない仕様なのでそこのパフォーマンスの悪さは仕方ないものの、とにかく遅い。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「なので、editorをSelectionと切り離してしまえば速度も上がるし、コードも綺麗になるし、Chromeとの互換性も簡単に実現できるようになる(ただしものすごい行数の変更が必要)。」 / Twitter

Undo/Redo

ファイルシステム

Kazuho OkuさんはTwitterを使っています: 「ほんと、ディスクなんて大抵空き容量あるんだからさあ、その空き容量使って変更を巻き戻しできるようにしてよ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「unco は ld_preload であるがゆえに色々制限あるけど、ユーザランド fs でディレクトリ単位で任意の時点にロールパック可能とかキレイに作れるんじゃないのという」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@smbd 惜しい感じなんですよね。スナップショットだとちょっと粒度が大きいというか。あっコマンド間違えた、取り消し!みたいなことがしたい」 / Twitter
かげさんはTwitterを使っています: 「@kazuho すごい粒度の細かい自動コミット(ワンストロークごとコミットみたいな。そこまで言わなくても改行一回デリート一回コミットでも良い)内蔵の開発環境が欲しいです」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「fsのスナップショットじゃなく、ディレクトリやファイルのスナップショットがほしい、と言えばいいのかな。ボリュームバックアップとTime Machineの違いと同じ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「https://t.co/Z71pZUzeP0 これですね。すごく良い https://t.co/cbAwUyS7hE」 / Twitter
text.dvi
fjのYog教祖様さんはTwitterを使っています: 「@kazuho ElephantFS「btrfsやzfsは下がってな。こいつは俺でないと相手できねぇ事を言ってやがる。」」 / Twitter

じーくどらむすさんのツイート: "「階層構造を活かしたUndo」について考えていたが、これ実現したら結構使えそう。Undoって時系列で1本しか無いけど、しばらくたって「あの部分だけUndoしてぇー」って時に、そこの木だけにフォーカスしてUndoが可能。"
じーくどらむすさんのツイート: "ただし、RedoできるのはUndo実行時の木にフォーカスしている時のみ、アクションのChainが複数の木にまたがる場合はChainが分解される、などの仕様で色々と歴史の部分改ざん問題を回避する必要がある。"
なかのん&マジックさんのツイート: "ちょっと前に、GeckoのUndo/Redo周りを見てたけど、今の一本道なスタックでもキツいのに……"
なかのん&マジックさんのツイート: "まあ、どっちみち、ブラウザでやろうと思うと、消したハズのDOMノードをずっとundo/redoのスタックに積んでいかないといけないとか、ちょっとメモリに優しくない(JSでオブジェクトをつかんだまま、ツリーに戻って来たものを参照するかもしれないから)。"
なかのん&マジックさんのツイート: "undoが壊れるエディタとかまじで存在してて引く。"
Kazuho OkuさんはTwitterを使っています: 「何度でも言いますが、21世紀なんだし、エディタだろうがファイルシステムだろうがウェブ上のシステムだろうが、計算機上のすべてのUIはアンドゥ可能であるべきだし、そうじゃないシステムには unco 投げつけるべきなんですよ」 / Twitter

リサイザ

なかのん&マジックさんのツイート: "まだNightly 62での集計だけど、FirefoxのHTMLEditor固有の機能である、画像やら<table>やらのリサイザを使ってる人、予想通り少数ながら、予想外に使ってる人は使ってるって感じの数字だぞ?? https://t.co/OIcPy4cqO7 #もずでぶ"
Measurement Dashboard
なかのん&マジックさんのツイート: "1が意味するのは、実際にリサイザが表示されたHTMLEditorで、一回ハンドルをドラッグしてリサイズしたってこと。10の人なんかは10回リサイズやってるってこと。"
なかのん&マジックさんのツイート: "さすがにposition:absolute;の編集機能はほとんど使われてないな。 https://t.co/RJrdEtaHDo"
Measurement Dashboard
なかのん&マジックさんのツイート: "<table>エディタの方もサンプル数からするとまあ予想通りか。 https://t.co/RCCCCbN7zo"
Measurement Dashboard
なかのん&マジックさんのツイート: "Beta 62、Release 62での数字を見てからの判断になるけど、デフォルト非表示は問題なさそうなユーザ数だけど、リサイザのユーザ数を見るとややリスキーではあるな。"

解析木

DrumatoさんはTwitterを使っています: 「パーサがいきなりASTを作らずに一度具象構文木(解析木)を作ってから意味動作でASTにする実装のメリット,何があるだろう.」 / Twitter
市川 真一さんはTwitterを使っています: 「テキストエディタとかで、解析木生成パーサを流用する場合に対応する括弧へのジャンプが実装できそうな気がしています https://t.co/RKqMVsbb3C」 / Twitter
星にゃーんさんはTwitterを使っています: 「複雑な文法を持つ言語の場合パーサにいきなりASTを作らせるのが難しい場合がある(例えば演算子を自由に定義できる言語)、コンパイラが具象構文木を持ってるのでそれを出力するだけでコードフォーマッタができる、とか? https://t.co/9p2Yb1n7MK」 / Twitter
星にゃーんさんはTwitterを使っています: 「この二つは具象構文木である必要があるかどうかは微妙。ASTに加えてコメントとカッコの情報を持っていれば充分な気もする」 / Twitter
星にゃーんさんはTwitterを使っています: 「お気持ちでパーサを眺めると、具象構文木を生成する構文解析と具象構文木から抽象構文木への変換の合成と思うことができ、そうするとこの問題はどのぐらい両者を分離するかの程度問題と捉えることができる…?」 / Twitter
DrumatoさんはTwitterを使っています: 「とても共感できる意見をいただきました, 個人的に思ったのは,具象構文木からASTに変換する処理はトークンストリームから作るより随分シンプルなコードになるはずなので,そういう利点を持っていそう. 字句解析と構文解析を分けるかどうかとか,構文解析と意味動作を分けるかとかいう話とベクトルは一緒か」 / Twitter

検索

Takashi KawasakiさんはTwitterを使っています: 「いつも思うんだけど、こういう検索機能、ファイル名も検索対象に含めてほしいんだよね。例えば、プロジェクトに含まれるファイルのファイル名を全置換したい場合、ファイル名とそれを参照しているファイルの中のファイル名を同時に置換したいことが多い。 https://t.co/LiIZmFoKhq」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「Javaのネームスペース名変更とか軽く死ねる。」 / Twitter

平易なエディタ

Kazuho OkuさんはTwitterを使っています 「Viとかnanoみたいなキーバインディングは調べて覚えろ的なスパルタじゃなくて、コンソールで使える軽量の、メニューがついてるエディタってないのかな。軽量の!!!!だからね。EmacsはNGワードだからね!!!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「この件 @cwyang さんに教えてもらった mc をモノクロモードで使ってるけど、キーバインド覚えなくても使えていい感じ https://t.co/n6hWy8oNFO https://t.co/5w4DnpSnrS」 / Twitter

Monaco

Google、VSCodeの代替を狙う「Eclipse Theia」コードエディタをクラウド統合開発環境として採用。Google Cloud Shellに統合を発表 - Publickey
Makoto Kato ︎︎さんはTwitterを使っています 「cloud shell editorはTheia使ってるってことはエディタ部分はmonacoってことだよな」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GitHub CodespaceもGoogle Cloud Shell Editorもmonaco使ってるし、Geckoの自動テストにmonaco入れたほうがいいのかなぁ。https://t.co/TS7F0hjf9C が修正されたんで、致命的な問題はなくなったように見える (GeckoView除く)」 / Twitter
Fix composition logic for Firefox by belcherj · Pull Request #106873 · microsoft/vscode
Makoto Kato ︎︎さんはTwitterを使っています 「Eclipse TheiaってもともとTypeFoxが作ったエディタで、中身はVSCodeのエディタエンジン、Manacoを使ったものだけど、みんな分かってないのが笑えるというか、OSSとか発表されたらまずコード見るでしょ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「s/Manaco/Monaco/」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「いろんなものがMonacoによって駆逐されてしまうのかなぁ...」 / Twitter
Makoto Kato ︎︎さんのツイート: "Visual Studio Codeだって、そもそもVisual Studio Onlineのために作ったmonacoをElectronアプリにしてってところからなんだし、そもそも先祖返りしただけではと"
Makoto Kato ︎︎さんのツイート: "今まで存在したVisual Studio Onlineがなかったことになった件について"
Makoto Kato ︎︎さんのツイート: "Visual Studio OnlineはAzure DevOpsに名前変わって、Visual Studio Onlineが新たに発表されたのはわずらわしいので、アップルみたく"新しいVisual Studio Online"って名前だったらな"
Makoto Kato ︎︎さんはTwitterを使っています 「Monaco (VSCode)のビルド、LinuxよりもWindowsの方が簡単にビルドできるの、さすがMicrosoft感する。(Windows Termianlみたくrazzleコマンドでビルド環境設定できたらよりMicrosoft感)」 / Twitter

Vim

Masaki HaraさんはTwitterを使っています 「Vim: 最終行が末尾改行を含む JetBrains: 最終行が末尾改行を含まないが、最終空行には移動できない (IdeaVimの場合?) VSCode: 最終行が末尾改行を含まない」 / Twitter
Masaki HaraさんはTwitterを使っています 「汎用エディタとしてのVim, Ruby/Go用としてのJetBrains, Rust/TypeScript用としてのVSCodeを併用してるんだけど、3者ともに末尾改行の扱いが違うのでたまにミスる」 / Twitter
Kazuho Okuさんのツイート: "ログをテキストファイルにコピペする際に、vim起動して i して Cmd-V して遅くてウギャーってなるの1日に1回くらいある 正解は pbpaste > file なんだけど"
島鉄雄さんのツイート: "Emacs (substring "abcd" 0 1) ⇒ "a" (substring "abcd" 1 1) ⇒ "" Vim 'abcd'[0:1] ⇒ ab 'abcd'[1:1] ⇒ b これからも分かるように Vim は文字と文字の間という概念が無い。 だから文字を挿入する時に、文字の前に挿入する(insert)か、後に挿入する(append)かというコマンドが存在するのである。"
島鉄雄さんのツイート: "Emacs と Vim の違い Emacs のカーソルはポイントと言って文字と文字の間に位置しているから行末は文字の後ろに移動する。 Vim は違って文字の上に乗っているから行末でも文字の後ろには行かない。 Emacs → テクスチャの UV 座標指定 Vim → ファミコンなどのキャラクタベースの座標指定 と言える"
10/27,28はOSC Tokyoさんのツイート: "個人的によく使う、少しadvancedなvimコマンド3選 ・カッコの中を消す: di( ・複数行をコメントアウト: C-vで行頭を選択しI// ・空行単位の移動: {、}"
Vimのパッチ存在確認処理を速くした - プログラムモグモグ
SODA NoriyukiさんはTwitterを使っています 「emacsの場合 CTRL-_ (CTRL-/) が undo なので、この「直前に編集した場所に戻る」目的で CTRL-_ CTRL-p CTRL-_ とかしたりするな。undoの副作用でカーソルを戻して、二回目のundoでそのundoをキャンセルするという。 CTRL-p のところは連続undoを阻害する目的なので副作用の少ないコマンドなら何でもOK」 / Twitter
monaqaさんはTwitterを使っています 「コーディングのとき、一旦別の場所に飛んでコード片をコピーしてから、元いた場所にすぐ戻ってペーストする…そんな場面、よくありますよね。Vimなら g; と押すだけで"直前に編集した場所"にジャンプできます。g;/g,は"チェンジリスト"に登録された箇所を行き来できる便利コマンドです。 #vimtips_ac」 / Twitter

Windows

マイクロソフトサポートさんのツイート: "メモ帳で「F5」を押すと、現在の日付と時刻が挿入できます。ちょっとした会議のメモなど、日付を入れておきたい文書の時に便利ですよ。 #MSHelpsJP"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸は(空白インデントモードだと)インデントを1段解除するには「空白をひたすら削除」or「行選択してから SHIFT+TAB」(or そのマクロ化)しかない様子。 Python推奨な空白インデントだと、軽快に書きづらい点の解消は難しそうかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸サポートの方に、マクロでショートカット呼び出しの方法は聞いたので、それを試してみよう。それでもしっくり来ない場合は、他のエディタにお引越しするかな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸のサポート掲示板、コメントが付く速さと内容(開発の人が書いている?)は見習うべきものがあるなぁ。"
Masaru IritaniさんはTwitterを使っています: 「同じ編集の繰り返しを自動的に検出してくれる AI-assisted Refactoring は、リファクタリングの時間も誤りも削減してくれる素晴らしい機能ですね。 https://t.co/nrx4QynCcw」 / Twitter
Visual StudioさんはTwitterを使っています: 「We're expanding the application of #AI to accelerate learning and improve development agility with two new capabilities: whole line completions and refactoring. Read more: https://t.co/6Tn1X1tELr https://t.co/Z8USvIvO6Y」 / Twitter
Re-imagining developer productivity with AI-assisted tools | Visual Studio Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「久々にWZを見た、、、最初の頃使っていた。 ただ1プロセス・マルチスレッドのため、バグがあると他の編集中ファイルも巻き添えに全て死ぬので、1年くらいで利用中止したっけ、、、」 / Twitter

@d_toybox

histric-1

なかのん&マジックさんのツイート: "実際に書いたこと無いんだけど、実装してる側からすると、アプローチがマズいものが多々ある。"
なかのん&マジックさんのツイート: "Geckoは基本的にはエディタの動作のグレーゾーンはBlinkに合わせて行くので、bugzillaにバグ報告もらえたら一番確実。数ヶ月後に修正されてることが多いので、そのときに、サイト側のハックを削除できるようになる。"
なかのん&マジックさんのツイート: "Blinkのエディタの動作は手堅くて良いんだよね。単純にmakes senseな事が大半で、やりやすい。"
なかのん&マジックさんのツイート: "私が担当してるジャンルだと、イベント周りのBlinkの動作は気に入らないこと多いんだけど、エディタ周りは、なるほどねって感心すること多い。"
なかのん&マジックさんのツイート: "仕事では今でも秀丸でソースコード書いてるけど、色々と不満もあってどうしたもんかとは思う。ただ、編集能力にはほとんど不満はなくて、素早くファイルを開いたり、タブを検索できないという、ファイル間のナビゲーションの不満が大きい。"
なかのん&マジックさんのツイート: "昔、ダメもとでスマートロケーションバーの機能を提案してみたんどけど、案の定、却下されてて、なんというか絶望感しかない。"
なかのん&マジックさんのツイート: "秀丸の開発者さんは複数のファイルを同時に編集しないのかな?と不思議に思うぐらいに、この辺に改良がみられないんだよなぁ。"
なかのん&マジックさんのツイート: "は? 一つのEditorBaseに複数のスペルチェッカーを登録できるの?"
なかのん&マジックさんのツイート: "editorとspellcheckerと謎のテキストコンテンツを管理してくるクラス、変に別モジュールに分割されててややこしい。"
なかのん&マジックさんのツイート: "うん? resizeイベントって要素ごとに発火してたっけ……? / 強力なポップアップブロックが追加された「Chrome 64」安定版リリース - GIGAZINE https://t.co/Y8dxXb29U7"
なかのん&マジックさんのツイート: "それはさておき、Geckoのresizeイベントは発火しちゃいけないloadイベント前に発火しちゃってないのかな。この前その仕様知ったものの、まだ調べてないや。"
なかのん&マジックさんのツイート: "Firefox for Androidで読み込み終わると同時に再読込が始まるページがあるの、resizeイベントがどうこうってのを見かけた記憶がある。"
なかのん&マジックさんのツイート: "エディタでは、しばらくやれないけど、重大なバグがあって、Enterキーとかでパラグラフが分割されるとき、Geckoだけ後方にある要素が既存の要素になってて、他のブラウザは前方にある方が既存の要素になる。このせいで、undo/redoにちょっと無理あるし、どうにかしないと。"
なかのん&マジックさんのツイート: "BlinkはBlinkでundo/redoが直感からズレるケースがあるの見つけてるけど、まあ、そんなことやるWebアプリは無いやろなっていうレベル。Blinkはどうも、新しい要素をその次にある要素と紐付けて保存してるらしい。"
なかのん&マジックさんのツイート: "細かく見てると気に入らない動作もあるし、凄い変なバグも見つかるんだけど、総じてBlinkのエディタは良くできてるというか、手堅いなっていう印象。"
なかのん&マジックさんのツイート: "Geckoのエディタは、自動テストが無かった頃に作られてから放置されてたんで、単純に使わなかった時の挙動がとにかく怪しい。"
なかのん&マジックさんのツイート: "とりあえず、ブラウザのエディタの何がしんどいって、undo/redoの前に、ユーザーの編集以外に、JSでDOMツリーを変更されてる可能性があるわけだ。基準をどうするのか考えないと、変なところに要素を作ったり、移動したりすることになる。"
なかのん&マジックさんのツイート: "Twitterのツイート欄にWebページの内容を貼り付けると、一瞬だけスタイルそのままのリッチテキストが表示されて、すぐにプレーンテキストになるでしょ。ああいう感じで、機能制限やブラウザ感の差異吸収のために、結構、JSでエディタの内容っていじられるのよね。"
なかのん&マジックさんのツイート: "Geckoの長年の不要なkeypressイベント(仕様で後からほかのブラウザの事情から不要と定義されたんだけど)に対処している、reactのソースコードを見つけて、ホントに申し訳ない。数ヶ月以内になんとかしたい。"
なかのん&マジックさんのツイート: "Webアプリ開発者の負担を減らすために、IMEの未確定文字列がある場合にもkeydownとkeyupは発火するべきってのも、同時にリリースしたい。"
なかのん&マジックさんのツイート: "とりあえず、keypressの方は最低限、どこを書き替えないといけないかを洗い出したけど、自動テストでeditorの挙動が全く引っかからなかったんで、自動テストでテストされてない機能が他にもありそうで、見通しはまだまだ。"
なかのん&マジックさんのツイート: "まあ、Thunderbirdを壊さないように、また、FirefoxのUIのコードの書き換えを最小限にするためにトリッキーなことしてるから、自動テストで引っかかりにくいんだけど。"
なかのん&マジックさんのツイート: "ブラウザのHTMLエディタは私が誤解してないなら、IEが最初に実装して、Netscape/Mozillaが独自に追走、そしてWebKit/BlinkがIEの動作をより研究して実装って流れだと思う。なので、Geckoの動作が一番違ってて厳しい。"
なかのん&マジックさんのツイート: "Geckoの動作をとっととBlinkと同じにすれば良いやんって思った人は互換性とか分かってなさ過ぎなのでお願いします。"

histric-2

道化師さんのツイート: "それにしてもWebブラウザ上で動かすタイプのテキストエディタ、よくやるよなぁ。textarea が直接的な拡張に対応してないが為にみんなクッソ涙ぐましい努力して実装してるよね・・・。"
なかのん&マジックさんのツイート: "正直なところ、テキストエディタをプログラミング勉強中に頭ひねって作ってた身としては、ブラウザのHTMLエディタがなんであんな高速に動いてるのか不思議だったりする。あんだけ、DOMオブジェクトを生成・破棄繰り返す上にエディタ的には余計なイベントやら、ミューテーションの通知投げてるのに。"
なかのん&マジックさんのツイート: "そーいや、生のDOMをガリガリ使えるWeb開発者さんは、Geckoのエディタのコードを見ると(汚くてしんどいけど)面白いと思う。やってることは、C++でDOMツリーをDOMイベントドリブンで修正してるだけやから。 https://t.co/9IjIAH2jYm"
HTMLEditRules.cpp - mozsearch
なかのん&マジックさんのツイート: "ちなみに、Geckoのテキストエディタも、HTMLエディタの機能削減版なだけだったりする。<textarea><div>value</div></textarea>みたいな感じ。"
なかのん&マジックさんのツイート: "やっぱ、あらためて見ててもSelectionとRangeが遅いなぁ。エディタが編集してる最中はSelectionの変更を最小限にすべきなんだけど、mutation observerとの絡みがあって、ざっくりと削減もできないんだよなぁ。誰だ、あんなの考えたヤツは。"
なかのん&マジックさんのツイート: "DOMツリーの変更とSelectionの変更は全て、EditorBaseのラッパメソッド(新設)を通すようにして、Selectionの変更メソッドは新しい範囲をキャッシュするだけにする。DOMツリーの変更ラッパメソッドはSelectionのキャッシュを実際にSelectionに行う、って形だとかなり改善できるかとは思うけど、つらい。"
Makoto Kato ︎︎さんのツイート: "CheckSelectionStateForAnonymousButtonsが呼ぶ… "
Makoto Kato ︎︎さんのツイート: "常にではないが… "
Makoto Kato ︎︎さんのツイート: "それ、formdata.jsmかなんかがfennecだけ動いてて、そいつがselection listener使ってるから余計重い話ある… "
Makoto Kato ︎︎さんのツイート: "abspos editorが実はFirefoxでは使う方法がデフォルトでは存在しないのに、そいつがSelection Listenerで常にReflow発生させてる話があって、あれprefs追加しようと思ったの忘れてた。content editableでチョイ速くなるはず"
Makoto Kato ︎︎さんのツイート: "あれ、Thunderbirdだけしか使う方法ないんだよね"
なかのん&マジックさんのツイート: "https://t.co/fCjJEth8BE これです??… "
なかのん&マジックさんのツイート: "うう。HTMLエディタではスペルチェッカー動いてないのを忘れてたorz"
FormData.jsm - mozsearch
なかのん&マジックさんのツイート: "エディタ周りのセキュリティリスクをどうにかうまくコントロールできないもんかなぁ。今、ぼんやりと考えてる設計は、DOMツリーに修正加えながら色々とやるんじゃなくて、何を削除して、何を追加するのかを先に全部計算して用意しておき、一気に変更する時だけひたすら慎重にやるって形。"
なかのん&マジックさんのツイート: "リッチテキストエディタをブラウザ上で作ってる人、日本人で居ないかな?"

histric-3

なかのん&マジックさんのツイート: "このページ、書いた人が横スクロールは使いにくいという判断をしていて興味深い。 / 自作ゲーム大年表 https://t.co/e571kwMUVA"
自作ゲーム大年表
なかのん&マジックさんのツイート: "今、まさに、writing-modeでスクロールバーが一方向に対してだけ存在してる要素は、垂直方向のwheel操作でスクロールできるようにする実験的なパッチがFirefoxのNightlyに入ろうとしてるところ。 https://t.co/4wUSMlkXbx #もずでぶ"
なかのん&マジックさんのツイート: "実際のデバイスで色々とやってみないと提案されている挙動が直感的かどうか、また、本当に使いやすいのか分からないので、縦書きのページのリストを募集中です。 https://t.co/WCrhIcNZ6k"
なかのん&マジックさんのツイート: "クロスブラウザなリッチテキストエディタを一から書いてみたさあるんだよな。ブラウザ側をやってると、「なんでそんな実装になってんの?」みたいに思えちゃうんで、ちょっと、現実の開発者さん達と知識や発想の乖離が起きててやりづらさを感じてきてる。"
なかのん&マジックさんのツイート: "Thunderbird使ってて思うのは、bodyテキストという好ましくないものが、引用部分でEnter押した時にデフォルトでそのモードになっちゃうところかな。ただ、人間の見た目的に問題少ないのと、まあ、機械的にもそこはよきに計らいやすい。"
「この世界の片隅に」はいいぞさんのツイート: "Nのnviにimctrl, imkeyオプションを実装しました。Tera Term / RLoginのエスケープシーケンスを使って、input methodを自動的にオン・オフできます。nvi-m17nのcannactrl, fepkeyオプションと同じように動きます。… https://t.co/GGHXnWQ2Ab"
なかのん&マジックさんのツイート: "HTML5的には<b>とかみたいにスタイル情報を持ってる要素を英語でなんと呼んでたっけ……"
なかのん&マジックさんのツイート: "特に呼び名が無さそうだな。意味付けが行われたせいか。HTML4.01だと"Font style elements"とインライン要素限定感あるグルーピングされてるな。"
なかのん&マジックさんのツイート: "ところで、エディタやってると、インライン要素とかブロック要素っていう用語が時代遅れなの分かってて使い続けないといけないのつらい。まあ、Blink/WebKitみたいにGeckoのエディタもdisplayの値を参照しろって話ではあるんだけど、その変更はかなりキッツい。"
なかのん&マジックさんのツイート: "しかも変更した所で、実際のwebアプリでの互換性向上はほとんど無い……"
なかのん&マジックさんのツイート: "今後のGeckoのエディタのために数ヶ月もデザインの変更に付き合ってくれてる会社や同僚には感謝の念しかない。日本の会社じゃまず無理そうだ。"
なかのん&マジックさんのツイート: "Site Isolationのためにメモリを減らそうとすると、今、やってる範囲では、TextEditor/EditorBaseのメモリ削減はサイトによってはそれなりに効果ありそうなんだけど、そのためには一時的に(かつスタックで済む)メンバは普段は持たない事が肝要だけど、今回のデザイン変更で一気に解決しそうな感じ。"
なかのん&マジックさんのツイート: "とりあえず、実際にコード触ってる人間以外に意味の無い、EditorBaseとTextEditorはマージして、メンバのalignmentを調整して1バイトでも削減すべきなんだろうな。"

histric-4

なかのん&マジックさんのツイート: "編集で(一時的に)壊れてる<table>を修復するっていうAPIがあるんで、それのリファクタリングのためにテストを書いてみると、壊れた<table>ではそれを検出した途端にエラーを返すという謎な挙動になってて、結局何もしていない……"
なかのん&マジックさんのツイート: "昔のGeckoのエディタのAPIを使ってた人って、本当にAPIなんだっていう感覚で書いてるんじゃなくて、実装の一部、C++じゃないとしんどいところをC++で書いて、JSでいけるところはJSでって感じにしただけなんだろうなぁってのをあらためて。"
なかのん&マジックさんのツイート: "まあ、大元のXPCOM APIをバンバン作ってた頃って、技術的にはアドオンのAPIとして使えますよって感じだけど、実際はアドオン自体が管理すらできない代物だったから、その意識が無かったってのも大きいんだろうな。"
なかのん&マジックさんのツイート: "呼び出し元のお気持ちに忖度したり、呼び出し時の状況に依存したりしなかったりするようなもの、APIとして最低だわ。"
なかのん&マジックさんのツイート: "例えば、foo(Element* bar)みたいな形のAPIが、barがnon-nullな要素だったらその要素基準で処理が行われて、null (undefined)だったら現在のSelectionの情報から勝手に探すよ、みたいなの多すぎ。バグでnullが渡された場合、呼び出し元のデバッグが困難になるからやったらあかん。"
なかのん&マジックさんのツイート: "使い勝手のためにそうしたいのなら、別のAPIでSelectionからそのElementを返すようなものを用意すれば良いし、その形なら、後で他の動作も選択肢に入れやすくなるし、何より呼び出し側のコードが明示的になって綺麗になる。"
なかのん&マジックさんのツイート: "「頭の良い」APIは将来、その挙動を変えないと破綻するって時に変えて、そのユーザが全滅するというオチ。"
なかのん&マジックさんのツイート: "秀丸、FirefoxのURLバーみたいに相対的に近いところにあるファイルに手軽にアクセスできるUIがあれば最高なのと、grepが速ければなぁ……(使ってるけど)"
なかのん&マジックさんのツイート: "macOSでVSCode使ってみてるけど、微妙に「あれができない」みたいなのにぶちあってて……"
なかのん&マジックさんのツイート: "それにしてもThunderbirdでのみ使ってるeditorのAPIをとにかく自動テストで固めないと、思わぬタイミングでregression報告が来るのキツいな。"
なかのん&マジックさんのツイート: "まあ、もう、editorのコードを自動テストの追加できないぐらいにドラスティックな変更かけることはもはや無いとは思うが。"
なかのん&マジックさんのツイート: "とりあえず、今ある仕様案にはかなり強い設計に書き換わってる。"
なかのん&マジックさんのツイート: "とにかく、標準仕様策定の主導権を握れないと、自分のところのプロダクトの設計では実装しづらいものが仕様として概ね固まってしまうと、大きな書き換えを余儀なくされるので、「まだか」って標準仕様界隈からはつつかれるんだよな。"
なかのん&マジックさんのツイート: "ただ、仕様案が固まってからの実装だと、設計自体を最適化しなおせるんで、選考実装してるブラウザが細かいバグを修正するために大きく書き換えてるのを生暖かく見てられるのはある(見られてることもある)。"
なかのん&マジックさんのツイート: "今のところ、どのテキストエディタも「ファイルを開く」という操作を非常に軽んじてUI設計しているのが私個人の利用方法と合わないんだよな。"
なかのん&マジックさんのツイート: "おお、VScodeのCtrl+Pの存在に気付いてなかった。秀丸で欲しかったの、この機能。作業速度が体感で倍ぐらいになってる。… "
リベラル.3goさんのツイート: "F1でも同じです… "
なかのん&マジックさんのツイート: "F1だとコマンドの一覧出てきますね……… "
リベラル.3goさんのツイート: "コマンドパレットは 何も入力がないとファイル一覧 >を最初に入れるとコマンド一覧 # を最初に入れるとシンボル一覧 になります。 F1は > が最初から入力された状態 Ctrl + pは何も入力がない状態 Ctrl + tは # が最初に入力された状態 で起動します 他にできることは ?を入力すると出ます… https://t.co/3NH66khMzH"
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ガッツリとした高速化は他の方々が先に入れてくれて、その後、ひたすら細かい最適化を3年間入れ続けてきたけど、その中でも効果があったのは、 1. virtual callを極力減らす 2. エディタが必要なオブジェクトはpublicメソッドが呼ばれた時に一度だけrefcount増やして保証する」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「3. 再生成するインスタンスは極力再利用する 4. 変更されない文字列はヒープに確保してnsString間でコピーが発生しないようにする(nsAutoStringは必ずコピーが発生するので遅い)」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「1はXULアドオンの廃止が無ければできなかった。他はとにかくメモリをいじるなって所につきる感じ。4はnsAutoStringの設計が悪いように思えるのでそのうちに見てみる。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ちょっと見てみたけど、4は半分間違いみたい。コピー元がrefcountableな文字列ならコピーを行わないようになってた。ただ、inlineのバッファで文字列を持ってる状態でnsStringに渡すとコピーが発生するのでホットパスでのnsAutoStringは気をつけないとダメっぽい。」 / Twitter

分散処理に詳しいオタクさんはTwitterを使っています 「Emacsのお気に入りな機能にM-tの単語入れ替え機能があって、間違って INFO(LOG) とか入れてしまった時に一発で LOG(INFO) にスワップできます(そんな入力ミスをするな)」 / Twitter

C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題 - @IT
「IntelliCode」がさらに進化し、行全体を候補として提案。まるでAIとペアプロしているように - Publickey
大規模ソースコードの読み方
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画を立てる時につい「何をするか」に注目してしまう。そうではなく先に断片でいいから「(中間)成果物」を挙げる。そしたら、それらをつなぐ「変換」を挙げる。そうしてプロセスを組み立てる。これを表現するのが PFD。中間成果物が選べない人はプロセスを「分割統治」できていない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画の立て方 1.成果物を列挙する(生成プロセス決まる) 2.PFD (Process Flow Diagram) を書く 3.生成プロセスの時間を見積もる 4.リソースを配分する 5.リソースごとにトポロジカルソートする 6.バランスやクリティカルパスで調整 完成」 / Twitter

国際化

MS

リソース DLL

Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのLCIDは、地域を指定した個別ロケールIDと親(総称的・ニュートラル)IDとが用意されていて、親IDリソースだけ作れば、個別ロケール環境に応じて自動フォールバック可能。 だが、繁体字だけは親IDがVS2017から選択できず、リソース言語IDを直接0x7C04に編集する必要あり…後付けなのかな?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、直接編集した後に VS2017 で参照すると、こんな表示に。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10上のHK/TWの両環境で、正しくフォールバックされることを確認。 (ただし、Win10から対応した可能性も残る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(HK)からも、0x7c04なリソースにフォールバックされることを確認。 苦労して MUIの枠組みを使わなくても感(笑)"

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "フランス語Windowsだと、ASCII部分のキーアサインも随分違うのね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ダウンロードフォルダは Téléchargement、デスクトップは Bureau と表記されていた。へぇ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ドイツ語Windowsだと、YとZだけが入れ替わっている。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "イタリア語で、第二キーボードを日本語にするときは「Giapponese」。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "アラビア版Windowsは、全てが鏡像の世界…単に「文字が右から左に」というレベルではなかった(笑) ボタン配置もタスクバーもごみ箱も、すべて逆さま。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そう言えば、最初はWindowsも文字列だけ右から左にしようしたが、矛盾が吸収できず結局、全て逆さまにした、という話を大昔に読んだ気がする…が元ネタが思い出せない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(英語)でも(フォント=MS Shell Dlg)同時多言語表示できることを確認。 (昔はUNICODE版でもフォントが無く▮▮表示に。ちなみにANSI版等でUNCODE変換が失敗した場合は??表示に)… "

Gakuさんのツイート: "Win32APIのGetNumberFormat 関数を使って環境にあわせたロケールの数字形式に従って書式化されてはいかがでしょう。 https://t.co/lRY3KP9zxF… "
GetNumberFormat 関数
Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 このへんを眺めていたところでした。 https://t.co/7crsCHMuNG 日時その他もなかなか頭が痛いですが(笑) https://t.co/Uqho9drVT6… "
Locale and Culture - Globalization | Microsoft Docs
GetUserPreferredUILanguages function (Windows)
Multilingual User Interface (MUI) Support - NyaRuRuが地球にいたころ
MUI
Multilingual User Interface API - Google 検索
日本語のWindowsは礼儀作法にうるさい?――英語環境で動作するコードが日本語環境でNGなワケ:その知識、ホントに正しい? Windowsにまつわる都市伝説(86) - @IT
英語版と日本語版、どっちのOS環境が使いやすい?:山市良のうぃんどうず日記(23) - @IT
Shirouzu Hiroaki(白水啓章)さんのツイート: "今更ながら(多言語リソース/DLLを直接使う場合に比べて)MUIの枠組みを使うメリットが手間の割に見えないな。 https://t.co/Q7RfWu0eUZ"
Multilingual User Interface | Microsoft Docs
言語パックをストアから入手可能に ~「Windows 10 Insider Preview」Build 17074 - 窓の杜

Mozilla

Rockridgeさんのツイート: "MozillaはFirefox本体のリリースとロケールのリリースを分離することや、ロケール変更を即時に反映させることができるように、基盤整備を進めている。 / “Gecko Locale Selection remodel co…” https://t.co/Ii5ZBZAucY"
Rockridgeさんのツイート: "Fx55:日時の表示フォーマットについて、OSのロケールではなくブラウザのロケールを基準にするようになった。参照:https://t.co/Jyo42LH9H9 / “1339650 - Introduce mozIntl.Da…” https://t.co/cHPNVoaNvb"
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに「翻訳記憶」のダウンロード機能が実装された。翻訳記憶は承認済み翻訳の集合体。ダウンロード機能はこれを別プロジェクトなどで再利用可能にするものだ。 / “Reuse…” https://t.co/9SWanizaYw"
Rockridgeさんのツイート: "Firefox(デスクトップ版・Android版)やThunderbirdなどの日本語ローカライズに関する進捗を確認できる。 / “Mozilla Localization Team Japanese” https://t.co/S5TET0Hbso"
Mozilla Localization Team Japanese
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに最大文字数の超過を防止する機能が追加された。残り文字数も表示される。また、検索の速度もアップしたそうだ。 / “FTL, RTL, Tetris and othe…” https://t.co/dIuDwTxr0G"
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonで、外部から利用可能なAPIの開発が進められている。将来的にバックエンドとフロントエンドを明確に切り分けるつもりらしい。 / “Exposing Pontoon D…” https://t.co/widocPNsDu"
Rockridgeさんのツイート: "将来的に、Firefoxは個別のローカライズ版がビルドされるのではなく、単一のビルドにWebExtensionsベースの言語パックを載せる形へと移行する。ある意味で昔に近い形態といえるか。 / “Switching langua…” https://t.co/DDHKuoSz5v"
Rockridgeさんのツイート: "ローカライズ用リポジトリの統合(cross-channel)を達成した現在も、Firefoxのリリース日から遡ること2週前の水曜日がローカライズの期限となっており、それを過ぎると翻訳が製品版に反映されないらしい。 / “On c…” https://t.co/bjoeaZpje0"
Rockridgeさんのツイート: "Fluentをベースにした新しいローカライズ用フレームワークへの移行が開始された。 / “Migration of Preferences strings to Fluent” https://t.co/Ej6qNMQYcG"
Rockridgeさんのツイート: "GeckoのローカライゼーションAPIのスキームが2017年中に刷新され、基盤整備ができたので、2018年はFluentベースの新しい仕組みでローカライズが行われていく。まずは設定画面のUIから。 / “Multilingual…” https://t.co/H6NRzlPjC5"
Mozilla L10N Glossary · mozilla-japan/translation Wiki
Rockridgeさんのツイート: "ローカライゼーションに関するMozillaの汎用スタイルガイド。 / “Mozilla general style guide · GitBook” https://t.co/YiTw3aDvzG"
Mozilla general style guide · GitBook
Rockridgeさんのツイート: "Firefoxの設定画面のUIについて、Fluentベースの新しい仕組みでローカライズできるよう移行作業が行われている。Firefox Nightly 61で完成か。 / “L10n Report: March Edition …” https://t.co/mISsaGn87G"
L10n Report: March Edition | Mozilla L10N
Rockridgeさんのツイート: "Fx62:UIテスト用に疑似ローカライズ機能が搭載された。翻訳を待たずして特定のロケールに切り替えた場合のUIをチェックできる。参照:https://t.co/BM1xMtda9X / “Pseudolocalization i…” https://t.co/g0908Rpuqo"
Rockridgeさんのツイート: "Fx64:新しい言語パックをインストールした場合、関連する辞書もインストールされるようになった。 / “1479008 - Install related dictionaries when a new langpack is …” https://t.co/BJS1VcxVLS"
⁨L20n⁩ • Home
Mozilla in Japanさんのツイート: "本日、新たにFluent 1.0をリリースしました!新時代のローカライゼーションを体験してください😎 https://t.co/l0Zdxldgim… "
Makoto Kato ︎︎さんのツイート: "FluentはFirefox OSの残骸の一つだけどね"
chikoskiさんはTwitterを使っています 「今の所の案: - 対応する言語を 14 に絞る。これで 95% がカバーできる - 重要なコンテンツを機械翻訳で提供する。これらは編集できないものとする。 - 英語版が変更されるたびに、翻訳版も更新する - コミュニティによる編集を通じて、機械翻訳の質を向上するシステムを提供する」 / Twitter
chikoskiさんはTwitterを使っています 「"8 languages cover 90% of the accept-language headers received from MDN users (en, zh, es, ja, fr, ru, pt, de)" とあるので、日本語は翻訳対象に残るんじゃないかと想像してます。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MDNのローカライズの件が、ああなりそうなところで、これやるんですかねー https://t.co/NyCvL3LghN」 / Twitter
【オンライン開催!】【第28回!】みんなで MDN を翻訳しよう!翻訳コミュニティ定例ミートアップ! 2020年11月21日(土)開催 - Mozilla Japan コミュニティ | Doorkeeper

gettext

gettext - Wikipedia
ISO 639 - Wikipedia
ISO 3166 - Wikipedia
GNU gettext utilities
GNU gettext utilities
GNU gettext utilities
GNU gettext utilities
C言語系/memos/gettext - Glamenv-Septzen.net
gettext によるメッセージ処理
GNU <CODE>gettext</CODE>ユーティリティ:
GetTextを用いたローカライズ方法 - Conyac
Manual - Documentation - Zend Framework
本の虫: Boost.Localeがクソすぎる
自然言語(ロカール)の選択
Exgettextの話
Shirouzu Hiroaki(白水啓章)さんのツイート: "gettextを真面目に使うなら、en.poも作った方が良いという話。 (ただ、識別子を考えなくて良いというメリットが…) https://t.co/4Kh6eLHFE9"
gettextを使う場合の注意点 – FLAMA技術Blog
gettextとバージョン管理システムの相性の悪さを解消する案 - ククログ(2013-11-14)
i18nしてますか?(gettext+PHPその1):海外でも通用するエンジニアになる:エンジニアライフ
PHP国際化プログラミング - gettextを使った国際化
GNU gettext utilities
Gettextによるウェブアプリケーションの国際化と地域化 (1/4):CodeZine(コードジン)
gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita

catgets

Man page of CATGETS
catgets(3)
X/Open catgets API - Oracle Solaris でのアプリケーションの国際化とローカライズ
IBM Knowledge Center - catgets() — メッセージ・カタログからのメッセージの検索
メッセージカタログ(catgets)
標準 C 言語国際化プログラミング - メッセージ

Internationalization API

Standard ECMA-402
ECMA-402.pdf
ECMAScript Internationalization API Specification
ECMA-402.pdf
Standard ECMA-402-archive
ECMAScript® 2016 Internationalization API Specification
ECMAScript® 2017 Internationalization API Specification
ECMAScript Internationalization API Specification
tc39/ecma402: Status, process, and documents for ECMA 402
ibm-js/ecma402: ECMA-402 JavaScript Internationalization API "shim"
ECMAScript® 2019 Internationalization API Specification
Intl - JavaScript | MDN
WebKit、Safari 10でECMAScript国際化API「ECMA-402」をフルサポート。 | AAPL Ch.

Twitter

Fadisさんのツイート: "小数点は.とは限らなくて,を使う地域も存在する。一方JSONは小数点に.を使うことを要求している。従って、ロケールを指定せずにscanf/printf系の関数でJSONの数値を読み書きしてる実装は全てバグっている"
Fadisさんのツイート: "C言語の規格はscanfの浮動小数点数の符号の後eの前までのフォーマットについて何も規定してないから、ロケール設定すれば期待通りの動きをするかどうかは環境次第か"
Fadisさんのツイート: "POSIXとMSDNのドキュメントのレベルでロケールの影響を受ける事が書かれてる"
Fadisさんのツイート: "@n_soda あっ 確かにmainに入った時点では環境変数で設定されたロケールは反映されてないですね"
SODA Noriyukiさんのツイート: "@fadis_ 多国語対応するために setlocale(LC_ALL, "") を追加した瞬間にバグるの、怖いですねえ…"
SODA Noriyukiさんのツイート: "@fadis_ 正確に書くと「setlocale(LC_ALL, "") ないし setlocale(LC_NUMERIC, "") を呼んでいるプログラムはバグっている」ですね。 setlocale() を一切呼ばなければ、デフォルトである "C" locale になりますから。"
渋川よしきさんのツイート: "i18nをどこでやるのか、という問題もある : 良いエラーメッセージの書き方 by @castanea on @Qiita https://t.co/vwOe5ovAxY"
良いエラーメッセージの書き方 - Qiita
渋川よしきさんのツイート: "汎用のツリー差分取得エンジンみたいなのが欲しい"
Atsushi Enoさんのツイート: "DOMツリーを辿るとき、われわれはだいたいpreceding-siblingを左側に、following-siblingを右側に向かって読みに行くと思うけど、イスラエルのハカーとXPath実装の話をしていて話が全然合わなくて、ふと気づいて聞いてみたら彼らはわれわれと逆順にツリーを… https://t.co/80MlUkUdnx"
Rui Ueyamaさんのツイート: "アラビア語やヘブライ語ではカレンダーは右ではなく左にめくると次の月になる、というバグが報告されて、そこまで逆なのかよーと思いながら直したことがあった。そもそもアラブはイスラム暦なのではないか?と思って聞いてみたらグレゴリオ暦でもOKというので、国際化わからんすぎると思った思い出。"
Rui Ueyamaさんのツイート: "昔UIやってたころにmmddyyyyとddmmyyyyの違いでぐぐる検索の日付指定検索がカナダで何週間も使えない(アメリカでは使えた)というバグを作ってしまったことがあるので、国際化って英語圏vs非英語圏っていう話でもないんだよな。カナダでそんな問題になってるとはよくわかってなか… https://t.co/HLl0sopUfi"
hnw (@hnw) | تويتر
Shirouzu Hiroaki(白水啓章)さんのツイート: "数値のカンマ・ピリオド(ドイツ・スペイン・ポルトガル・イタリア語圏では意味が逆に)、英米式だと勘違いする人が居るのね…うーむ。 https://t.co/KgTSYYX8qI https://t.co/nStoBGLDMh"
カンマとピリオド | 貿易よもやま話
Shirouzu Hiroaki(白水啓章)さんのツイート: "「インド、バングラデシュなど南アジアでは…「12,34,567.89」となります。…桁の区切り方が独特で、最初は3桁で区切りますが、その後は2桁ごとに区切ります。」 「カシオがこのインド形式の桁区切りをする電卓(3桁式との切り替え可能なもの)を現地で発売したところ、大人気になったそうです」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「FastCopyだと 30分で75,256MB == 75MBしかコピー出来ていない」と勘違いしてしまったとのこと。 "I noticed FC had only copied 75,256 MB ( euh ...75 megabytes) in half an hour." https://t.co/KgTSYYX8qI"
Shirouzu Hiroaki(白水啓章)さんのツイート: "誤解は無くなりそうですが、さすがに「75G256M」は気色悪い気が…(笑) (似た表記をしているアプリケーションはあるのかしらん?)… "
Dan Kogaiさんのツイート: "いや慣れの問題でしょう。今だって1m83cmのような表記はいくらでもあるし… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "簡体中文環境での利用が第1位で、アラビア語(エジプト)が第4位という驚きの結果。 やはり測定は大事。"
Shuuji Kajitaさんのツイート: "海外で△が通じないという話、研究室で緊急調査した結果がこちら。×は通じるけれど、○と△は通じなかったり誤解される危険性が高そうです。… "
Localization standards reader 4.0
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「kdiff3のショートカットキー、国際化されていないのしんどい(Ctrl + Shift + 数字を使うの素人仕事すぎ)。」 / Twitter
くいなちゃんさんはTwitterを使っています 「フランスでは、小数点にピリオド「.」ではなくカンマ「,」を使うので、「1.5」は「1,5」と表すのはご存じの通りですが、すると座標の「(1.5,2.5)」は「(1,5,2,5)」となって混乱しないのか疑問に思って調べてみました。 どうやら座標はセミコロン「;」を使って、「(x;y)」と表すようですね!」 / Twitter
Shinji KonoさんはTwitterを使っています 「xボタンで決定は洋ゲーやってる人には常識。⚪︎に肯定的な意味はないらしい。」 / Twitter

クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Cookpad TechConf 2017 - Publickey
クックパッドの海外展開プロダクト開発ノウハウとは(後編)~ORは「オワ」か?「オレゴン州」か? 問題。Cookpad TechConf 2017 - Publickey
Mozilla、ローカライズのための仕様とツールを提供する「Fluent 1.0」を公開 | OSDN Magazine
リストのローカライズに便利なIntl.ListFormatコンストラクタ | フロントエンドBlog | ミツエーリンクス

セッション管理

Restart Manager

Masaru Iritaniさんのツイート: "#WindowsInsiders Skip Ahead ビルド 18855 ではメモ帳で保存し忘れた内容が再起動後に自動で復元されるようです 📝… "
kkamegawaさんのツイート: "Restart ManagerはVistaがリリースされた時に標準アクセサリー全部サポートしているべきだったと今でも思ってます…そうすればみんな使ってくれたかもしれないのにーと。… "
Masaru Iritaniさんのツイート: "元々は Vista の新機能だったのですね。ありがとうございます、勉強になりました。… "
Restart Manager - Google 検索

なかのん&マジックさんのツイート: "秀丸、昔のアプリっぽく、実にOS自体のクラッシュからの復旧が弱いなぁ……"
なかのん&マジックさんのツイート: "まあ、現職のままで新しいアプリをがっつり趣味で開発するってのは無いけど、やるとしたら、定期的にバックグラウンドのスレッドでセッション情報を書き出し続けるように基本的なところで設計するかな。"
なかのん&マジックさんのツイート: "昔じゃ考えられへんけど。"
ミックさんはTwitterを使っています 「アメリカの物流は超低品質なのでAmazonの荷が届かないことは日常茶飯事だが、感心するのはここで決して「追跡調査」という異常系に踏み込まないこと。「届いてない」ボタンを押すと速攻で同じ荷が発送される。異常系を正常系で回収するオペレーションの方がTCOが低くスケーラビリティがあるのだろう。」 / Twitter
“PCの調子がおかしいな”と感じたときに役立つ「信頼性モニター」 - 窓の杜
Rockridgeさんのツイート: "Fx62:ハングをモニタリングするためのスレッドを整理することで、消費メモリの増加を防ぐとともにパフォーマンスの低下を抑制した。 / “1448040 - clean up hang monitor threads” https://t.co/Neaj0sLEC2"
2019年1月22日 We don't want to track; just count ―Fedora,ユーザ数の計測にUUIDを採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
UUID version 6の提案仕様 - ASnoKaze blog
Crash/Deprecation/Intervention Reporting について - ASnoKaze blog
マイクロサービスの次に来るものは何か? Biligin Ibryam氏の提唱するマルチランタイム・マイクロサービス - QCon Londonの講演より
世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか - GIGAZINE
Netflix Presents Telltale、アプリケーションヘルスモニタリングツール

コード補完

Twitter

渋川よしきさんのツイート: "エディタに対するIDEのアドバンテージは、エディタはたいてい補完候補をまとめて一度に送る設計になっていることが多いから、候補が増えるとレスポンスが重い、IDEはインクリメンタルにそれができる余地が多少広いぐらいって補完システム作ってる人が言ってた"
渋川よしきさんのツイート: "ただ、そういうインクリメンタルにしようとすると、IDEの補完のシステムを作り込むのはさらに難しそうだし、簡単に作るとエディタと変わらなくなっちゃう。"
Fadisさんのツイート: "C++におけるコード補完は残念ながらあまり幸せになれない。近代的なC++erならテンプレートを活用して再利用性の高いコードを書いている筈だけど、未知の型Tにどんなメンバを持っているかは、そのメンバを利用する事によって決定する為、それを利用する前に予想する術は無いんだ"
Fadisさんのツイート: "conceptを理解できるコード補完ならあるいは…"
かずき@MHW が好きさんのツイート: "VSの場合凄く長い名前のものを書くときは CCLM とかみたいに打つと ContainerControlledLifetimeManager みたいなものにマッチする(単語区切りの先頭をうつだけでいい)ので、長い名前のもをうつ機会が多い場合は、覚えておくといい"
Mune-sanさんはTwitterを使っています 「CLion、ファイルか関数が長くなるとオートコンプリートにものすごく時間がかかるよになるんじゃないかという気がする。 長いったって二千行くらいなんだが。」 / Twitter
Mune-sanさんはTwitterを使っています 「SupportのSpeed Up Code Analysisが効いた。 異常な遅さは消えたようだ。ただし、一部の解析は手動で起動しなくてはならなくなった。 https://t.co/mvfxCWbzx5」 / Twitter
Performance Tuning Tips - Help | CLion

自動補完 - Wikipedia
インテリセンス - Wikipedia
Intelligent code completion - Wikipedia
[ コード補完機能等の利用 IDE 関係操作 ] - Mr.XRAY
JavaScriptのコード補完できていますか? - Aqutras Members' Blog
簡単にプログラミング環境が構築できる「Cloud9」の始め方(前篇) | 株式会社イテレイティブ
支援機能(IDE チュートリアル) - RAD Studio
コード補完からムダを省き、Javaプログラミングを地味に効率化 | I am programmer and proud
本の虫: VC10のインテリセンスについて
本の虫: MSVC++コンパイラーの中に入っているWebブラウザー
本の虫: Inside IntelliSense
本の虫: インテリセンスのリビルド
本の虫: VS2010のsquiggleについて
コーディングをAIが支援してくれる「Visual Studio IntelliCode」、Javaに対応。GitHubにあるコードを機械学習 - Publickey
Big Sky :: gocode やめます(そして Language Server へ)

ナビゲーション

LSIF

無職やめ太郎(本名)さんはTwitterを使っています 「GitHub上でもコードジャンプとか出来たらいいのにな」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Yametaro1983 それをどのブラウザーでもできるようにするために https://t.co/OecVGi2uEh っていうのが策定されてるんですよ。ソースコードの定義情報まとめるJSONファイルになっているそうで」 / Twitter
LSIF.dev

cscope

第 8 章 cscope: 対話的な C プログラムの検査 (Sun Studio 12: C ユーザーズガイド)
Cscope Home Page
memo/Cscope.md at master · tsuyopon/memo
if_cscop - Vim日本語ドキュメント
cscope CapmNetwork
ヘッダファイルなどをVimのキー操作一発で探す (3/3):いまさら聞けないVim(9) - @IT
cscope - Wikipedia
[cscope][emacs] cscopeをほぼ全ての言語に対応する方法 - goinger的日記
CscopeとSilentBobによるソースコードの解析 | OSDN Magazine
Linuxカーネルソースコードを読むツール (1):cscope編 - Fixstars Tech Blog /proc/cpuinfo

コード ナビゲーション(IDE チュートリアル) - RAD Studio
ソースファイルのナビゲーション - Oracle® Solaris Studio 12.4: IDE クイックスタートチュートリアル
NetBeans IDE Javaエディタでのコード支援: NetBeans IDEのリファレンス・ガイド
ARM Information Center
本の虫: GNU Globalが面白そうだ
OS作れないマンさんのツイート: "GNU globalでコードリーディングは便利なんだけど、今自分がどの関数を読んでて、さっきまで何処にいたか、みたいなコールスタック(のようなもの)を記録して可視化する仕組みが欲しくなる。"
OS作れないマンさんのツイート: "リーディングスタック、現実的な範囲で作るとすると、手動によるマーキングが必要になりそう。まあそのくらいは許すとして、あとはマークをどの階層に配置するかの推論をしなければならない。"
ぬるぽへさんのツイート: "rtagsこれです(https://t.co/a9FbbVGqtf) アドホックな文字列処理じゃなくてclangのパーサを内部に抱え込んでて、それで型とかマクロとかを処理してタグしてくれる 最新のコミットはこわれてるのでビルドしたかったらreset --hard HEAD^してね"
ぬるぽへさんのツイート: "@liva_jy rtagsいいよ、マクロで定義された識別子も追える"
_さんのツイート: "ところでいつかrtagsについて宣言までしか飛んでくれなくて不便ということを言ったのですが、あれは間違っていて普通に定義までジャンプできました そしてマクロを駆使して定義された関数や変数も定義にジャンプできてめっちゃ便利"
最強のC/C++インデクサー "Rtags" を本気で使う - Qiita

SQL

その他

ast.htm
II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
データベース性能を向上させる「インデックス」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(26) - @IT
基礎から理解するデータベースのしくみ(8) | 日経 xTECH(クロステック)
YugaByte DB | YugaByte DB
2019年10月17日 "データレイク"のスタンダードをめざす ―Databricks,「Dalta Lake」をLinux Foudnationに寄贈:Linux Daily Topics|gihyo.jp … 技術評論社
NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由 | 日経 xTECH(クロステック)
[1712.01208] The Case for Learned Index Structures
LIS026115.pdf
Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
PostgreSQLには「中途半端なサイズ」のデータを格納しないほうがいい - GIGAZINE

WinFS

WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
WinFS - Wikipedia
Microsoft Developers Conference 2006 ― T2-206 新たなファイルシステム"WinFS"の方向性とその概要 - NyaRuRuが地球にいたころ
Windows PowerShell, WinFS, IQueryable - NyaRuRuが地球にいたころ
WinFS について (1) - NyaRuRuが地球にいたころ
WinFS について (2) - NyaRuRuが地球にいたころ
WinFS について (3) - NyaRuRuが地球にいたころ
WinFS について (4) - NyaRuRuが地球にいたころ
WinFS についてのビル・ゲイツ氏の最も新しい言及 - NyaRuRuが地球にいたころ

B+ Tree

μTree

okamo(aged 5 yrs.)さんはTwitterを使っています 「μTree スループットだけでなくtail latencyを改善するPMEM向けB+tree。従来手法ではstructural refinement operation(merge split)とinterference overhead(葉のロック)がtail latencyの要因になっていた。designはまだ読めて無いけどこの辺り頑張っているみたい https://t.co/r94NOfdHnE」 / Twitter
uTree: a persistent B+-tree with low tail latency: Proceedings of the VLDB Endowment: Vol 13, No 12
okamo(aged 5 yrs.)さんはTwitterを使っています 「ざっくりいうとPMEMはDRAMに比べてwriteが遅いから、PMEM場ではエントリをlinked listで管理して、tree構造はDRAMに持つ、がアイデア? kvペアのエントリをリストで管理してるのでput操作でPMEM上のSROは発生しない。リスト操作なので葉ノードロックも無くPMEM上の更新の並列性が上がる。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「ツリー構造はシステム落としたら失われるので再構築についても頑張っているみたい。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「DRAMに比べて遅いはこれの通り」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「そりゃないって、、、って数値だな https://t.co/VbGwzLPmIR https://t.co/WyngufgRO5」 / Twitter
Intel® 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「2.3GB/sというのはインタリーブしてnstore使った時の256B以降のスループットか(スループットといっても1thread) https://t.co/npJqjn9AWE https://t.co/z2QCS945o5」 / Twitter
fast20-yang.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「ntstore(non temporal store)」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「評価の一部はこんな感じ https://t.co/fTYNjssc6h」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「細かい技術詳細は追えていないが、PMEMをDRAM like performance というのは誤りでindex構造だけとってももDRAMとPMEMのハイブリッドで作るのがトレンドかな。全てをPMEMに直接叩き込んで高速化、は今後の研究対象にはならなそう、本当にDRAM like performance なものがでれば世界はかわるが、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「low latencyという側面ではこの論文もあるけどこっちはネットワーク越しのkvsなので、タスクスケジューリングとか他のトピックも入っている。ちなみにデータストア自体はLSM treeである。 https://t.co/6O45Vfrp4e」 / Twitter
p1091-lersch.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「分析の対象はFAST&amp;FAIRで、こちらはPMEM直にデータをloggingなしに永続化する研究。メモリオーダリングも気にして頑張ってflush, mfence減らしてる。 https://t.co/RyWzKGiWiA」 / Twitter
DICL/FAST_FAIR: Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree
okamo(aged 5 yrs.)さんはTwitterを使っています 「トレンドかな、とか言ったけど直接PMEMへの論文もあるはず、これはそうだった気がする、細かい内容を忘れてしまった https://t.co/JlwAdK2GjU」 / Twitter
p1078-liu.pdf

B-treeインデックス入門 - Qiita
B TreeとB+ Treeの違い - Carpe Diem
第4章 木構造とハッシュ―平衡二分探索木「赤黒木」で知る豊かなデータ型:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
10.pdf
B木 - naoyaのはてなダイアリー
B TreeとB+ Treeの違い | Engineer Log
なぜBTreeがIndexに使われているのか - maru source
[第6回]Bツリー・インデックスの構造 | 日経 xTECH(クロステック)
第7回 性能改善の鍵,インデックスの特性を知る~B-treeとハッシュ (1)B-tree :SQLアタマアカデミー|gihyo.jp … 技術評論社
インメモリー・データベースの注意点 | Think IT(シンクイット)
B-Tree by Java -- B木のすごく簡単な実例
RDBMSで使われるB木を学ぼう (1/3)- @IT
71.pdf
Oracle B-treeインデックスとビットマップインデックス
06gun_03hen_03.pdf
SQLデータベースにおけるバランス検索木(Bツリー)
Oracle の B*Tree インデックスの内部構造についてお勉強中(その1) - drk7jp
データベースの基礎 第2章
従来のデータベースをメモリに載せるだけではだめなのか? インメモリとカラム型データベースの可能性を調べる(その2) - Publickey
II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
一番わかりやすい木構造 - NAVER まとめ
漢(オトコ)のコンピュータ道: オトコのソートテクニック2008
C library btree - Google 検索
markc/miniDB: A small fast isam/btree library for key/val access
www.mit.edu/afs.new/sipb/user/gamadrid/nscript/btree.c

R-Tree

okamo(aged 5 yrs.)さんはTwitterを使っています 「DAOSのファイルの中身はKey Array Store使ってるのか。extentとepochをR-treeの拡張で管理している、と。 https://t.co/rpfLV5Kxnq」 / Twitter
daos/README.md at master · daos-stack/daos
okamo(aged 5 yrs.)さんはTwitterを使っています 「まぁなんか聞いたらそうりゃそうか、って感じだな。どう管理するか悩んでたけど、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Random write/read飛びまくりだけど、大体そういう性能になってんのかな」 / Twitter

MVCC

MVCC(多版型同時実行制御)
MultiVersion Concurrency Control - Wikipedia
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
4. MVCCとストレージ構造 · PostgreSQL Internals
MVCCトランザクションの動きが実装できた - きしだのはてな
PostgreSQL のトランザクション & MVCC & スナップショットの仕組み
multi-versionの基礎 - 急がば回れ、選ぶなら近道
InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst

Window 関数

[SQL] 最強の分析ツールと言われるWindow関数について私が学んだこと | DevelopersIO
window関数を使いこなす 〜分析のためのSQL〜 - Qiita
ウィンドウ関数
Window関数 | Let's Postgres
窓関数 (SQL) - Wikipedia
分析関数の衝撃(前編) (1/2):CodeZine(コードジン)
PostgreSQLの分析関数の衝撃(7) ――window関数の変わった使用例 (1/4):CodeZine(コードジン)
SQLの便利な関数 〜ウィンドウ関数〜 | GROUP DEV BLOG | TECHNO MOBILE
分析関数 (Transact-SQL) | Microsoft Docs
トレジャーデータで実践:Window関数(その3) - Arm Treasure Data

SQLite

MS

「DB Browser for SQLite」“SQLite”のデータベースを管理できるソフト - 窓の杜ライブラリ
DB Browser for SQLite - 窓の杜ライブラリ
DB Browser for SQLite
sqlitebrowser/sqlitebrowser: Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
「PupSQLite」SQLiteのデータベースをGUIで操作できる高機能管理ソフト - 窓の杜ライブラリ
「SQLite」データベースの管理ツール「PupSQLite」がメジャーバージョンアップ - 窓の杜

OSDN

WALの強化などが行われた「SQLite 3.11」リリース | OSDN Magazine
組み込み向けデータベースライブラリ「SQLite 3.14」リリース | OSDN Magazine
SQLデータベースエンジン「SQLite 3.7」リリース、性能などを改善 | OSDN Magazine
「SQLite 3.20」リリース | OSDN Magazine
SQLデータベース機能を提供するライブラリ「SQLite 3.24」リリース | OSDN Magazine
ウィンドウ関数が加わった「SQLite 3.25」公開 | OSDN Magazine

Qiita

SQLite C言語向けAPI チートシート - Qiita
C言語でSQLiteを使う - Qiita
C言語でsqlite - Qiita
渋川よしきさんのツイート: "このライブラリのいいところは生DBから必要な情報を抜いてくるので、DBのフル機能が使えるし、GUIのツールも活用できる。 : GOのORM sqlboiler 使ってみた  on @Qiita https://t.co/Fei2tYSOS8"
GOのORM sqlboiler 使ってみた  - Qiita

Wikipedia

SQLite - Wikipedia
SQLite - Wikipedia, the free encyclopedia
インメモリデータベース - Wikipedia

Twitter

Fadisさんのツイート: "sqlite-3.17.0がリリースされました。今回の変更点はパフォーマンスの向上やコンパイルオプションの改良などデータベースの使い方は変わらない変更が中心だが、ひそかにsha1を求める組み込み関数が追加されている https://t.co/YKG4Kw5Wqm"
Fadisさんのツイート: "複数のテーブルを結合して1つのテーブルとして見えるようにするUNION仮想テーブル、インタラクティブインターフェースの補完の挙動を変更するcompletionテーブル等の機能が追加されたsqlite-3.20.0がリリースされました https://t.co/MreLLp1dXc"
Fadisさんのツイート: "SQLite 3.22.0からの新機能zipfile。zip形式のアーカイブの中身をSQLクエリで漁れるようになる。つまり、SELECTでファイル一覧を取得し、INSERTでファイルを作り、DELETEでファイルを消し、UPDATEでファイルを書き換える https://t.co/HFqpH8aRVv"
The SQLite Zipfile Module
Shirouzu Hiroaki(白水啓章)さんのツイート: "設定類をiniではなくてsqliteにすると複数起動時の相互反映がやりやすい。 一方で、I/F を用意しない限り、ユーザ変更できなくなる縛りが出るので難しいところ。"
鯉江さんのツイート: "相互反映というのがイメージがわかないですが、起動したときにアトミックに更新するのはできても、異常終了したときにに更新するのはできないので、そんなに便利ではないような。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のFastCopyは複数起動して、それぞれで設定を変えても、最後にiniを上書きした方しか残らないのですよね。 ただ、何も考えずに取り込むと矛盾した項目が取り込まれる可能性もあって、なかなか簡単ではないのですが。… "
Fadisさんのツイート: "SQLite 3.24.0がリリースされた。主な変更点は、UPSERTをできるようになった、文字列にSQLiteのキーワードが含まれているかを調べる関数の追加、VACUUMするとデータベースの全てのデータが削除されるモードSQLITE_DBCONFIG_RESET_DATABASEの追加他 https://t.co/pBRdV82iTL"
本の虫: SQLiteの行動規範がキリスト教徒の戒律を全文引用していて香ばしすぎる
Kazuho Okuさんのツイート: "SQLiteのCoCを批判するのにキリスト教の悪口を持ち出すのマジ最悪手というか、欧米白人中心のコミュニティで非キリスト教徒が少数派であるのと同様に、日本国(あるいは日本語話者)内でキリスト教徒が少数派であることを考えれば、目糞鼻糞以下の行為ですよ"
Kazuho Okuさんのツイート: "Thank you SQLite for choosing religion as a new tool to offend minority developers"
Krøstianさんのツイート: "Apparently SQLite has a code of conduct that weirdly comes across as a "fuck codes of conduct". Will not participate in that community in any way.… https://t.co/p4U9zRzpb3"
Jan-Piet MENSさんのツイート: "I will not contribute to SQLite: “First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.” https://t.co/gmi3eicc5Q #codeOfConduct"
Code Of Conduct
およげmatsuuくんさんのツイート: "ワハハクソでしたな。批判の嵐だったのでSQLiteは結局Mozilla Community Participation Guidelinesを行動規範として採用した模様。 / “本の虫: SQLiteの行動規範がキリスト教徒の戒…” https://t.co/xdpdskN5sZ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sqlite(C言語)で、inner join・サブクエリを含むSQL文が一発で動いてホッとしたのだが、そもそもコンパイル時に文法エラー及びテーブル定義との不整合エラーを検出できる仕組みが欲しいところ。"
日比野 啓 (Kei Hibino)さんのツイート: "呼ばれたような気がする… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Haskellなら、HRRがありますね! https://t.co/eG4HCggy77… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SQLite3 では TEXTカラムに binary形式で保存できるが、その場合LIKE検索は出来ない様子。(少なくとも Python sqlite3 では)」 / Twitter
FadisさんはTwitterを使っています 「SQLite 3.33がリリースされたらしい。SQLite 3.33では新しく他のテーブルをSELECTした結果を使ってUPDATEを行うUPDATE FROMがサポートされる。またページ番号をintで扱っていた所が32bit符号なし整数に揃えられ、281TBまでのデータベースが作れるようになる https://t.co/cQXfWMJOpW」 / Twitter
SQLite 3.33 Released With PostgreSQL-Inspired UPDATE FROM, Database Files Up To 281 TB - Phoronix
井山梃子歴史館さんはTwitterを使っています 「SQLiteにjson突っ込むか… https://t.co/z3IFzg4k2Q」 / Twitter
SQLite as a document database
井山梃子歴史館さんはTwitterを使っています 「jsonのフィールドにインデックス貼れるの面白いな」 / Twitter

SQLite Home Page
SQLのインデックスとそのチューニングについてのオンラインブック
MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
SQLite4: SQLite4
SQLiteで組み込みDB体験 (1/3):CodeZine(コードジン)
Placesデータベースの読み書き処理を大きく減らす裏技(Firefox 49以降) - Mozilla Flux
SQLiteバイトコードを追う — 鱒身(Masu_mi)のブログ
SQLite入門
ファイルシステムよりも35%高速に | インフラ・ミドルウェア | POSTD
How Does a Database Work? | Let’s Build a Simple Database
cstack/db_tutorial: Writing a sqlite clone from scratch in C
SQLiteデータ型の仕様とセキュリティ問題 – yohgaki's blog
ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
Kazuho Okuさんのツイート: "顧客ごとにSQLiteなファイル作ってデータ入れることで、RDBMSにおけるマルチテナンシー問題を回避してるってことなんかな / “ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cyboz…” https://t.co/R8eGK1LWe7"
Kazuho Okuさんのツイート: "アクセス頻度が低いサービスが大量にある場合、アプリケーションサーバ立てるよりCGIのほうが便利だし、RDBMSサーバ立てるよりSQLiteのほうが便利"
SGソフトウェア開発ブログ: [SQLite]CでSQLiteのユーザ定義関数を作る その1
「SQLite」データベースに脆弱性--「Chromium」ベースのブラウザにも影響 - ZDNet Japan
SQLite/Chromium脆弱性“Magellan”は「Electron」にも影響 ~修正版が公開 - 窓の杜

blog

Publickey

PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど - Publickey
スケーラブルな分散SQLエンジン「Presto」の開発団体「Presto Software Foundation」が発足 - Publickey
PostgreSQL 12β1が公開。Bツリーインデックス周りの性能向上や、インデックスの並列処理による再構成が可能に - Publickey
Oracle Exadataの最新版となる「Exadata Database Machine X8」登場、自動チューニング機能「Automatic Indexing」など、機械学習による自動運用を強化 - Publickey
AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能 - Publickey
PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など - Publickey
オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用 - Publickey
PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能 - Publickey
RDBで直面した性能問題、グラフデータベースでなぜ解決できたか?[PR] - Publickey
Amazon S3がこれまでの「結果整合性」から「強い一貫性」サポートへ。データを更新直後でも最新データの読込みが保証されるように - Publickey

KaiGaiの俺メモ

スキャン速度10GB/sへの挑戦~その④ 完結編~ - KaiGaiの俺メモ
秒速で10億レコードを処理する話 - KaiGaiの俺メモ
Asymmetric Partition-wise JOIN - KaiGaiの俺メモ
Dive into Apache Arrow(その3)- SSD-to-GPU Direct SQL対応 - KaiGaiの俺メモ

技術日誌

Effective SQL 読書会(4)に参加 - Yabu.log
Effective SQL 読書会(5)に参加 - Yabu.log
プログラマのためのSQL 読書会(25)に参加 - Yabu.log
プログラマのためのSQL 読書会(26)に参加 - Yabu.log
プログラマのためのSQL 読書会(27)に参加 - Yabu.log
dbtech showcase Tokyo2018に参加 - Yabu.log
プログラマのためのSQL 読書会(28)に参加 - Yabu.log
プログラマのためのSQL 読書会(31)に参加 - Yabu.log
「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」を読んだ - Yabu.log
約2年間続いた読書会で「プログラマのためのSQL」を読み終わりました - Yabu.log
失敗から学ぶRDBの正しい歩き方 読書会(1)に参加 - 誰にも見えないブログ
Transaction,Concurrency ControlとAntichain - Yabu.log
CMU 15-445/645 (FALL 2018)Database Systems - 01 Relational Data Modelノート - 誰にも見えないブログ
CMU 15-445/645 (FALL 2018)Database Systems - 02 Advanced SQL - 誰にも見えないブログ
Transactionのinterpretation(herbrand semantics)について - Yabu.log
失敗から学ぶRDBの正しい歩き方 読書会(6)に参加 - 誰にも見えないブログ
Scheduleをpolygraphに変換してVSR validationを行う方法 - Yabu.log

PostgreSQLパーティションプルーニングの動作を確認する | Future Tech Blog - フューチャーアーキテクト
Scala用のタイプセーフなSQLビルダを作ってみた - たけぞう瀕死ブログ
SQL Server 2019 プレビューで UTF-8 をサポート – Cloud and Server Product Japan Blog
PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
WEB+DB PRESS plus の DB 本 3冊を読んで index を学んだ · Yuichi Takada
Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明
A Critique of ANSI SQL Isolation Levels再読 - 急がば回れ、選ぶなら近道
DBMSをGoで実装してみた - Sansan Builders Box
Database Concurrency Control Papadimitriou 読書会 第15回 議論メモ - ぱと隊長日誌
トランザクション理論における polygraph と History の VSR 判定 - ぱと隊長日誌
カラムナフォーマットのきほん 〜データウェアハウスを支える技術〜 - Retty Tech Blog
Go用SQLスロークエリ解析ツールAqueryを書いてISUCON10の本選に出たらfailした | teqblog
Berkeley DB (Hash) の実装 - knqyf263's blog
Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ
ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
Amazon Elasticsearch ServiceをつかったRDSのスロークエリの集計と監視 - クックパッド開発者ブログ
Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
【BigQuery】 AlphaSQLでスキーマ安全なデータ基盤を構築する | by Matts966 | JDSC Tech Blog | Dec, 2020 | Medium

スライド

Wikipedia

ログ先行書き込み - Wikipedia
ドメイン駆動設計 - Wikipedia
GRASP - Wikipedia
Change data capture - Wikipedia
ライトアンプリフィケーション - Wikipedia
Abstract Factory パターン - Wikipedia
Command パターン - Wikipedia
Flyweight パターン - Wikipedia
Observer パターン - Wikipedia

20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
RDBMS in Action - Speaker Deck
HSEとは何か - Speaker Deck
FadisさんはTwitterを使っています 「カーネル/VM online part1での発表「HSEとは何か」をYouTubeで見れるようにしました #kernelvm https://t.co/uSMzFNBJMl」 / Twitter
Kazuho OkuさんはTwitterを使っています 「mpool自体のアラインメントは自動的に取ってくれるんだろうか。mpoolの使うロジカルボリューム?がerase block境界に配置されないと悲しいことになると思うけど #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「@kazuho mpoolの作成時にブロックサイズを指定するとmblockやmlogの配置がアラインされるようになっています。デフォルトは32MBです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーHSE自体はfsは触らずにmpoolだけ使うのか。納得」 / Twitter
まちカドおるみんさんはTwitterを使っています 「そういえば SSD のコントローラーというとこういうプロジェクトもあるらしいですね &gt;&gt; The OpenSSD Project https://t.co/TD8u6zOdn7 #kernelvm」 / Twitter
The OpenSSD Project
Yasuo ItabashiさんはTwitterを使っています 「この手の問題は上層が指定したcapabilityやattributeを持つ下層を透過的に選択したり、下層のstatusを上層に通知する仕組みがあると良いと思う。シンプルにバイパスさせると環境依存が増えてOSの旨味をスポイルされるので。 #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm mpoolは作成するときにブロックサイズが指定できる、というか指定しないと意味がない。でもSSDのブロックサイズを公表しているとは限らない…」 / Twitter
しゅうすい🐧さんはTwitterを使っています 「Event Sourcingとか、DBのトランザクションログとか、ジャーナルログとか、何となく雰囲気似てる感じがする」 / Twitter
しゅうすい🐧さんはTwitterを使っています 「コピーGCみたいなことするのか」 / Twitter
まちカドおるみんさんはTwitterを使っています 「どっちかというと DB の wal」 / Twitter
まちカドおるみんさんはTwitterを使っています 「というか journaling と wal ってほぼ同じものが違う場所で使われてるだけな感じある」 / Twitter
DBアタマアカデミー:連載|gihyo.jp … 技術評論社
第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2):DBアタマアカデミー|gihyo.jp … 技術評論社
sat🌿さんはTwitterを使っています 「強いストレージデバイスのすごいところのひとつは上に乗っかってるLinuxのI/Oスケジューラとかファイルシステムとかに相当するものをフルセットで持っててカーネルが「俺何もしなくていいんじゃね?」ってなるところ」 / Twitter
FadisさんはTwitterを使っています 「昔は カーネル「ディスク君がスムーズに書けるように私が書き込み順を調整してやろう」 だったのが今や SSDのコントローラ「そういうの全部こっちでやるんでユーザ空間から来た書き込みは即座に渡してください」 だもんな」 / Twitter
僕がDIを否定する理由 - kbigwheelのプログラミング・ソフトウェア技術系ブログ
やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
本当に倒すべきだったのは jQuery ではなくテンプレートエンジンだった - fsubal
フロントエンドにおける「関心の分離」は間違っていた - fsubal

GitHub

mysql80_no_usui_hon/book_ebook.pdf at master · hmatsu47/mysql80_no_usui_hon
YugaByte/yugabyte-db: YugaByte DB is the open source, high-performance SQL database for building internet-scale, globally-distributed apps.
The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++
非公式MySQL 8.0オプティマイザガイド by yakst

POSTD

リレーショナルデータベースの仕組み (1/3) | POSTD
リレーショナルデータベースの仕組み (2/3) | POSTD
リレーショナルデータベースの仕組み (3/3) | POSTD

infoQ

NoSQL データベースのアジャイルなデータモデリング
MicrosoftがEdgeにSQLを導入、Azure SQL Database Edge
COMN(Concept and Object Modeling Notation)によるNoSQLデータベースのデータモデリング
OCIはMicronaut Data 1.0を特徴とするMicronaut 1.3をリリースした
分散時系列、ドキュメント圧縮、インデクスを改良したRavenDB 5
KSQLがConfluent Cloudで利用可能に
Elasticsearch 7.7は非同期検索、セキュアなキーストアなどをもたらす

OSDN

パーティション強化、JITコンパイラなどが加わった「PostgreSQL 11」リリース | OSDN Magazine
「PostgreSQL 11.2」リリース、fsync()失敗時の処理を修正 | OSDN Magazine
SQL互換のHTAP向け分散データベース「TiDB 3.0」リリース | OSDN Magazine
「PostgreSQL 11.5」リリース、4件のセキュリティ問題を修正 | OSDN Magazine
「PostgreSQL 12」リリース、性能面でさまざまな強化が行われる | OSDN Magazine

Wikipedia

関係の正規化 - Wikipedia
List of order theory topics - Wikipedia
分散処理に詳しいオタクさんはTwitterを使っています 「SQLの実行中にそのクエリ自身によってタプルの位置を移動させてしまってスキャンが同じ行を複数回処理してしまう問題をハロウィーン問題と言って1976年のハロウィーンにSystem Rで見つけたそうな。 https://t.co/p5Ic5efqh3 ハッピーハロウィン!」 / Twitter
Halloween Problem - Wikipedia

Qiita

golang で 2 Way SQL - Qiita
ひとりRDBMS実装 Advent Calendar 2019 - Qiita
[#JTF2020 解説版]理解して拡げる 分散システムの基礎知識 - Qiita

Twitter

Multiversion concurrency control

ogiwaraさんはTwitterを使っています 「SIはMultiversion CCの特殊な場合として捉えられるよね 普通のCCは1VCCで一番最後の書き込みを必ず読まなきゃいけない」 / Twitter
ogiwaraさんはTwitterを使っています 「てことはlocal書き込みがそもそもMVCCに落とし込めるのか」 / Twitter
ogiwaraさんはTwitterを使っています 「これがデータベースの理論 面白いね https://t.co/Bvea0YJEC8」 / Twitter
Multiversion CC - Google 検索
Multiversion concurrency control - Wikipedia
並行性制御 - Wikipedia
Concurrency control - Wikipedia
トランザクションの並行処理制御
Snapshot isolation - Wikipedia
Snapshot isolation - Wikipedia
Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道
Snapshot Isolation のおもちゃ - Tociyuki::Diary
PostgreSQL Isolation について - SIerだけど技術やりたいブログ
ogiwaraさんはTwitterを使っています 「そもそもMVCCを変形すれば1VCCに落とせるぽいね、定義上」 / Twitter
ogiwaraさんはTwitterを使っています 「MVはあくまで便宜上の表記だから」 / Twitter
ogiwaraさんはTwitterを使っています 「いや、それは言い過ぎだね より過去のを見ることができるから SIはMVCCと1VCCで表せるってだけ」 / Twitter

メタプログラミング(多段階計算)

Keigo ImaiさんはTwitterを使っています 「Multi-stage Programming in the Large with Staged Classes https://t.co/op1s9KaDtm Scala のメタプログラミングライブラリ Squid の staged class 拡張. メタプログラミングで Programming in Large. SQL の DDL からクラス群を生成し、さらにSELECT文から効率のよいクエリを生成する(ポスターより」 / Twitter
Multi-stage Programming in the Large with Staged Classes (GPCE 2020 - - 19th International Conference on Generative Programming: Concepts & Experiences) - GPCE 2020
Keigo ImaiさんはTwitterを使っています 「https://t.co/Z4Lr7ehvb6 まだ Github にこの拡張は来ていないということだったと思う」 / Twitter
epfldata/squid: Squid – type-safe metaprogramming and compilation framework for Scala
Keigo ImaiさんはTwitterを使っています 「C++メタプログラミングは沢山使われているのにマルチステージプログラミングは研究以外で使われないよね…→ Staged Classes! という流れがよかった」 / Twitter
κeenさんはTwitterを使っています 「Scalaで多段階計算でクエリからC吐くやつの関連か?って思ったけどこれはSQLからScalaだから方向逆か」 / Twitter
κeenさんはTwitterを使っています 「自分が言ってるのはこれね https://t.co/gnRmfs2C6S」 / Twitter
Building efficient query engines in a high-level language | Proceedings of the VLDB Endowment

histric

histric-1

SODA Noriyukiさんのツイート: "SQLの一番いいとこって(cost-based optimizerを利用していて、さらに適切にanalyzeも実行してる場合限定だけど)やりたいことを宣言的に書くと、効率のいいデータアクセス手続きを処理系側で推定して実行してくれるところだと思う。人手でアルゴリズム書く言語と比べると、間違いなく進んでる。… https://t.co/OzWxCE1oso"
SODA Noriyukiさんのツイート: "エンジン側に最適化させるためにはSQL一文でやりたいことを表現する必要があるので、副問い合わせも当然必要になる。"
KaiGai Koheiさんのツイート: "本日の発表資料を公開しました。 ■ GPUとNVMEでPostgreSQLの限界に挑む ~クエリ処理速度10GB/sを越えて~ https://t.co/Z02tkRieLW #dbts2018"
DB Tech Showcase Tokyo 2018: C23『GPUとNVMEでPostgreSQLの限界に挑む』実況と反応まとめ - Togetter
20180920_DBTS_PGStrom_JP
Fadisさんのツイート: "先日リリースされたPostgreSQL 11についてPhoronixがEPYCサーバでpgbenchを走らせた結果。クエリのJITコンパイルを有効にしても単純な読み書きでは殆ど性能が向上しない(これが役立つのはクエリが複雑な場合)、というそんな気はしてた傾向が数字で出ている https://t.co/QkjyuUQHsK"
Some Initial PostgreSQL 11.0 Database Benchmarks - Phoronix
渋川よしきさんのツイート: "相手がメリットだと思っていること、例えばとっつきやすさなどに寄り添わないと、説得はおろか、まずは相手が読んでくれることもないので、強すぎる言葉でエントリーを書くのは書くだけ損でメリットなしって思う派。 https://t.co/4qlOr0M5Q7"
O/Rマッピングは百害あって一利なし! - Qiita
渋川よしきさんのツイート: "ORMって、クエリービルダーとオブジェクトマッパーと大きく2つ機能があって、後者は面倒だから自動化したい、前者は直接書きたい派とかもあって、2 WAY SQLみたいなのもあるし、それとは別にActive Recordとかもあるので、まず要素分解して各個議論しないと、意味がない気はしてる。"
渋川よしきさんのツイート: "↑という分類も正しいかどうかはあんまり自信がないぐらい、僕自身はORMに馴染みがないので、誰か"
渋川よしきさんのツイート: "SQL直書きしたい派も、データ突っ込むのは別に雑でもいいけど、大量のデータをうまく取り出す必要が多くて、SELECTクエリーは手書きでじっくりチューニングしたい派、というのも観測している"
じょうさんのツイート: "コツコツと作ってたSQLのLanguge Serverをようやくリリースしました🎉 まだまだやることはたくさんありますが、ご興味ある方はぜひ試してみてください🙏 https://t.co/m836vJMNk3… "
joe-re/sql-language-server: SQL Language Server
KaiGai Koheiさんのツイート: "斜め読み。これ、k-selectionのためにソートを使ってるけど、上位k件の抽出だけならsorting blockの下の方に入る事が確定した時点で計算を打ち切って構わないので、それで更に最適化できないかしら。… "
Billion-scale similarity search with GPUs - Speaker Deck
Tatsuo Ishiiさんのツイート: "PostgreSQL 12でOIDがなくなる件、システムカタログにはoidという列が残るが、普通の列になってしまったので、うっかり今までのように、 SELECT oid, * FROM pg_class; とかやると、結果に"oid"という列が2回出てきてびっくりする。 管理系のツールや自作管理スクリプトに色々影響するような気がする。"
KaiGai Koheiさんのツイート: "なんだか SELECT * で展開されない”隠し列”みたいな属性が欲しくなりますね。 そうすると、行レベルアクセス制御用のACLを仕込んだり、別の応用も効きそうですし。… "
myuiさんのツイート: "https://t.co/dc0D7d83pd NVM over networkに特化したstorage formatらしい"
The Apache Crail (Incubating) Project: Overview
渋川よしきさんのツイート: "DDDの文脈で集約という言葉が出てくるんですが、集約だけだとただデータの集まりだから、MSつけて欲しいなって思っていたのを思い出した… "
Hiroaki Nakamuraさんのツイート: "確かにと思って改めて調べてみると https://t.co/PsfGfnwMYf databaseはデータの集合という意味なんですね。なのでそれを管理するシステムということでMSが必要になると。… "

histric-2

KaiGai Kohei 🌻さんのツイート: "ProjectionPathが入ってから、CustomScan側でtargetListの計算をして返すのが不便になったなぁ。。。 これ、実行計画を作った後でplanner_hookを使って書き換えるしか無いような気がするが。"
KaiGai Kohei 🌻さんのツイート: "ただ、元々GpuProjectionは42次元のベクトル間距離の計算を高速化(普通はSQLで書かない)するために実装したモノで、効果のある利用シーンが限定的という事を考えると、シンプルに被参照列だけをCPU側に返すような実装でも良いのかもしれず。"
KaiGai Kohei 🌻さんのツイート: "SSD2GPUのドライバを改良して、データがPage Cacheに載っている場合の性能を改善。PCIeスイッチ無しだとこの辺が頭打ちだと思うので、まぁまぁ、ゴキゲンな感じ。 SSDはIntel SSD DC P4510 (U.2, 1.0TB) を4本束ねてます。… https://t.co/2wmhS9HMfW"
KaiGai Kohei 🌻さんのツイート: "Page Cacheに載っている場合の性能デグレ小さくなり、かつ、タプル毎の visibility check をGPU側でできるようにしたら、書込み頻度の高いテーブルであっても、堂々とSSD2GPUを使って集計処理を回す事ができるんだが。"
KaiGai Kohei 🌻さんのツイート: "現状、MVCC検査の必要ない(ALL_VISIBLE=1である)ブロックのみSSD2GPUの対象にしている。本来、ALL_VISIBLEというのは強すぎる制約であって、t_infomaskのコミットフラグだけ見て可視・不可視を判断できれば良いが、commit logの参照が必要になるとダメ。"
KaiGai Kohei 🌻さんのツイート: "visibility mapみたく、『このブロックは t_infomask の情報だけでMVCC可視性チェックできます』なフラグがあると助かるんだが。"
Masahiko Sawadaさんのツイート: "実行計画のHINT句つくるツール作ってみた。PostgreSQL用です。 クエリを受け取ると(実行計画を取得して)そのクエリの実行計画を作るためのHINT句を返します。これで実行計画の固定化は簡単にできるようになりそう。 https://t.co/salhirHlf0… https://t.co/YrttCYrpCI"
MasahikoSawada/phint: Planner hint generator for PostgreSQL
KaiGai Kohei 🌻さんのツイート: "本日のセミナー資料です:PostgreSQLは最新ハードウェアでどこまでやれるのか?~GPUとNVMEで実現する超高速ログデータ処理基盤~ SSD-to-GPU Direct SQLが列ストレージ(Arrow_Fdw)上で動くようになりました。ベンチマーク結果も併せてどうぞ。 https://t.co/OlSPuYIAuL"
20190418_PGStrom_on_ArrowFdw
Fadisさんのツイート: "PostgreSQL12のベータが公開されたらしい。PostgreSQL12ではJSONに対するJSON pathを使ったクエリが可能になり、他のカラムの値を使って自動的に値が決定されるカラムが作れるようになり、クエリを実行する際のテーブルの漁り方をプラグインで変更できるようになる https://t.co/PCak0C0WtX"
PostgreSQL: PostgreSQL 12 Beta 1 Released!
にわか@OS自作さんはTwitterを使っています: 「DBMS自作入門って、 トランザクション管理みたいなのは、諦めて 最低限のSQL(挿入や削除やテーブル作成)コマンドや、データベースのファイルも2列(2属性)で固定してやれば意外とできそうじゃない? 素人なので、甘い考えです。」 / Twitter
yuyabuさんはTwitterを使っています: 「@89O5H1QpDQCbCkc TPC-CやTPC-Hのベンチが動くところまで作ってみたいですね」 / Twitter
:tom__bo:さんはTwitterを使っています: 「SQLからrelational algebraの式(?)を導出して、さらにそこからいい感じの可視化をしてほしい」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「昨日同僚と飲んだときに、自分はO/Rマッピングは嫌だし、かといって文字列でSQL書くのも嫌なので、単に型安全になるような、SQLの抽象構文木を書ければいいんだ(そのためのAPIがあれば十分なんだ)という趣旨のこと言ったんだけど、「SQLの抽象構文木」というのがイマイチ伝わらなかった感じ。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「メソッドチェインでクエリを書くこと、だと思われて、それはめんどくさくない?的なことを言われたのだけど、メソッドチェインかどうかは本質的ではなくて、木が欲しいのだという気持ちを伝えたかった(でも、プログラム(SQLも)は木というイメージがそもそも伝えるのに時間が必要な気がする)」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「抽象構文木という用語の選択かどうかの問題というより、プログラムが解釈される前には普通は木になるよね、ってイメージがあるのはそこまで標準的でない、というか。」 / Twitter
FadisさんはTwitterを使っています: 「PostgreSQL 12がリリースされた。PostgreSQL 12ではJSONB型の値に対してJSON pathを利用したクエリが可能になる他、インデックスの再構築を書き込みをブロックせずに行える REINDEX CONCURRENTLYが追加される https://t.co/ASLdFMfXGc」 / Twitter
PostgreSQL 12 Released As Newest Update To "World's Most Advanced Open-Source DB" - Phoronix
FadisさんはTwitterを使っています: 「データベースの操作はROLLBACKする可能性があるので、RDBMSは変更がCOMMITに至らなかった場合に元に戻せる必要がある。PostgreSQLはこれを簡単に実現する為に多くの操作をログの追記で表現する。結果ログが際限なく増えるので、もう戻らない時点のログを捨てるVACUUMで性能と容量を取り戻す必要がある」 / Twitter
K.Namba/ご注文は910ですか?さんはTwitterを使っています: 「@fadis_ VACUUM してない PostgreSQL は 死ぬ」 / Twitter
FadisさんはTwitterを使っています 「RDBMSのカラムにJSONを突っ込む事を恥じる必要はありません。何故ならISO/IEC 9075:2016からSQLにはカラムに突っ込まれたJSONをいじる為の関数が追加されていて、カラムに突っ込んだJSONの一部を使った検索などが綺麗に書けないのはお使いのRDBMSがふぁっきん古いのが原因だからです」 / Twitter
FadisさんはTwitterを使っています 「Micron、SSDや不揮発メモリで高い性能を発揮するKVS、HSEをオープンソースで公開。HSEはファイルシステムではなくSPDKのblobstoreのような機能を提供するLinuxカーネルドライバmpoolを使って、カーネルのページキャッシュを直接読み書きすることでオーバーヘッドを回避する https://t.co/emxbU2ejsC」 / Twitter
Micron Announces An Open-Source Storage Engine Designed For SSDs, Persistent Memory - Phoronix
FadisさんはTwitterを使っています 「今の所SSDにしか対応してないっぽいから、SSD向けが強調されてるけど、不揮発メモリデバイスだとページキャッシュをデバイス自体で置き換えられるわけで、これどう考えてもNVDIMMの時代にNVDIMMの性能を活かせるデータベースを作る為の土台だよな」 / Twitter

histric-3

画力・博士号さんはTwitterを使っています 「関係代数がわりと堅牢に確立されているのにSQLなどはあんまりカッチリと関係代数に “準拠” してないの(実装の都合なども加味しているのだろうけれども気持ちとしては)なんでやねん感はある」 / Twitter
画力・博士号さんはTwitterを使っています 「(まあでも例えばπ計算もそれに準拠している並行計算の言語で実用に供するものはそうそう見ないだろうし,関係代数もそういう “理想気体的な立ち位置” かな)」 / Twitter
t_yanoさんはTwitterを使っています 「SQLなあ。500行のSQLとかは今や論外であるのはいいとして、俺は多くの人がSQL(というか集合データ)に抱えてる不満って、テーブルをジョインしたら既存のエンティティにマッピングできなくて専用のValueObjectをたくさん作らなくちゃいけないとか、1:Nクエリが発生するとか、」 / Twitter
t_yanoさんはTwitterを使っています 「そういう部分にあるように見えてて、それってSQLというかRDBと集合データ側の問題ではなくて、集合データをそのままダイレクトに扱うのが難しい(オブジェクト指向?)言語側の問題だったりするんじゃねえの?って疑問は常に持っときたいんよね。」 / Twitter
t_yanoさんはTwitterを使っています 「結局インピーダンス・ミスマッチが存在するってことなんだけど、ミスマッチがあるからミスマッチの向こう側のRDBとかSQLとか集合データ構造が悪いわけじゃなくて、例えばLEFT JOIN一発で取ってこれるデータをなぜ1:Nクエリにしなくちゃいけないのか、ってとこに疑問を持ちたいんよ。」 / Twitter
t_yanoさんはTwitterを使っています 「だってリレーショナルデータベース側では、LEFT JOINしてWHERE区で絞ってシンプルに集合命令でスパッとデータ抜けちゃうわけで、スパッとデータ抜けるけどそれをうまく扱えないのは、スパッとデータ抜ける側の問題ではないよなーと。 特にこう解決しろって話じゃなく。」 / Twitter
t_yanoさんはTwitterを使っています 「めちゃくちゃパワフルな集合データベースを、それを使う側の言語?が集合データをうまく扱えないって構造だと思っていて、そういう自覚を持っておきたいんよ。 1クエリで取ってこれるデータを3回とか4回のクエリに分割しなくちゃいけないのは、RDB側じゃなくて、データを使う側の都合だよなと。」 / Twitter
t_yanoさんはTwitterを使っています 「だって、RDB側には、1クエリでデータを取ってきてさらにそれを処理できる機能があるんだから。その機能がないのはRDB使ってる言語・環境側なんであって。」 / Twitter
t_yanoさんはTwitterを使っています 「実際には、その機能がないというより、そのやり方が、言語のパラダイムに合わない(オブジェクト指向っぽくならない)から、誰もやらない、という方が正確だろうか。 ResultSetをグルグル回せばそのまま処理できるもんな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ、、、 あとmramのような細粒度アクセス可能な不揮発デバイスが広がると、脱b-tree系も有り得るのかな? (nvdimm-pとか裏にnandがある系は、ブロックアクセスでないと厳しそう?)」 / Twitter
中村 実さんはTwitterを使っています 「DB世界にはDBの内部構造に機械学習を使うというアプローチがボチボチものになり始めているように感じる。B-tree型インデックスをアクセス状態からMLを使って最適化するとか並列実行されているプラン間の資源をMLを使って最適化するとか。スキーマ推定とかはもともとMLありの分野だ。」 / Twitter
Y​S​R​@​も​の​べ​の​H​E​完​走​!​!さんはTwitterを使っています 「@kmizu 一応、あまりにアカン書き方だと警告が出たりはしますが、実行計画とにらめっこしていると、「実行計画の構図をそのままコードに落とし込んで動かねーかな」とは思ったりしますねw」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。 ---- fsyncへの2つの間違った期待 1: fsyncが失敗した場合、次のfsyncのタイミングで失敗したdirty pageは再度書き込まれる 実際には…最初のfsyncに失敗したらデータはpage cacheから削除される。…(略)…ext4は、dirty dataをpage cacheにcleanとして残すし、xfsは捨てる。… https://t.co/Smkhs9VzAi"
Shirouzu Hiroaki(白水啓章)さんのツイート: "fsync成功まで、アプリケーション側はデータを捨てずに fsyncリトライではなく write or memcpyのリトライをしないといけない、と。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "fsyncリトライが成功しても、未反映データが書き込まれていない(可能性のある)OSは、 Linux/MacOS/NetBSD/OpenBSD, 常にfsyncが失敗を返すのはFreeBSD、という感じかな? https://t.co/yrZMYDgOce"
Fsync Errors - PostgreSQL wiki
Fadisさんのツイート: "データがストレージに書き込まれる事を保証するためにfsyncやO_SYNC付きでのopen等を行っているソフトウェアに対してLD_PRELOADでそれらの関数をフックして書き込みを同期しない実装に置き換える事で、パフォーマンスと引き換えに書き込みの保証を失うライブラリ libeatmydata https://t.co/KmAOMLHtsk"
libeatmydata - disable fsync and SAVE!
チェシャ猫さんはTwitterを使っています 「なるほど、SAT ソルバをバックエンドに使って似たようなものが出来ないかと考えてた時代もあったけど公式からツールが出たのか。 https://t.co/s5LdqWN6hQ」 / Twitter
DynamoDBのテーブル設計に最適!NoSQL WorkbenchのData modelerで今度こそDynamoDBを使いこなす! | Developers.IO
🐶さんはTwitterを使っています 「RDBMS が GraphQL 直接話せたらいいのでは?」 / Twitter
7594591200220899443さんはTwitterを使っています 「まあ実際にはそういうドキュメントDBみたいなのは死屍累々なのだが」 / Twitter
7594591200220899443さんはTwitterを使っています 「直接は関係ないけどRDBMSの前段にWAFかましたりまともな今時の認証認可をかましたりしていきたいというだけのニーズに対して現在我々の手に入るソリューションって必要以上に牛刀じゃんという問題意識はある。」 / Twitter
7594591200220899443さんはTwitterを使っています 「素のDBをポーンと外向けで出すのは怖いねっていうのの対策がいきなりじゃあRailsでAPI立ててやっていくみたいな話にまでいきなりでかい話になる必要は本来ならないべきのはずなんだよなあ」 / Twitter
成瀬さんはTwitterを使っています 「またSQLQLの話してる…」 / Twitter

FadisさんはTwitterを使っています 「Linuxの新しいファイルシステム Reiser5 に新機能Burst Buffersが入ったらしい。高速小容量と低速大容量のデバイスを組み合わせてfsを作り、一時的な大量の書き込みを高速なデバイスに流し、暇な時に低速なデバイスに移すことで、高速大容量なデバイスっぽく振る舞う https://t.co/tOpwbckEyf」 / Twitter
Reiser5 File-System Working On New Features Like Data Tiering, Burst Buffers - Phoronix
2018年6月20日 次世代メモリをターゲットに開発が進むログベースファイルシステム「NOVA」:Linux Daily Topics|gihyo.jp … 技術評論社
30分で論文流し読みシリーズ 7「File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution」 - 覚書
ファイルシステムを自作しています. - alphakai’s tech blog
Logz.ioがログデータ内のパターンを自動特定する機能をリリース
オラクル オープンソース Coherence インメモリデータグリッド

diff

diff to html (diff2html) program - Stack Overflow
diffの動作原理を知る~どのようにして差分を導き出すのか|gihyo.jp … 技術評論社
文書比較(diff)アルゴリズム
diff - Wikipedia
www.ioplex.com/~miallen/libmba/dl/src/diff.c
diff-pdf - PDFファイルの差分を表示 MOONGIFT
objdumpのdiffをいい感じに取る方法のメモ - ももいろテクノロジー
Linux基本コマンドTips(102):diffコマンド(基本編)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(103):diffコマンド(基本編その2)――テキストファイルの差分をcontext形式などで出力する - @IT
Linux基本コマンドTips(104):diffコマンド(応用編)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(105):diffコマンド(応用編その2)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(107):patchコマンド――テキストファイルに差分を適用する(基本編) - @IT
Linux基本コマンドTips(108):patchコマンド――テキストファイルに差分を適用する(応用編) - @IT
LinuxコマンドTips(109):【patch】コマンド――テキストファイルに差分を適用する(応用編その2) - @IT
第97回 GNU diffからBSD diffへ切り替え:BSD界隈四方山話|gihyo.jp … 技術評論社
CUIで見やすい git コミットグラフ: git-foresta 作った - Qiita
Tree Edit Distanceと自然言語処理への応用 | Preferred Research
JavaScriptでテキストの差分を見るライブラリ - Qiita
linuxのdiffコマンドでファイルごとdiffを取るときに空のファイルを無視する方法 - 誰にも見えないブログ
コーディングスタイルと文章の認識 - in neuro

Git

OSDN

「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
「Git 2.6」リリース | OSDN Magazine
「Git 2.5」がリリース | OSDN Magazine
「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
「Git 2.0」リリース | OSDN Magazine
バグ修正が中心のリリースとなる「Git 1.9.3」が公開される | OSDN Magazine
1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
「Git 1.8.5」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine

xdelta - Wikipedia
こっそり始めるGit/GitHub超入門 - @IT
Git
git/git: Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
libgit2
libgit2/libgit2: The Library
渋川よしきさんのツイート: "git gcが内部でバイナリサイズのサイズ縮小で使っているアルゴリズムはこれかな?これをクリーンルーム実装しない限り、gitを非GPL v2にするのは難しいのでは。v3にしてくれないかねぇ。 https://t.co/2P1PCsxKV1"
NOKUBI Takatsugu野首貴嗣さんのツイート: "今のGnuPGはgpg-agentと通信すれば任意のアプリケーションから使えるようになっているので昔よりは扱いやすいはず"
アトラシアン、Gitクライアント「SourceTree for Windows 2.0」リリース。UI改善、高速化、Git Virtual File Systemサポートなど - Publickey
Introduction · Tig - Text-mode interface for Git
jonas/tig: Text-mode interface for git
.gitについて - Qiita
渋川よしきさんのツイート: "大学でgitを教えるかどうか、議論があるけど、あれのオブジェクトモデルはOSのファイルシステムをユーザランドで実現して、新から旧のスナップショットへのリンクを持っただけの素直な実装なので、Goならわかるシステムプログラミングを授業で扱ってくれたら一挙両得でお得ですよね #ステマ"
ブラウザ上で完結するGit組み込みエディタ作っている - mizchi's blog
ファイル更新に耐性のあるテキストタグ手法を考える - .mjtの日記復帰計画
高梨陣平さんのツイート: "Gitのメインな機能のみを500行のPythonで実装して学ぶとても便利な記事。 さらにHNのほうではGitの中身を学ぶための参考情報がこれでもかと紹介されている。Git以外の似た記事のまとめも https://t.co/ZbbGpYR6AT… https://t.co/tIEj1aX50t"
danistefanovic/build-your-own-x: 🤓 Build your own (insert technology here)
Hacker News 100さんのツイート: "Write Yourself a Git (2018) https://t.co/G0XX7ql6iV (https://t.co/y0Hyhl4vxU)"
Write yourself a Git!
Write yourself a Git (2018) | Hacker News

libarchive

ZIP

ZIP (ファイルフォーマット) - Wikipedia
日本語を含むZIPファイルを文字化けせず解凍する方法 - Qiita
gaborcsardi/zip: Platform independent zip compression via miniz
ZIPを少しセキュアに暗号化するツールを作った - Qiita
とみながたけひろさんのツイート: "事情によりzipファイルの構造を調べなおしているんだけど、zipファイルに記録されるタイムスタンプって特にタイムゾーンとかの定義がないのね。2バイトで精度2秒というところからするとFATと同じくローカルタイムでいいのかな"
とみながたけひろさんのツイート: "なーんも考えずにzipファイルで1時間ごとのバックアップを取る、みたいなことをしていた場合、夏時間のある国や地域ではタイムスタンプが大変なことになるんだな"
りなたむ || RYOTA NAKAMURAさんのツイート: "暗号化ZIP終焉のお知らせ。 15文字程度のパスワードならRTX2080i 4基で15時間程度で突破されるとのこと。 AzureのNC24rがTesla K80 4基構成で¥443.52/時間なので、単純計算で8000円程度かければ解読できちゃうみたいですねぇ・・・… https://t.co/fpV4SRUtnZ"
hashcatさんのツイート: "Support for PKZIP Master Key added to #hashcat with an insane guessing rate of 22.7 ZettaHash/s on a single RTX 2080Ti. All passwords up to length 15 in less than 15 hours with only 4 GPUs! Excellent contribution from @s3inlc and @EU_ScienceHub https://t.co/kVUDBrQWM3… https://t.co/9PNj3wC5Ux"
ZIP形式のままでもっと圧縮する - fujieda's tech blog
「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ - GIGAZINE
霞ヶ関でパスワード付きzipファイルを廃止へ 平井デジタル相 - ITmedia NEWS

zlib-ng

nikqさんはTwitterを使っています 「https://t.co/zVqd7rhVBY zlibがいろいろ更新がされなさ過ぎて次世代リポができてた」 / Twitter
zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.
nikqさんはTwitterを使っています 「zlibよりも最新のCMakeフレンドリに変更されている」 / Twitter

GitHub - libarchive/libarchive: Multi-format archive and compression library
libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
libarchive-3.2.0
LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
2018年12月26日 Fedora,圧縮ファイルフォーマット「zchunk」を実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
2019年5月31日 Fedora,RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
2020年4月28日 バイナリパッケージの信頼性と再現性を検証するArch Linuxの独自プロジェクト「Rebuilder」:Linux Daily Topics|gihyo.jp … 技術評論社
Dropbox、改良型Brotliを使用して同期パフォーマンスを改善
Rockridgeさんのツイート: "MozillaがFirefoxユーザーに対し送信するスニペットのデータ容量を削減した話。画像の最適化はさほど効果がなかった一方、画像のリンクへの置き換えやGZipからBrotliへの切り替えは大きな効果があったという。 / “U…” https://t.co/JTa932baYW"
圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案 | マイナビニュース
Huffman Coding with Gap Arrays for GPU Acceleration | 49th International Conference on Parallel Processing - ICPP

JSON

JSON

Standard ECMA-404
Standard ECMA-404-archive
Final draft ECMA-404 2nd edition
RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
JSON
JSON仕様(ECMA-404) を眺めてみる | Money Forward Engineers' Blog
JSON、ECMA標準となる。仕様文書「ECMA-404」が公開 - Publickey
事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に - Publickey
JSON: The JavaScript subset that isn't — Timeless
Subsume JSON
gibson042/ecma262-proposal-json-superset: Proposal to make all JSON text valid ECMA-262
非エンジニアに贈る「具体例でさらっと学ぶJSON」 | Developers.IO
JSONの歴史 - Speaker Deck
個人的なシリアライザの特徴表(作成中)

JSON Merge Patch

shinichiro hamajiさんのツイート: "設定にJSONを使いはじめた https://t.co/QFepaqFIJB 今のところのモチベーションはバックエンドの管理などにしようかと。YAML嫌いTOMLそれほど使われてない、ということでmenohでも使われてるJSONになった。JSON merge patch というのが RFC にもなってて素敵だと気付いた https://t.co/QvHZB2nErt"
Declare capability of backends by JSON configs by shinh · Pull Request #281 · pfnet-research/chainer-compiler
RFC 7396 - JSON Merge Patch
ゆきさんはTwitterを使っています: 「Range Patch https://t.co/tuwPJ0bw5a JSON構造に対して直接パッチリクエスト送れる感じ? #yuki_id」 / Twitter
draft-toomim-httpbis-range-patch-00 - Range Patch
設定ファイル(JSON)のdiffをjson patchでやってみようという試み - podhmo's diary
RFC 7386: JSON Merge Patch - 一汁三菜
JSONマージ・パッチによるJSONドキュメントの更新
RFC 7386 - JSON Merge Patch 日本語訳
JSON Merge Patch

JSON Lines

jqコマンドでJSONをJSONL(JSON Lines)に変換する - rochefort's blog
JBoss EAP 7でJSON Lines形式のログをFluentdに渡す – ナッツウェル 技術研究室
Centralized Logging for WildFly with the ELK Stack · WildFly
JSON(Array形式でフラットな)をMarkdownのテーブルに変換
JSON Lines
JSON Lines Examples
JSON Lines
raphaelstolt/json-lines: Library for the JSON Lines text file format.
JSON streaming - Wikipedia
json-lines 0.3.1 : Python Package Index
jsonlines — jsonlines documentation
json-lines
JSON Lines | Hacker News
Sho ShimauchiさんはTwitterを使っています 「CLIでのjsonのパースにjqを使うのは定番だが、 @aodag が python -m json.tool でもパースできるということを教えてくれた。jq入れなくていいので状況によってはかなり便利だな。しかも3.8からはjsonlに対応している https://t.co/HSuoDeVkN9」 / Twitter
json --- JSON エンコーダおよびデコーダ — Python 3.8.5 ドキュメント
jsonl - Google 検索
qwerty2501さんはTwitterを使っています 「正直json linesもやや助長ではあるので、ヘッダーに型情報をもったcsvみたいなのが欲しいかも知れない」 / Twitter

JSON-RPC

JSON-RPC
JSON-RPC 2.0 Specification
RFC 7807 - Problem Details for HTTP APIs
JSON-RPC - Wikipedia
JSON-RPC - Wikipedia
JSON-RPCについて
JSON-RPC over HTTPなサーバを作る - Qiita
JSON-RPCって何? - Qiita
JSON-RPCというWebAPI設計に役立ち、、そうなそうでもないかもな規格 - Qiita
Go で始める JSON-RPC 入門 – osamingo – Medium
REST APIに消耗したらJSON RPCを試そう - タオルケット体操
意外と便利なJSON RPC - TechTalkManiacs
Widebullet〜API Gateway with JSON-RPC〜 - Mercari Engineering Blog
Google Developers Japan: Google API における JSON-RPC および Global HTTP Batch エンドポイントのサポート終了について
渋川よしきさんのツイート: "TypeScript並みに値も使った型チェックが便利になったら、SwaggerとかRESTとか頑張るよりも、JSON-RPCの方がよくね?という気がしている。type findMethod = { method="findByStatus": params: {id: number} }とか書いておけばいいじゃん(クライアントがJS系の場合に限る)。"

jq

jq
jq コマンドを使う日常のご紹介 - Qiita
【マメ知識】アプリが生成した、可読性の悪いjsonファイルの可読性をよくする方法 - Qiita
jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE
jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | Developers.IO
良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム
JSONを扱いやすくするコマンド(jq, gron)のメモ - 脱力系日記

C

yaji

yajl
lloyd/yajl: A fast streaming JSON parsing library in C.
Yajlって速いの? - Qiita

yyjson

ドッグさんはTwitterを使っています 「新たな fastest をうたう JSON ライブラリが…(実装は C) | 'ibireme/yyjson: The fastest JSON library in C' https://t.co/efOoFOxMk6」 / Twitter
ibireme/yyjson: The fastest JSON library in C
ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/wrcOZC1N3L デコード側の実装ざっと眺めた感じ別にそこまで変わった実装ではないな(見落としてるだけかもしれないけど).浮動小数点数パース周りの最適化頑張ってるっぽいのと,minify された JSON とインデントされた JSON で実装分けてるのはなるほど」 / Twitter
yyjson/yyjson.c at master · ibireme/yyjson
ドッグさんはTwitterを使っています 「やはり最適化には table lookup ベースのアルゴリズムが大事なんだなぁ」 / Twitter

Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C
Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
Jansson — C library for working with JSON data
akheron/jansson: C library for encoding, decoding and manipulating JSON data
Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
parson
kgabis/parson: Lightweight JSON library written in C.
Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
The most simple JSON parser in C for small systems
zserge/jsmn: Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket
jq
stedolan/jq: Command-line JSON processor

Qiita

null だけの JSON は合法か? - Qiita
package.json は .yaml で準備して json に直すワンライナーでエクスポートする - Qiita
RFC 準拠的な JSON 形式について - Qiita
JSON にもコメントを書きたい - Qiita
microsoft/node-jsonc-parser: Scanner and parser for JSON with comments.
JSON Schema や JSON から Go の struct を生成する - Qiita

Twitter

Kazuho OkuさんはTwitterを使っています: "別の言い方をすると、RFC 4627のJSONは、後続の文字列が何であろうと正しく終端判定できたんだけど、RFC 7159ではそういうことができなくなり、JSONを埋め込む側に別途、終端判定に必要な情報をもたせることが必須になった https://t.co/WZdyoNvlBD"
Kazuho OkuさんはTwitterを使っています: "RFC 7159 において picojson の API を維持する件については、 input iterator をインクリメントするタイミングを遅延させることでいけそうなイキフン https://t.co/A8exerdIs5 https://t.co/zRpMaxV26R"
Kazuho Okuさんのツイート: "2**53内ならJSONで数値として表現できるっていうけど、デコーダによって異なる値として解釈されるような表現は可能なの、ちょっと怖いなと思った https://t.co/G7q03sCkc4"
Kazuho Okuさんのツイート: "[0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100e100] つーJSONパースするとrubyだけ[0]になる(他は100)"
Kazuho Okuさんのツイート: "JSONの話というのは、Ruby固有の問題というよりは、2**53以内の整数ならJSONで相互運用性を保てるというのが実は幻想で解釈の違いがあるんじゃないかという話です https://t.co/9ekr1VoXrb"
watsonさんのツイート: "JSON の定義とか、確かに https://t.co/x7Q0pSZkBj が便利そうだね( ˘ω˘) #tkrk11"
Jxckさんのツイート: "一方頻出 API である JSON.stringify/parse がアレだったのはアレだけど。"
Hiroaki Nakamuraさんのツイート: "DropboxはAPI v2を作るときにRESTは止めてJSONを入出力とするシンプルな方式に切り替えたそうです。 / "Scaling and securing the Dropbox API" https://t.co/Ne3QXJYqgI"
ドッグさんのツイート: "JSON を grep しやすい形式に変換するツール面白い.grep した後に元の JSON の出力に戻す(--ungron)こともできるし,そのまま JavaScript としても扱えるらしい | 'tomnomnom/gron: Make JSON greppable' https://t.co/3MJPqtoQz5"
tomnomnom/gron: Make JSON greppable!
Fadisさんのツイート: "従来の有限状態機械を使ったJSONパーサは分岐命令が頻繁に実行され、CPUの分岐予測ミスによるペナルティが無視できない問題になるため全く新しいJSONパーサを考えた、とか言い出す論文を目の当たりにしてJSONスゲェってなってる"
Mison: A Fast JSON Parser for Data Analytics - Microsoft Research
はやぶささんはTwitterを使っています 「むしろGo の struct から JSON Schema 生成するやつとかあり、JSON Schema を IDL として使うの自体が向いてないって感じだなぁ。コメントとかもかけないし。」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「21世紀になってもconfig language設計をナメてかかって、場当たり的にvariable substとか正規表現マッチを足していって一貫性がなくなったりするのを見るとすごく苛つく。 yamlに適当に評価ルールを上乗せしてくのは完全にアンチパターンだよ」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「plain json, plain yaml以外は受け付けないと割り切って拡張性はjsonnetみたいのに委ねるなり、starlarkを使うなり、それかチューリング完全な言語の上にDSLを定義するなりしたいものだ」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「単純な話、言語設計は難しくて、他の複雑なシステムの開発の片手間にやれるものじゃないんだろう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「JSONに邪魔なもの、カンマ、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同感。 この二つが原因で、設定ファイルに採用しづらいのだよなぁ、、、」 / Twitter
Dan KogaiさんはTwitterを使っています 「// そしてコメント(💩が)」 / Twitter
チェシャ猫さんはTwitterを使っています 「YAML の型はエラーの原因になりがち。例えば 0.1 なら数値なのに 0.1.0 だと文字列になったりする。情報を文字列で埋め込もうとするとエクスプロイトの原因にもなる。 #SoftwareCircusFest」 / Twitter

JavaScript Object Notation - Wikipedia
JSON - Wikipedia
JSON, YAML, ini, TOML ざっくり比較
JSON::Types ってのを書いた - unknownplace.org
論文メモ: Mison: A Fast JSON Parser for Data Analytics | κeenのHappy Hacκing Blog
JSON Schema | The home of JSON Schema
FadisさんはTwitterを使っています: 「RFC4180ではCSVはMIME typeのパラメータで文字コードが指定された場合に限りその文字コードの文字を使用でき、ない場合はASCIIコードを使うことになっているので、sjisだろうとeucjpだろうとutf8だろうとCSVに0x7Fより上の文字を突っ込んだCSVを単独で交換するのはオススメできない」 / Twitter
設定情報をエレガントに管理する方法(解決なし) - まめめも
ASCII.jp:Windows 10でJSONを扱う (1/2)
設定ファイル言語 cumin を自作している

infoQ

Facebook Retrieを使用した大規模なHaskellコードベースのリファクタリング
ミューテーションテストの紹介 - Dave Aronson氏のJSConf Hawaiiでの講演より
堅牢なテスト戦略により自信を持ってDropbox Syncをリライト

Twitter

@shinji_kono

Shinji KonoさんはTwitterを使っています 「NeXTが導入された当時は Hyper Textってのが流行り。それはHyper Cardに影響されていたかも。それを実現したのが、Objective Cのdictionaryの機構とDisplay PostScriptの組合せ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「TextEditが例題として用意されていて、RichText でsaveできてた。で当時あったGopherとかのファイルサーバーとXeroxのSGMLと組合わせたのがHTML/HTTPだった。うまくNEXTSTEP依存を回避していたことと、これもできたばっかりだったDNSを使ったリンクがうまく機能してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろなpackage管理はコンテナで解決しつつあるんだが、GUI/IDE側がな。 コンテナとpackage管理は本来関係ないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「GUI/IDEも構成管理ベースでイメージ配布になる気がする。もうなってるかも知れん。」 / Twitter
hkobaさんはTwitterを使っています 「flatpakが近いかも、です? https://t.co/HryP0y2Uzo」 / Twitter
第513回 新しいパッケージの仕組み,Flatpakを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Shinji KonoさんはTwitterを使っています 「@hkoba あぁ、brew cask みたいなのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このあたり結構怒ってるんだよな。わざわざstaticなcontentsにhttpsつけさせて囲い込んでるのにCDNをありがたがる羊たち。 QT Jamstackではスタティックのコンテンツ配信が増えるので、CDNの効果が絶大です。… https://t.co/FgGGxklfGW」 / Twitter
Jamstackは新しいWebアプリのアーキテクチャ? - EY-Office
Shinji KonoさんはTwitterを使っています 「単なるプロバイダ側のキャッシュを神のように崇めてお布施する人たち」 / Twitter
Shinji KonoさんはTwitterを使っています 「Scratch 、自分もそうだけど、小学生も「なんかかっこわるい」って思ってるのがいる気がする。構文エラーが減るのは良いかもしれないけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Scratchが良いなら、製品でも使われてるはず。」 / Twitter

@masuda220

増田 亨.さんはTwitterを使っています 「エンティティ・集約・リポジトリがチームの理解を混乱させ、設計を迷走させる原因は、はっきりしている。 ドメイン駆動設計では、この三つはオブジェクト指向プログラミングの設計の議論。 それに対し多くの技術者は、この三つをテーブル設計とデータベースアクセスの話として解釈する。」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計では、エンティティは識別情報を他の属性から明確に区別するための設計パターン。 集約はデータの集約ではなく、計算・判断の「ロジック」の集約を明らかにするための設計パターン。 リポジトリはオブジェクトの退避と再構築のための設計パターン。」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の超要約: アプリケーションの複雑さに立ち向かうために、 ビジネスルールに焦点を合わせて、 オブジェクト指向プログラミングに取り組む 別の道: 単純なアプリケーションを、 入出力に焦点を合わせて、 手続き的なプログラミングでちゃっちゃと作る」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の基本の設計パターンで ・値オブジェクト ・モジュール の二つは、チームの設計の基盤として確実に役に立つ。 それに対し ・エンティティ ・ドメインサービス ・集約 ・リポジトリ ・ファクトリ は、解釈が混乱しやすく、チームの設計を迷走させていることが多いのではないか?」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメインサービスは、オブジェクトのモデリングと設計に豊かな経験と確かな判断力を持つ技術者には有用なパターン。 オブジェクト指向プログラミングの理解と実践が不足している技術者にとっては、手続き的なプログラミングに留まるためのアンチパターンになるだけ。禁止すべき。」 / Twitter
増田 亨.さんはTwitterを使っています 「エヴァンスはオブジェクト指向プログラミングでの開発経験があることを前提にドメイン駆動設計を書いた。 しかし、おそらく日本の読者の大半はクラスを使った手続き的なプログラミングの経験しかない。 DTOとエンティティを同じと考える読者にエヴァンスのドメイン駆動設計は意図は伝わらない。」 / Twitter

:craftsman/kawasimaさんはTwitterを使っています 「業務システムの設計に迷ったら、まずredmineではどうしているかを見に行くとよいです。テーブル設計、認可、マルチテナント、テスト、ユーザ設定可能なワークフロー、ユーザ削除時の対応、プラグインによる拡張などなど、参照実装としてすごく有用です。」 / Twitter
hikaliumさんはTwitterを使っています 「変数名の取り違え、型さえ合っていればコンパイラは無力なの悲しい(変数名の取り違えを防ぐコンパイラやlinter側での努力に関する研究ってあるのだろうか?(ソフトウエア工学とか心理学とか方面寄りになりそう?))」 / Twitter
KOBA789さんはTwitterを使っています 「@hikalium rust-analyzer とかだと仮引数の名前と実引数の名前に common suffix がない場合は仮引数の名前がエディタ上で補完されて名前付き引数のような見た目になったりしますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「利用する側を先に作ることでインターフェイスを整理してから、実装やテストを書くことも多い気がする」 / Twitter
Takuto WadaさんはTwitterを使っています 「どちらかというと、メソッドのインタフェースをゴリゴリ変えたいからこそ先にテストを書くんですよね。「どうやって使わせようか先に思いつかない」のは私もそうで、だから自分が一番先に使う側に回って考えようというのがテストファーストです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「アプリケーションコードからの使いやすさと、テストのしやすさと、内部実装の簡潔明快さはどれも重要で、実際はその3つのバランスをどう取るかだし、手を動かすことができるならば、あまり順番は重要じゃない気がするけど」 / Twitter
神速さんはTwitterを使っています 「DDDの話は何度聞いても「世の中の9割はそんなにクラス設計を上手くできない...」という点を感じていて、そういう意味では「ActiveRecordに密結合で短いコードにする」という割り切りの方が好みではある。無駄に多いクラスよりマシなので。」 / Twitter
sumimさんはTwitterを使っています 「コピー&ペースト(より正確にはカットとペースト)がSmalltalkのどんなキー操作にいつ頃アサインされたのかをざっと当時のコードを読んでこれ→https://t.co/BEAFBElfFl を書いたのですが、もう少し丁寧に調べてみたら少なくともSmalltalk-76の時点でLFではなくBLANK-TOPに割り振られていた事が判明… https://t.co/l6hAVNeLKn」 / Twitter
sumim: "#365 収録後トークの「コピー&ペーストはMacが最初」というのは少々いただけないです(アラン・…" - グルドン
sumimさんはTwitterを使っています 「カット・コピー・ペースト操作が [修飾キー]+X/C/V になったのがLisaからなのは明らかとして、コピー&ペースト操作のネタ元であるSmalltalkで(特にペーストの)キー操作はどうだったのか…というのはオレンジ本にも書いておらず長らく疑問に思っていたのですが、ようやくモヤモヤが晴れてスッキリ!」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@sumim そろそろ本にまとめることをお勧めします。」 / Twitter
mima_itaさんはTwitterを使っています 「javascriptは大抵mockやfakesで依存関係を偽装できるのでテストは簡単な部類。」 / Twitter
mima_itaさんはTwitterを使っています 「中間言語作る系のC#やJavaも頑張れば基本的に何とかなる。Cもプロダクトコード側が適切にライブラリに分割してあればコールバック関数を偽装して偽のライブラリを作成して何とかなったが・・・C++だけは今でも苦戦しそう。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Jupyterって画像が表示できるREPLでしょ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「画像が表示できて自然に複数行入力できて実行コードと結果をまとめてファイルに保存する機能がついたREPL」 / Twitter

自作DBMS Advent Calendar 2020 - Adventar
開発イテレーション偏重 - 兼雑記

OS

Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
Desktop operating system market share in Japan | StatCounter Global Stats
Desktop browser market share in Japan | StatCounter Global Stats
https://www.netmarketshare.com/welcome
メインフレームの異常処理 - Qiita
「フェイルバック(failback)」と「フォールバック(fallback)」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
Shinji KonoさんはTwitterを使っています 「ランサムウェアはバックトラックあれば防げるんだから、あんまり同情する気にはなれないが。GooleDrive ランサムウェアとか?」 / Twitter
Microsoft Digital Defense Report でサイバーセキュリティの動向を知る - Microsoft Security Response Center
The ADvanced Systems Laboratory (ADSL): Publications
yohei.codes
kosakiのブックマーク - はてなブックマーク

その他

Google

Downloading the Source  |  Android Open Source Project
The Android Source Code  |  Android Open Source Project
Selecting Devices  |  Android Open Source Project
Codenames, Tags, and Build Numbers  |  Android Open Source Project
Android Compatibility Definition Document  |  Android Open Source Project
platform/ - Git at Google
platform/development.git - Git at Google
android/platform_development
Architecture Overview of Fuchsia OS - Speaker Deck
Chromebookのシェアが1%から13%に急増。2021年には24%へ - PC Watch

The Linux Kernel Archives
Interactive map of Linux kernel
Beyond Linux® From Scratch
UNIX®, an Open Group Standard
Igalia - Open Source Consultancy and Development | Index
Birchill
Plan 9 From Bell Labs - Plan 9 from Bell Labs 翻訳プロジェクト
「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは: ITジャーナリスト星暁雄の"情報論"ノート
OSKitで遊ぼう - Kota Abe
ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
reactos/reactos: A free Windows-compatible Operating System
openbsd/src: Public git conversion mirror of OpenBSD's official cvs src repository.
IIJ-NetBSD/netbsd-src: automatically converted from www.netbsd.org
The NetBSD Foundation
freebsd/freebsd: FreeBSD src tree (read-only mirror)
/pub/FreeBSD/releases/amd64/amd64/ のインデックス
Falling - Google スライド
dspinellis/unix-history-repo: Continuous Unix commit history from 1970 until today
トーバルズ氏が語ったLinuxカーネル開発者や開発の未来 - (page 2) - ZDNet Japan
Operating Systems: Three Easy Pieces
オペレーティングシステム II(2019年)
NetBSD Internals
電子辞書は組み込みLinuxの夢を見るか? - Zopfcode
宇宙の極限状態で動作する「リアルタイムオペレーションシステム」とは? - GIGAZINE
NetBSDを手探りで移植したときの話 - Qiita
Rustでの自作OSをやってきて - Speaker Deck
自作OSとマルチコア | PG_MANAの雑記

Hardware

その他

Linuxの生みの親トーバルズ氏の最新自作マシンを徹底解剖--本人のコメント付きで構成を紹介 - ZDNet Japan
ソニー、次世代型FeliCaチップ開発 クラウド連携機能を追加 - ITmedia NEWS
Kazuho OkuさんはTwitterを使っています 「あー44.1kHzって、アナログのビデオ録画機器を流用した際にPALでもNTSCでも実装しやすい値なのか。なるほどすごい https://t.co/v3OGigMe93」 / Twitter
44,100 Hz - Wikipedia
なぜTSMCだけEUVプロセスで高い歩留まりを達成できるのか? | マイナビニュース
CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明 - Qiita
第635回 Ubuntuでパソコンを光らせよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
HiFive Unmatched - SiFive
MIPS、RISC-Vのサポートを表明 | マイナビニュース
Precursor | Crowd Supply
内部で独自開発されブラックボックスになりがちな「SoC」はなぜオープンソースであるべきなのか? - GIGAZINE
Googleが半導体チップの設計に必要な「PDK」をオープンソース化するプロジェクトを支援 - GIGAZINE
“PC”の定義は何か まずはIBM PC登場以前のお話から (1/3) - ITmedia NEWS
40年前のデバイスの方が現代のデバイスより応答速度が速い - GIGAZINE

Intel

その他

instlatx64
Identify CPU features (beta)
インテル チップセット - Wikipedia
Template:Intel processors - Wikipedia
mjg59 | Microsoft aren't forcing Lenovo to block free operating systems
a4lg.com | x86 ファミリーとモデル一覧
IntelのCPUの末尾についているK, S, Tなどのアルファベットについて
BIOS Implementation Test Suite
bochs.sourceforge.net/techspec/PORTS.LST
ASRock Rack > E3C236D2I
Intel iAPX 432 - Wikipedia
intelのCPUロードマップ : 過去・現在・未来のLake – curional
Intel、ポストCMOSとなる新半導体素材「MESO」 ~CMOS比30分の1の消費電力や5倍の演算性能、ムーアの法則継続にも - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの深層学習チップ「Spring Crest」と「Spring Hill」の大きく異なるアーキテクチャ - PC Watch
AMDは2016、Intelは2014……。最新CPUチップの刻印が意味するもの (1/3) - EE Times Japan
完全版!! 「Core i7」極限検証 - 内部アーキテクチャ解析編 (13) Cache (3) | マイナビニュース
RISCとCISCの境目がなくなる Pentium Proの逆襲 (1/3) - ITmedia NEWS
Intelからおよそ20GBものチップデータやソースコードなど機密情報が大量流出 - GIGAZINE
Microarchitecture Cheat Sheet - Google スプレッドシート
Intelを業界トップに押し上げるも再びピンチに陥らせた「破壊的イノベーション」理論とは? - GIGAZINE
MicrosoftがWindows搭載PCを保護する新型セキュリティチップ「Microsoft Pluton」を発表 - GIGAZINE
インテル、CPUの性能アンロックコードを販売 - Engadget 日本版
Microsoft、TPMに代わるCPU内蔵型セキュリティチップ「Microsoft Pluton」 ~AMD、Intel、Qualcommと共同開発 - PC Watch
次のPC買い換えはPluton搭載CPUが鍵か - 阿久津良和のWindows Weekly Report | マイナビニュース

Intel

Microcode Revision Guidance (Apr 3, 2018)
Intel® Product Security Center
Intel® Desktop Chipsets
Intel Processors and Chipsets by Platform Code Name
ISA Extensions | Intel® Software
Hisaki Oharaさんのツイート: "ISA Extensions出てた。主にguest OS monitoringを実現するためのEPT-based Sub page permission、これ変態機能でしょう https://t.co/7yNl961Zl7"
Hisaki Oharaさんのツイート: "ISA ExtensionsのTable 1-1が死ぬほど便利。特定の命令セットがどの世代から入ったかまとめられている。つうかなんで今までなかったのか。あとさりげなくIcelakeの文字が。 https://t.co/7yNl961Zl7 https://t.co/sujkidSIX2"
Hisaki Oharaさんのツイート: "BPU (Branch Prediction Unit)は最近のOptimization Reference Manualには最低限のことしか書いていないのだけど、Branch Target Bufferといった言葉の意味を知る程度でよければ、Pentium IIとかIIIの時代… https://t.co/frQiiqVWPA"
Intel® Architecture Optimization
Hisaki Oharaさんのツイート: "いまどきのアーキテクチャでは激変しているはずなので参考以上で受け取っては駄目です。ただ、Google Project Zeroのblogを読む際の一助になるかもしれない。つうかこのファイル、https://t.co/SJAL9HrWvEからまだダウンロードできるようになっていると… https://t.co/rB3R5eKitY"
Benefitting Power and Performance Sleep Loops | Intel® Developer Zone
Intel® Architecture Instruction Set Extensions and Future Features Programming Reference
Intel® Software Development Emulator | Intel® Software
Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
インテル® リソース・ディレクター・テクノロジー (インテル® RDT)
Intel® Product Specifications
Intel® Core™ Processors Technical Resources
Intel® Xeon® Processors Technical Resources
Intel® Chipsets
Intel® Server Chipsets
IPMI Technical Resources
製品の仕様情報 - Intel® Optane™ Memory Series
Intel® 64 and IA-32 Architectures Optimization Reference Manual
10th Generation Intel® Core™ Processor Instruction Throughput and Latency Docs | Intel® Software
8th and 9th Generation Intel® Core™ Processor Families Datasheet, Volume 1 of 2
Intel® Mobile Chipsets
Intel® Architecture Instruction Set Extensions Programming Reference | Intel® Software

デスクトップ

Skylake

Intel

Intel® Core™ i3-6100 Processor (3M Cache, 3.70 GHz) 仕様
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
6th Generation Intel® Processor Datasheet for S-Platforms — Datasheet – Volume 2 of 2
6th Generation Intel® Processor Family
6th Generation Intel® Processor Family Uncore Reference Manual
6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 1
6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 2
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 2
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 2
Intel® 100 Series Chipset Family PCH Specification Update

Errata

Skylake CPUで複雑な処理を実行させるとPCがフリーズするバグが確認される | スラド IT
IntelのSkylakeプロセッサに複雑な計算プログラム実行でシステムフリーズするバグが見つかる - GIGAZINE
【PC】Intel Skylake/Kaby Lakeに深刻な欠陥 Hyper-Threadingでシステムが予測不能な動作、データ損失などの可能性 すべてのOSに影響 | LH MAGAZINE
[WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading
Skylake/Kaby LakeプロセッサのHTTに不具合 | スラド Linux
IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
Skylake/Kaby Lakeでシステムクラッシュを引き起こすエラッタが発見。BIOS更新が必要 - PC Watch
北森瓦版 - “Skylake”と“KabyLake”にHyperThreading周りのエラッタが発見される
2017年6月29日 Debian開発者,Intel Skylake/Kaby Lakeユーザにハイパースレッディング無効化を警告:Linux Daily Topics|gihyo.jp … 技術評論社

News

北森瓦版 - “Skylake”で導入された“Speed Shift technology”
【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に : ニッチなPCゲーマーの環境構築
質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
第 6 世代インテル® Core™ プロセッサー (開発コード名 Skylake) の概要
古田雄介のアキバPickUp!:Skylakeに低GPU内蔵のPモデルが登場! (1/4) - ITmedia PC USER
Hot Chips 28 - Inside Skylakeと題したIntelの発表 (1) 消費電力管理に改良が施されたIntelのSkylake | マイナビニュース
【特集】「Skylake」完全攻略!!(追加検証) - 内部解析で第6世代Coreの謎に迫る | マイナビニュース
Intel、SpectreパッチでのOS再起動問題に対処したSkylake向けファームウェアを提供 - PC Watch
Intel microcode updates
Microsoft Update カタログ

マザーボード | H170-PRO | ASUS 日本
J10812_H170-PRO_web_only.pdf
Intel® Management Engine の重要なファームウェア・アップデート | サポート 公式 | ASUS 日本
Skylake (client) - Microarchitectures - Intel - WikiChip
Core i3-6100 - Intel - WikiChip
Intel Core i3-6100 - CM8066201927202 / BX80662I36100

Kaby Lake

GA-Z270X-UD5 (rev. 1.0) | マザーボード - GIGABYTE Japan
Kaby Lake - Microarchitectures - Intel - WikiChip
Core i3-7100 - Intel - WikiChip
Intel Core i3-7100 - CM8067703014612 / BX80677I37100 / BXC80677I37100
インテル® Core™ i3-7100 プロセッサー (3M キャッシュ、3.90 GHz) 製品仕様
Datasheet, Vol. 1: 7th Gen Intel® Processor Family for S Platforms
Datasheet, Vol. 2: 7th Gen Intel® Processor Family for S Platforms...
Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH
Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH
Intel® 200 and Z370 Series Chipset Families PCH Spec Update

Coffee Lake

Intel

Intel® Celeron® G4900 Processor (2M Cache, 3.10 GHz) 製品仕様
新しい保護機能をハードウェアに実装
8th Gen (S-platform) Intel® Processor Family Datasheet Vol.1
8th Gen (S-platform) Intel® Processor Family Datasheet Vol.2
8th Gen (S-platform) Intel® Processor Family Spec Update
Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 1
Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 2
Intel® H370 Chipset Product Brief
Intel® Z390 Chipset Product Brief
インテル® Wireless-AC 9260 製品仕様
インテル® Wireless-AC 9560 製品仕様

ASRock > H370 Pro4
ASRock > Fatal1ty H370 Performance
ASRock > Z390 Phantom Gaming 4
Coffee Lake - Microarchitectures - Intel - WikiChip
Celeron G4900 - Intel - WikiChip
Intel Celeron G4900 - CM8068403378112 / BX80684G4900 / BXC80684G4900
北森瓦版 - デスクトップ向けCore i 9000 seriesのS-specとsteppingを理解しよう
Core i7-9700Kの新ステッピング、今度はリテールパッケージが入荷 - AKIBA PC Hotline!
新ステッピング「R0」のCore i7-9700Kが発売開始~既流通品と選択可能~ - エルミタージュ秋葉原
【後藤弘茂のWeekly海外ニュース】Intel「第8世代Core」に見る、微細化準備が整っても、製品を移行させない/させたくない理由 - PC Watch
Intel、第9世代Coreプロセッサに「Meltdown」対策をハードウェア実装 ~開発中の“単体GPU”のコンシューマ向け投入も明言 - PC Watch
Intel、次期CPUにSpectre対策機能をハード実装 - PC Watch
Intelが脆弱性「Spectre」「Meltdown」をハードウェアレベルで対策したCPUを2018年後半にリリースすると発表 - GIGAZINE
Intelで脆弱性緩和済みCPUリスト - Qiita
Spectre and Meltdown Hardware Protection Added to Intel's 9th Gen CPUs
Intel、第9世代Core「Coffee Lake Refresh」を2021年末に製造終了 - PC Watch

Comet Lake

インテル® Core™ i3-10100 プロセッサー (6M キャッシュ、最大 4.30 GHz) 製品仕様
Intel® Celeron® Processor G5900 (2M Cache, 3.40 GHz) 製品仕様
Comet Lake - Microarchitectures - Intel - WikiChip
PRIME H470-PLUS | マザーボード | ASUS 日本
Intel、10コア/5.3GHz動作の「Core i9-10900K」など第10世代Sプロセッサを展開 ~TB Max 3.0やThermal Velocity Boostサポートで高クロック動作 - PC Watch
Intel、よりセキュアな第10世代Core vProプロセッサ - PC Watch
Intelの最大クロック数5.3GHzを誇る第10世代CPU「Comet Lake-S」が販売開始、AMDと戦える力はあるか? - GIGAZINE
intelの第10世代は、あらかたの脆弱性が対策済みなのですか? - Quora
Die-Thinning, Overclocking, Dynamic Hyper-Threading, Mitigations - Intel Comet Lake-S Arrives: More Cores, Higher Boosts and Power Draw, but Better Pricing | Tom's Hardware
北森瓦版 - “Comet Lake-S”のPL1, PL2, Tauの値
ASUS、最新のBIOSアップデートによりIntel Z490, H470 & B460マザーボードのサイズ変更可能なBAR(スマートアクセスメモリ)をサポート可能に - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - Radeon RX 6000 seriesのSmart Access Memoryの話題いろいろ

Rocket Lake

Rocket Lake - Microarchitectures - Intel - WikiChip
Intel Rocket Lake to be Limited to Core i5s, i7s and i9s: To Launch in Q1 2021 | Hardware Times
デスクトップ向け第11世代Core「Rocket Lake」は2021年第1四半期に登場 - PC Watch
Intel、デスクトップ向け第11世代Core「Rocket Lake-S」の詳細を発表 ~CPUはIPCを大幅向上させたCypress Cove、GPUにXe Graphicsを採用 - PC Watch
北森瓦版 - “Rocket Lake-S”と500 seriesチップセットの詳細をIntelが明らかに
Intel Rocket Lakeの詳細が公式に明らかになった。Ice Lake からバックポートされた Cypress Cove コアがベース - 自作ユーザーが解説するゲーミングPCガイド
intelの第11世代8コア&16スレッドRocket Lake CPUは、MSI Z590-A PROマザーボード上でベンチマーク流出 - 初期の4.2 GHzのサンプルは、シングルコアテストではi7-10700Kよりも21%高速 - 自作ユーザーが解説するゲーミングPCガイド
wccftech独占: Intelの待望のRocket Lake CPUは2021年3月に発売され、Z490マザーボードとの下位互換性を持つ。 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - MSIのプレスリリースにうっかり出てきてしまった“Rocket Lake-S”のSS
Intel Rocket Lake 8 コア & 16 スレッド 5.0 GHz の CPU ベンチマークのリーク、AMD Ryzen 7 5800X と同等に - 自作ユーザーが解説するゲーミングPCガイド

Alder Lake

Ocean Cove - Microarchitectures - Intel - WikiChip
Alder Lake - Microarchitectures - Intel - WikiChip
Intel、2021年にCore/Atom両系統のCPUを搭載したクライアントPC向けCPU「Alder Lake」を投入へ ~サーバー向けのIce LakeはPCIe Gen4に対応し、Sapphire RapidsではPCIe Gen 5に対応へ - PC Watch
[PATCH] x86/cpu: Add Lakefield, Alder Lake and Rocket Lake to Intel family
インテルの第12世代「Alder Lake」CPUに8+8コアを搭載したSisoft Sandraのベンチマークで発見された - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - サンプリングが開始されるつつある2021年後半予定のIntel Processor

Meteor Lake

Golden Cove - Microarchitectures - Intel - WikiChip
Meteor Lake - Microarchitectures - Intel - WikiChip
Intel Meteor LakeがLinuxパッチに登場 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - “Alder Lake”の次の“Meteor Lake”は7nmで“Redwood Cove”を用いる

Lunar Lake

GPUドライバーにIntel Lunar Lake、Jupiter Sound、DG3が発見された - 自作ユーザーが解説するゲーミングPCガイド

Goldwater Lake

北森瓦版 - GPUドライバから見つかった“Lunar Lake”、“Jupiter Sound”、“DG3”

【スペック一覧】デスクトップ向けIntelプロセッサー・ナンバー一覧表 - PC Watch

モバイル

8th, 9th Core

【笠原一輝のユビキタス情報局】第8世代Coreプロセッサの本当のコードネームはどれ? ~Kaby Lake Refresh、Coffee Lake、Cannonlakeの3つが同じ製品ブランドで同時展開 - PC Watch
【笠原一輝のユビキタス情報局】Intel、今年後半に8コアのCoffee Lake Refresh、2019年にComet Lakeを投入へ ~Xプロセッサの28コアはBasin Falls Refreshに - PC Watch
【笠原一輝のユビキタス情報局】Whiskey LakeとAmber Lakeの正体 - PC Watch
インテル® Core™ i5-8250U プロセッサー (6M キャッシュ、最大 3.40 GHz) 製品仕様
Intel Core i5-8250U Mobile processor - FJ8067703282221
iiyama STYLE-15FH038-i5-UHEX [Windows 10 Home] | パソコン工房【公式通販】
インテル® Core™ i5-8265U プロセッサー (6M キャッシュ、最大 3.90 GHz) 製品仕様
DELL CINEMAテクノロジー搭載のInspiron 15インチ5583ノートパソコン | Dell 日本
最新Intel NUC「BEAN CANYON」が計4モデル発売、Core i7/i5は4コア8スレッド - AKIBA PC Hotline!
Intel NUC「BEAN CANYON」の薄型モデルにCore i3搭載版が登場 - AKIBA PC Hotline!
製品の開発コード名 Whiskey Lake
Whiskey Lake-Uを搭載したNUCマザーボード、ASRock「NUC-8365U」 - エルミタージュ秋葉原
ASRock Industrial > NUC-8265U
製品の開発コード名 Amber Lake Y
デル、Amber Lake搭載の「XPS 13 2-in-1」を国内投入 - PC Watch
Amber Lake-Y搭載の7型2in1「OneMix 2S」 - PC Watch
Core m3-8100Y/256GB SSD搭載になった「GPD WIN 2」が発売 ~基板刷新で放熱性、オーディオ音質が向上 - PC Watch

Comet Lake

Intelが6コア12スレッドのモバイルPC向け第10世代Coreプロセッサ「Comet Lake」を発表 - GIGAZINE
ASCII.jp:Comet Lakeは事実上Coffee Lake Refresh インテル CPUロードマップ (1/4)|ロードマップでわかる!当世プロセッサー事情
Intel、"2種類目"のモバイル向け第10世代Coreプロセッサを発表 - PC Watch
Intel® Core™ i5-10210U Processor (6M Cache, up to 4.10 GHz) 製品仕様
デル、13.3型プレミアムノート「XPS 13」の第10世代Coreモデル - PC Watch
日本エイサー、Comet Lake搭載の15.6型ノートPC - PC Watch
A315-54-F58U/K | acer
Intel® 400 Series Chipset Family On-Package Platform Controller Hub. Datasheet, Volume 1 of 2
中小企業にもSOHOにもうれしい超絶コスパノートPC「ThinkBook 14」を徹底分析 (1/2) - ITmedia PC USER
インテル® Core™ i3-10110U プロセッサー (4M キャッシュ、最大 4.10 GHz) 製品仕様
最新Intel NUC「Frost Canyon」のCore i3搭載モデルが発売、税込38,500円 - AKIBA PC Hotline!

Lakefield

Atom

Intel Celeron (2010年) - Wikipedia
MinnowBoard.org
Intel Celeron J1900 - FH8065301615009
Intel Celeron J3160 - FH8066501715935
Intel Celeron J3455 - FH8066802986102
Apollo Lakeが長期稼働で信号劣化し品質基準を満たさず。ステッピング変更へ - PC Watch
Intel Pentium J5005 - FH8068003067415
Intel Celeron J4105 - FH8068003067403
ASRock > J4105-ITX
製品の仕様情報 - Intel® Celeron® J4005 Processor (4M Cache, up to 2.70 GHz)
Intel Celeron J4005 - FH8068003067416
インテル® ネクスト・ユニット・オブ・コンピューティング・キット NUC7CJYH 製品仕様
PRIME J4005I-C | マザーボード | ASUS 日本
ファンレスGemini Lake世代SoC intel Celeron J4005搭載Mini-ITXマザーボードがASUSから販売開始 | Ark Tech and Market News Vol.3002134
Intel、次世代省電力コア「Tremont」でシングルスレッド性能を改善 ~マイクロアーキテクチャを公開 - PC Watch
2019年9月18日 Linux 5.3がリリース,「AMD Navi」「Intel Speed Select」のサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
10nmプロセスがようやく。 インテルの2021年までのCPUロードマップがリーク
Intel Atom® Processor based on Tremont Microarchitecture Instruction Throughput and Latency - intel-atom-tremont-microarchitecture-throughput-and-latency.pdf
ASCII.jp:Ice Lake-SPは2021年第1四半期に遅延、Elkhart Lakeの機能追加に仰天 インテル CPUロードマップ (3/3)

【イベントレポート】Intel、次世代10nm CPUと22nm Atomを積層した混載CPU「Lakefield」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelが3D積層のヘテロジニアスマルチコアCPU「Lakefield」の技術を発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】2020年代のIntel CPUのカギとなる新2.5D/3D積層技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】チップレットレースで静かに突き進むIntelのパッケージ技術 - PC Watch
Samsung、異種混在CPU“Lakefield”搭載のモバイルノート「Galaxy Book S」 - PC Watch
【笠原一輝のユビキタス情報局】CoreとAtomを両搭載するIntelの新CPU「Lakefield」 - PC Watch
Products formerly Lakefield
InstLatX64さんはTwitterを使っています 「5-Core #Intel Core i5-L16G7 (#Lakefield) 806A1 CPUID dump added - Supported: SSE4.2, GFNI, CLWB, HYBRID - Unsupported: MOVDIR*, WAITPKG, CLDEMOTE, AVX, FMA, BMI, HTT, LZCNT, ADX, X2APIC, PAGE1GB, X2APIC, MPX, SGX https://t.co/f2lANECbdu https://t.co/0Lvti67aSq」 / Twitter

Ice Lake

Ice Lake (client) - Microarchitectures - Intel - WikiChip
Sunny Cove - Microarchitectures - Intel - WikiChip
製品の開発コード名 Ice Lake
価格.com - CPU世代:第10世代 Core iシリーズのノートパソコン 人気売れ筋ランキング
herumiさんのツイート: "Cascade Lake-AP https://t.co/MdOLsFwmDv >プログラマーはMKL-DNNの最新版を利用することで、VNNIに自分のソフトウェアを対応させることができる。 Xbyakも1年以上前からVNNIに対応してます。というかMKL-DNNはXbyak経由でvpdpbusdを使ってるともいう。 https://t.co/x2N8zFJOE9"
mkl-dnn/jit_avx512_core_gemm_s8u8s32_kern.cpp at master · intel/mkl-dnn
Intel、次世代CPUアーキテクチャ「Sunny Cove」の概要を明らかに ~Willow Cove、Golden Coveと進化予定、Atomのロードマップも更新 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの次世代CPUマイクロアーキテクチャ「Sunny Cove」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの10nm世代CPUコア「Sunny Cove」のカギとなるAVX-512 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelが10nmプロセスの「Ice Lake」を正式発表 - PC Watch
【笠原一輝のユビキタス情報局】Intelが新CPUを製品コードネームではなくマイクロアーキテクチャ名で説明したその背景 - PC Watch
Intel、10nmの第10世代Coreを出荷開始。プロセッサー・ナンバー変更 - PC Watch
【笠原一輝のユビキタス情報局】Intel、第10世代Core発表。10nmプロセスで、L1が1.5倍、L2は倍増に - PC Watch
【イベントレポート】次世代ノートPCでは1秒復帰/薄型狭額縁/AI機能/Core i5以上が標準に ~Intelのモダン化規格「Project Athena 1.0」を公表 - PC Watch
「Project Athena」でユーザーの声を汲み上げたモバイルPCを提供するIntel - PC Watch
【笠原一輝のユビキタス情報局】第10世代Coreの複雑怪奇なプロセッサナンバーを理解する - PC Watch
インテル® Adaptix™ テクノロジーが実現する自動チューニング
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
10th Gen Intel® Core™ Processor Families Datasheet, Vol. 1
10th Gen Intel® Core™ Processor Families Datasheet, Vol. 2
IntelがIce Lake世代のCPUに施した「目立たないパワーアップ」とは? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ネタ自体は面白いけど、GIGAZINEさん自身は bit と byte をあちこち混同して説明してるな。 ---- 「32bitを1単位として、「ymm1」レジスタの値をメモリに書き込んで」 「256bit分の領域を値で埋めることができたら…次のループに備えています。… add rax, 256」 https://t.co/6Zfi4RC5pl」 / Twitter
IntelのIce Lake世代CPUは「命令の種類による最大クロック制限」が緩和されている - GIGAZINE

Tiger Lake

Willow Cove - Microarchitectures - Intel - WikiChip
Intel、新GPU「Xe」内蔵の「Tiger Lake」プロセッサを2020年投入 - PC Watch
【イベントレポート】Intel、10nm+のTiger LakeとXeアーキテクチャの単体GPU「DG1」を実機デモ - PC Watch
Intel次期CPU“Tiger Lake”にアーキテクチャレベルでセキュリティ機能追加 - PC Watch
Intel、次世代モバイルプロセッサ「Tiger Lake」の詳細を明らかに ~L2/L3が大幅増加、96EUのXe-LPを内蔵、LPDDR5やPCIe Gen4などに対応 - PC Watch
Intel、第11世代Coreプロセッサーを正式発表。「Intel Evo platform」のブランドも導入 - PC Watch
第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
北森瓦版 - 今後のIntel製品にはどの10nmプロセスが使われるのか?
Intel、“AMDのノートはバッテリ駆動時に性能が大きく低下”と指摘 - PC Watch

【スペック一覧】モバイル向けIntelプロセッサー・ナンバー一覧表 - PC Watch
パソコン/タブレット/スマートフォン ノートパソコン Acer - PC Watch
PCパーツ ベアボーン Intel - AKIBA PC Hotline!
専用ベンチではRyzenが高性能でも、ゲーム性能ではCoreが勝つ理由とは ~Intelがベンチマーク説明会を開催 - PC Watch
北森瓦版 - Intel ノートPC形状のNUC M15 Laptop Kitを発表

レガシー

Pentium Pro

ASUS P/I-XP6NP5 - Specs | BIOS | Drivers | Manual | Download
ASUS 日本
Pentium Pro - Wikipedia
P6マイクロアーキテクチャ - Wikipedia
Socket 8 - Wikipedia
I2O - Wikipedia
I2O - Wikipedia
Dynamic Random Access Memory - Wikipedia

Ivy Bridge

Westmere - Microarchitectures - Intel - WikiChip
Sandy Bridge (client) - Microarchitectures - Intel - WikiChip
Ivy Bridge - Microarchitectures - Intel - WikiChip
「第3世代Coreプロセッサ・ファミリ」はどこが進化したのか - @IT
Intel Core i3-3220 - CM8063701137502 / BX80637I33220 / BXC80637I33220
GA-H77M-D3H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Desktop 3rd Generation Intel® Core™ Processor Family: Spec Update
Mobile 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
Mobile 3rd Generation Intel® Core™ Processor Family, Mobile Intel® Pentium® Processor Family, and Mobile Intel® Celeron® Processor Family - Datasheet, Volume 2
Mobile 3rd Generation Intel® Core™ Processor Family: Spec Update
Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) Family - Datasheet Specification Update

Haswell

Haswell - Microarchitectures - Intel - WikiChip
Intel Core i5-4200U Mobile processor - CL8064701477702
Intel® Core™ i5-4200U Processor (3M Cache, up to 2.60 GHz) 仕様
E1-572-A54D_H1 - E1-572-A54D_201306.pdf
製品サポート
価格.com - Acer Aspire E1 E1-572-A54D スペック・仕様
Intel® Core™ Processors (M/H-Processor Lines) Datasheet, Vol. 1
Mobile 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Mobile 4th Gen Intel® Core™ Processor Family I/O: Datasheet
Mobile 4th Gen Intel® Core™ Processors Spec Update
Desktop 4th Gen Intel® Core™ Processors Datasheet, Vol. 1
Desktop 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Desktop 4th Gen Intel® Core™ Processors Spec Update
Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
Intel® 8 Series/C220 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 8/C220 Series Chipset Platform Controller Hub: Update
14nmの不足の中で、Intelは22nm Pentium G3420に命を吹き込みます - 自作ユーザーが解説するゲーミングPCガイド
Intel Celeron G1840 - CM8064601483439 / CM8064601562181 / BX80646G1840
インテル® Celeron® プロセッサー G1840 (2M キャッシュ、2.80 GHz) 製品仕様
価格.com - 東芝 dynabook Satellite R35 R35/M PR35MGAD423AD71 価格比較
Intel Core i3-4005U Mobile processor - CL8064701478404

Broadwell

Broadwell - Microarchitectures - Intel - WikiChip
H97-PRO | マザーボード | ASUS 日本
Intel Core i5-5675C - CM8065802483201 / BX80658I55675C
製品の仕様情報 - Intel® Core™ i5-5675C Processor (4M Cache, up to 3.60 GHz)
5th Generation Intel® Core™ Processor Family Datasheet Vol. 1
5th Generation Intel® Core™ Processor Family Datasheet Volume 2
Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 1
Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 2
Desktop/Mobile 5th Gen Intel® Core™ Processor Family Spec Update
Intel® 9 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 9 Series Chipset Platform Controller Hub Spec Update
MSI、Intel 9シリーズマザーのBIOS更新でNVM Expressに対応 - PC Watch

Intel、Core 2 Duoなど旧CPUの「Spectre」対策を中止 - PC Watch
1502494_PC_AT_Technical_Reference_Mar84.pdf

GPU

その他

Intel Graphics - ArchWiki
drivers/gpu/msd-intel-gen - Git at Google
Makoto Kato ︎︎さんのツイート: "先週聞いた面白バグでDXGI_USAGE_SHADER_INPUTを使うかどうかでIntel GPUが激速くなるって話があったんだけど、これのRoot cause知りたい https://t.co/VgdEMJsdZA"
1528865 - Blitting picture cache tiles seems slower on Windows/ANGLE for the same hardware.
グラフィックボード・ビデオカードのビデオBIOSとGOPドライバについて - DXR165の備忘録
Intel Processor Graphics 調査メモ - DXR165の備忘録
実機でIntel Processor Graphicsメモリ検証 - DXR165の備忘録
Windows 10プレビューに“外部GPUの安全な取り外し”機能追加 - PC Watch
Windows 10プレビュー版、iGPU/dGPUを任意に切り替え可能に - PC Watch
【イベントレポート】Intel、ノートPC向けディスプレイの消費電力を削減する新技術 - PC Watch
CURD: A Dynamic CUDA Race Detector
FadisさんはTwitterを使っています 「初期のPC向けGPUは座標変換をCPUに任せていたけど、それだと座標変換で詰まるって事で座標変換もGPUで行うようになった。その後GPUがプログラマブルになると頂点計算する演算器とピクセル計算する演算器をパイプラインを止めない割合で積むのが難しくなり、両方を共通のプロセッサで行うGPUが登場した」 / Twitter
FadisさんはTwitterを使っています 「一方SGIのワークステーションは、浮動小数点数の計算が超速いDSP積んだからそこで全部なんとかしろ、というハードウェアだったので、PCのGPUは試行錯誤の末にSGIと同じ形にたどり着いた感がある」 / Twitter
Intel GPUドライバ、PCメーカー版と相互入れ替え可能に - PC Watch
Intel、内蔵GPUによるウイルスチェック機能を実装。チップ消費電力を半減 - PC Watch
統合型GPUでメモリ内のマルウェアをスキャン。Intelがセキュリティに関する新技術や取り組みを発表 - 4Gamer.net
IntelがマルウェアスキャンにGPUの使用を開始

Driver

グラフィックドライバーを更新してハードウェアアクセラレーション機能と WebGL を使用する | Firefox ヘルプ
インテル® ドライバー & サポート・アシスタント
AMD Radeonの公式ソフトウェアおよびドライバー
NVIDIAドライバダウンロード
ドット絵を引き伸ばしてもボヤけない機能、Ice Lakeの内蔵GPUにも実装 - PC Watch

Intel

Hardware Specification - PRMs | 01.org
VAAPI | 01.org
Hardware Accelerated H.264 Video Encoding using VAAPI on the Intel® Atom™ Processor E6xx Series
インテル® プロセッサー・グラフィックス | iSUS
Intel® Processor Graphics | Intel® Software
インテル® グラフィックス・コントローラーの識別
Identify Your Intel® Graphics Controller
Quick Reference Guide for Intel® Core™ Processor Graphics | Intel® Developer Zone
Using hardware video decode on Mobile Internet Devices | Intel® Developer Zone
01org/intel-hybrid-driver

レガシー

Clarkdale

【多和田新也のニューアイテム診断室】CPU+GPUを統合したClarkdaleこと「Core i5-661」 - PC Watch
【後藤弘茂のWeekly海外ニュース】BecktonからClarkdaleまでの実態が明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】IntelがMoorestownとClarkdaleの新情報を公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】Westmere系CPUのラッシュとなるIntelの2010年ロードマップ - PC Watch

Sandy Bridge

Intel Fanboy Blog: いまさらSandy Bridge 2: RWT Graphics編
Intel Fanboy Blog: Agner氏の最適化manualが更新された
Intel Fanboy Blog: いまさらSandy Bridge 1: RWT編
Intel Fanboy Blog: Sandy Bridgeの最適化マニュアル
Intel Fanboy Blog: 駄文: uop長とuop cache
Intel Fanboy Blog: 単一uopで128b/256bのLoadを実現するSandy Bridge
【後藤弘茂のWeekly海外ニュース】今どきのGPUコアへと生まれ変わるSandy Bridge - PC Watch

Ivy Bridge

【後藤弘茂のWeekly海外ニュース】Ivy Bridgeの強化ポイントはGPUアーキテクチャの改革 - PC Watch

Haswell

【後藤弘茂のWeekly海外ニュース】HaswellのGPUコア「Iris」はなぜ強力なのか - PC Watch
【後藤弘茂のWeekly海外ニュース】次世代CPU「Haswell」の2倍強力なGPUコア - PC Watch

Broadwell

【後藤弘茂のWeekly海外ニュース】IDFでIntelが14nmプロセス世代の「Broadwell」を公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelがデスクトップ/eDRAM版を含めた「Broadwell」ファミリを説明 - PC Watch

Skylake

COOL Chips XIX - コンピューティングの新たなフロンティア (1) SkylakeのGPUが示したIntelの新たな方向性 | マイナビニュース
COOL Chips XIX - コンピューティングの新たなフロンティア (2) SkylakeのGPUの構造 | マイナビニュース
歴代Intelグラフィックの劇的進化が第6世代Intel Coreプロセッサ「Skylake」のGPU詳細から浮き彫りに - GIGAZINE
【後藤弘茂のWeekly海外ニュース】Intelがチラ見せする「Skylake」世代のCPUの姿 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの次世代マイクロアーキテクチャ「Skylake」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Skylakeは14nmプロセスに合わせたマイクロアーキテクチャか - PC Watch
【後藤弘茂のWeekly海外ニュース】Skylakeアーキテクチャの謎 その2 ~5命令デコーダと6命令uOPキャッシュ - PC Watch
【後藤弘茂のWeekly海外ニュース】実行モデルを変更したSkylakeのGPUコア ~より汎用的なGPUコンピューティングに向いた設計へ - PC Watch
【後藤弘茂のWeekly海外ニュース】GPUコンピューティング機能を強化したSkylakeのGPU ~タブレットの応答性が向上 - PC Watch

Kaby Lake

Intel、Kaby Lakeこと第7世代Coreプロセッサを正式発表 ~Skylakeからビデオエンジンが強化 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの「Kaby Lake」は“+”プロセス世代初のCPU - PC Watch

Ice Lake

【イベントレポート】Intel製Gen11 GPUは、ユニット3割増で1080pゲームも可能に。Adaptive-Syncにも初対応 - PC Watch
Intelの次期内蔵GPUは1TFLOPSの性能で3Dゲームにも対応 - PC Watch
西川善司の3DGE:第10世代Coreプロセッサに統合されたGPUの正体。性能はRyzen 7 3700Uの内蔵Vegaとほぼ同等で,Variable Rate Shadingにも対応 - 4Gamer.net

Xe GPU

Intel、2020年投入予定の“ディスクリートGPU”紹介動画を公開 - PC Watch
【やじうまPC Watch】Intel、2020年に「i740」以来の“単体GPU”投入を予告 - PC Watch
【後藤弘茂のWeekly海外ニュース】IntelがディスクリートGPUのプロトタイプを発表 - PC Watch
Intel、XeアーキテクチャのHPC向け7nm GPU「Ponte Vecchio」 - PC Watch
【イベントレポート】Intel、同社初の単体GPU「DG1」搭載ビデオカードを初披露。開発者向けボードは第1四半期中に出荷 - PC Watch
北森瓦版 - “Rocket Lake-S”のiGPUのExectuion Unit数は32?
【やじうまPC Watch】Tiger Lake内蔵のXe GPUで「バトルフィールドV」がプレイ可能 - PC Watch
Intel、ゲーミング向けXeとなるXe-HPGの存在を明らかに ~Xe-HPGは外部のファウンダリで製造され、2021年に市場投入 - PC Watch
【PR】Architecture Dayに見た、Intelの底力と変貌【新GPU「Xe」編】 ~GPUでもトップ性能を狙うIntelの秘技とは- PC Watch
Intel、22年ぶりのディスクリートGPU「Iris Xe MAX」を正式発表 - PC Watch
Intelが22年ぶりとなるディスクリートGPU「Iris Xe MAX」を正式に発表 - GIGAZINE
Intelの次世代GPU「Xeグラフィックス」についてIntelのグラフィックス部門責任者が語る - GIGAZINE
薄型ノートでゲーミングを可能にするIntel Xe GPUまとめ 〜ゲーム認証プログラムが日本国内でも開始 - PC Watch

Wikipedia

Intel HD Graphics - Wikipedia
Intel HD and Iris Graphics - Wikipedia
Intel GMA - Wikipedia
Intel Extreme Graphics - Wikipedia
Intel 845 - Wikipedia
Intel 830 - Wikipedia
Intel 815 - Wikipedia
Intel 810 - Wikipedia
Intel 740 - Wikipedia
Intel740 - Wikipedia
Accelerated Graphics Port - Wikipedia
実行ユニット - Wikipedia
High-bandwidth Digital Content Protection - Wikipedia

MIMD/SIMT

Hideyuki Tanakaさんのツイート: "てか僕はいまだにMIMDでなんでNVIDIAと同じぐらいの面積当たり演算性能出せてるのかがいまだに謎(´・_・`)いやまあ若干低いけど、それがそこまでのコストになんないならなんでNVIDIAがSIMTにこだわる必要があったんだろうとか。"
青子守歌さんのツイート: "@tanakh GPUだから・・・"
Hideyuki Tanakaさんのツイート: "@aokomoriuta そりゃまあそうですね…"
Hideyuki Tanakaさんのツイート: "結局クソでかいレジスタファイルは用意しないといけないし、面積インパクトとして独立したIPもってデコードして云々はそんなにでかくもなかったというのがアレなのかなあ。"
Jun Makinoさんのツイート: "フルデコードの倍精度浮動小数点演算器1つに比べてプロセッサコアは「小さい」のでMIMD にすることのシリコン面積的なオーバーヘッドはせいぜい 30%(数字は適当) という議論はまさに2014年3月にTさんとした。"

AMD

TAGE

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「2レベル適応型分岐予測で知識が止まっていて、TAGE知らなかった。 見た感じ、2レベル適応型をベースに、履歴ビット長を級数別で用意みたいな雰囲気…?なぜオカルト派的な話が出るのか不思議。 https://t.co/hqKVDOoXjX https://t.co/2l4pAU6FJa」 / Twitter
【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
R. ShioyaさんはTwitterを使っています: 「「原理的には相関がある分岐がロジカルに見つかるはず」なデジタル派と「分岐予測ってのは,とどのつまり流れなわけよ流れ」とか言ってるオカルト派みたいに分かれて話してた https://t.co/vgXW8DNZqx」 / Twitter
hrk先生さんはTwitterを使っています: 「@r_shioya TAGEは巧みな方法ですが、動作内容を理解してない人が多すぎ。オカルトと思っているのじゃないかな?分岐予測論文で比較対象として実装して提案手法の優位性をしめしている論文の少なくない割合の論文では実装が間違っている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔々「2レベル適応型分岐予測」を知った時に、もう十分賢いから改善余地無さそうと思っていたけど、最後の数%ミスで数10%のパフォーマンス影響とは…」 / Twitter
R. ShioyaさんはTwitterを使っています: 「TAGE 自体に興味ある方は,BATAGE という改良版のこの論文が過去の予測器の経緯とかも含めてコンパクトにまとまってると思いますので読んでみてはと. https://t.co/ovCGPq4jkk https://t.co/WVYvMPQIwb」 / Twitter
An Alternative TAGE-like Conditional Branch Predictor
R. ShioyaさんはTwitterを使っています: 「@shirouzu オカルトについては別に書いた通りなんですが,今日日だと「1サイクル8命令フェッチ × 予測ミス判明まで最短15サイクル=120命令取り消し」みたいのが,2レベル適応型だと1000命令あたり10回ぐらいはおきるので,実質半分以上無駄に実行してるみたいになって,これでは全然精度たりないみたいな感じです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya ご説明ありがとうございます。まさにそこが判らなかった点でした。 (パイプライン10数段のペナルティ=10数命令破棄だけのはずでは、と) なるほど、そういうことなのですね。とても興味深いです。」 / Twitter
Branch Prediction and the Performance of Interpreters - Don't Trust Folklore

PC Watch

Zen

【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Zen」アーキテクチャの概要を発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代コア「Zen」などの概要が明らかに ~「Hot Chips 28」セッションにて、IBM製CPU「Power9」の概要も - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPU「ZEN」の整数ユニットはBulldozer系と全く異なる - PC Watch
【後藤弘茂のWeekly海外ニュース】相対的に大人しい設計のAMD次世代CPU「ZEN」の浮動小数点/SIMDユニット - PC Watch
【後藤弘茂のWeekly海外ニュース】ISSCCで明らかにされたAMD Zen CPUコアの実装 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが新CPU「Ryzen 7」を発売。続けて「Ryzen 5」と「Ryzen 3」も投入へ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD「Ryzen 7」の半導体チップの姿 - PC Watch

Zen 2

【後藤弘茂のWeekly海外ニュース】AMDがチップレットアーキテクチャのクライアント版Zen 2を投入へ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが16コアRyzen 9を含むZen 2の概要とアーキテクチャを発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2の高い性能効率を支えるフロントエンドアーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2は実行パイプライン拡張で浮動小数点性能が2倍に - PC Watch
【後藤弘茂のWeekly海外ニュース】処理能力が2倍に拡張されたAMD Zen 2のAVXユニット - PC Watch
【後藤弘茂のWeekly海外ニュース】ZEN 2ベースの64コアCPU「Rome」はなぜCPUとI/Oを分離したのか - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの7nmプロセス「ZEN 2」CPUコアのマイクロアーキテクチャ拡張 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD、7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD、“Renoir”ことZen 2ベースAPU「Ryzen Mobile 4000シリーズ」の概要を明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2 CPUコアの物理的な姿が明らかに - PC Watch

Zen 3

【後藤弘茂のWeekly海外ニュース】AMD Ryzenの「Zen 3」と「Zen 4」アーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】7nmプロセスに最適化したAMDのRyzen 4000 - PC Watch
【後藤弘茂のWeekly海外ニュース】7nmで作られた第3世代Ryzenのトランジスタ密度が低い理由 - PC Watch

【後藤弘茂のWeekly海外ニュース】AMDやIBM、Armが「Hot Chips 31」でCPUアーキテクチャを公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが目指すマルチダイ統合最初の一歩“ZENのMCMアプローチ” - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDのマルチダイ戦略の先駆けとなるZeppelinアーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDがISSCCでZENベースSoC「Zeppelin」の詳細を明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDのチップ設計手法を変えたInfinity Fabricのコントロールファブリック - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの2017年以降の全チップの土台となる「Infinity Fabric」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが12nmプロセスの第2世代Ryzenファミリを正式発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが第2世代RyzenやAPU版Ryzen、モバイル版Vegaなどを一挙発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】ZEN+Vegaとなった「Ryzen Mobile」ファミリの詳細 - PC Watch
第3世代Ryzen向けの新電源プラン、アイドル/低負荷時の問題が解消 - PC Watch

Twitter

AGESA

suzakiさんはTwitterを使っています 「メモ。AMDのUEFI以前にPSP(Platform Security Processor) とAGESA(AMD Generic Encapsulated Software Architecture )が行っていることについての記事。 AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? https://t.co/4bUtwxGeXR」 / Twitter
AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? | igor'sLAB
suzakiさんはTwitterを使っています 「AMDのAGESA(AMD Generic Encapsulated Software Architecture )インターフェース仕様 AMD Generic Encapsulated Software Architecture (AGESA™) Interface Specification https://t.co/cxmRjqmYZ9」 / Twitter
AMD Generic Encapsulated Software Architecture (AGESA™)Interface Specificationfor Arch2008 - 44065_Arch2008.pdf

OpenBMC

suzakiさんはTwitterを使っています 「メモ。AMDで進むオープンソースのファームウェア。まず、OpenBMCから ”AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC” https://t.co/dpY5gqjWv2 Open-Source Firmware Conference (OSFC 2020)での発表で水ども公開さ入れている。 https://t.co/2QDUUsdDJX」 / Twitter
AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC - Phoronix
AMD's Journey towards Open Source OpenBMC firmware :: Open Source Firmware Conference 2020 :: pretalx

Fumihiro MatsuiさんはTwitterを使っています: 「そういえば某社CPUのRDRAND命令の起動後エントロピー少ない場合の挙動あれじゃね?の件どうなったんだろうっていまググったら既にパッチ(マイクロコードアプデ?)で対応されたみたいだった」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@MikeHommey あえて空冷にしました。 https://t.co/LLDs9ArmPV 見た目よりも大きいので、PCIeスロットがソケットに普通より近いモデルではグラフィックカードと干渉します。また、高さもあるのでケースも選びます。私はLEDを設定するためのUSBケーブルが、グラフィックカードと干渉して付けられませんでした。」 / Twitter
Cooler Master: Wraith Ripper
うーさんはTwitterを使っています: 「もしやと思ってIA32_STAR[48:63]に設定する値(アプリ用のスタックセグメントセレクタ)に3を足してみたら(RPL=3)GPが出なくなった。多分AMDのCPUのバグだこれ。」 / Twitter
うーさんはTwitterを使っています: 「いや,バグじゃない。仕様通りだ。IntelのCPUで例外にならずAMDのCPUで例外になるというのが仕様通り。やられた。」 / Twitter
FadisさんはTwitterを使っています: 「AMDの少し古いCPUでLinuxカーネルから得るCPU情報を「乱数生成器なし」にする提案がなされている。対象のCPUは乱数生成器を持つが、このCPU向けの一部のBIOSがサスペンドから復帰する際に乱数生成器を正しく初期化せず、復帰後予測可能な値が出てくる問題が指摘されていた https://t.co/CmBOGEFq84」 / Twitter
AMD Bulldozer/Jaguar CPUs Will No Longer Advertise RdRand Support Under Linux - Phoronix
Takuto NaitoさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
Attacking the Golden Ring on AMD Mini-PC - danny odler - Medium
Kota Mizushima (on a diet)さんはTwitterを使っています 「「安定性はIntel」って言葉を(自作かじってるくらいの人が言ってるのを)未だにちょくちょく見かけるけど、どういう意味なのだろう?Intel 系にしかない命令セット使ったなら、そりゃIntelでしか動かないと思うけど、安定性とは如何に……」 / Twitter
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu クリエーター系のツール群をA社が出してますが、3世代目になったA社のR CPUでも若干不安定という話もあるので、ハードのみならずソフトウェアの互換性でもその言葉に意味はあるかも。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@keisuke_n 若干不安定て https://t.co/7E7es9Ta4q 辺りでしょうか?ただ、これくらいしか、落ちる系の話見当たらないんですよね。「安定」って何かを考えた時に、デバイスドライバはまあ、M/Bとかも絡むので、ともかくアプリケーションレベルだと、安定しなかったらCPUの不具合だと思うのです……」 / Twitter
AMD・Ryzenに対してAdobeのソフトウェアは最適化されておらず相性が悪いというのは本当か?
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu プレミア(映像編集)あたりで特によく落ちるということなのでSIMD関連(SSE/AVX)が一番の問題だったのかと思います。3000番台になってから特にSIMD関連のチューニングされたらしいとのことです。 ただ業務だと敏感になるところなのでIntelにしておきたいという本音はあるかと思います」 / Twitter
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu 追記:3000番台になって落ちにくくなった。 CPUの挙動は結構バラバラ(特にタイミング)なのでたぶんA社がかなりクリティカルなアセンブリなコードを書いていてそれで意図しない動作になってしまっているのかと思います。まぁ実際はApple Siliconでは動いているようですけど(^^;。」 / Twitter
InstLatX64さんはTwitterを使っています 「My #Zen3 expectations -Documented non-Zen2 feats:#VAES,#VPCLMUL, PKU, PCIDE -Dual int store -300+ ROB -Better L1,L2 latency to compensate bigger L3 -4x256b, more symmetrical FPU (2x256b (v)shift, store, perm, div) -fewer ucoded insts -0 crosslane penalties My Zen2 complaint list https://t.co/j78IT9NdQx」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 1: Application Programming" with shadow stack support https://t.co/5MgdnLZ0gg https://t.co/uZpXkdmLEH」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.36 with shadow stack support https://t.co/gzSS39wm69 https://t.co/oKqqTdz0wJ」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions" 24594.pdf to 3.31 with new features for #Zen3 https://t.co/tQvRMvLG86 https://t.co/f92iS17RQ2」 / Twitter

Developer Guides, Manuals & ISA Documents - AMD
GPUOpen - GPUOpen
Welcome to ROCm Platform — ROCm Documentation latest documentation
ASRock > FM2A68M-HD+
AMD A6-Series A6-7400K - AD740KYBI23JA / AD740KYBJABOX
本の虫: AMDのZen 2でRDRANDが-1を返すので最近のGNU/Linuxがブートできない問題
「Ryzen 9 3900X」「Ryzen 7 3700X」レビュー。期待のZen 2は競合に迫るゲーム性能を有し,マルチコア性能では圧倒する - 4Gamer.net
AMD64 Architecture Programmer’s Manual, Volume 2: System Programming
AMDプロセッサーにも脆弱性みつかる。Ryzen 7 / Threadripperまで2011年以降全CPU - Engadget 日本版
自宅オンプレ仮想基盤サーバをRyzenに変えようとしたら炎上案件と化した - Qiita
「AMDのRadeon用ドライバー」はLinuxカーネル全体の1割を占めていることが判明 - GIGAZINE

Apple

Apple

ソフトウェア

各OSのリリース日とサポート終了日を表にまとめてみた - Qiita
iOS 12 のアップデートについて - Apple サポート
iCloud
iTunes で iPhone、iPad、iPod が認識されない場合 - Apple サポート
iTunes の USB 関連の警告を解決する - Apple サポート
Use zsh as the default shell on your Mac - Apple Support
Apple ID - Apple サポート
Apple IDの復旧 - Apple (JP)
Apple ID の 2 ファクタ認証 - Apple サポート
セキュリティと Apple ID - Apple サポート
Apple ID のデバイスリストを調べて Apple ID でサインインしているデバイスを確認する - Apple サポート
定期購読内容を表示・変更・解約する - Apple サポート
プライバシー - Apple(日本)
Apple セキュリティアップデート - Apple サポート
Apple security updates - Apple Support
Apple Pay に対応しているアジア太平洋地域の銀行とカード発行会社 - Apple サポート
WebKit Downloads | WebKit
Getting the Code | WebKit
WebKit/webkit: Unofficial mirror of the WebKit SVN repository
Bugzilla Main Page
iTunes Store で購入したコンテンツの再生時に iTunes からコンピュータの認証を求められる場合 - Apple サポート
iTunes Store で -45054 エラーが表示される場合 - Apple サポート
iTunes でコンピュータの認証を解除する - Apple サポート
アップル、157ページに及ぶ詳細なセキュリティガイドを公開 - ZDNet Japan
Apple Platform Security

技術仕様

iPhone 6 Plus - 技術仕様
iOS UPnP/SSDP Multicast over USB Tethering | Apple Developer Forums
usb endosope | Apple Developer Forums
Tethering over USB protocols? | Official Apple Support Communities

修理

保証状況と修理サービスオプションについて - Apple サポート
製品の保証状況とサービス期間を確認する - Apple サポート
iPhone、iPad、iPod touch を修理に出す準備をする - Apple サポート
「iPhone を探す」のアクティベーションロックを無効にする - Apple サポート
修理 - Apple サポート 公式サイト

サポート

Welcome - Apple Support
ビンテージ製品とオブソリート製品 - Apple サポート
ARM ベースおよび Intel CPU の投機的実行の脆弱性について - Apple サポート
iPhone、iPad、iPod touch でメッセージを送受信できない場合 - Apple サポート

Apple(日本)
Apple ID を管理
apple id 削除 サインアウトできない - Google 検索
iPhone、iPad、iPod touch を売却、譲渡、下取りに出す前にやっておくべきこと - Apple サポート
Apple - Support - System Status
MFi Program - Apple Developer
バッテリー - サービスとリサイクル - Apple(日本)
電源&ケーブル - iPhoneアクセサリ - Apple(日本)
Lightning - USBケーブル(1m) - Apple(日本)
環境 - Apple(日本)
iOS 14 や iPadOS に対応しているデバイス - Apple サポート
[HD] Steve Jobs - iPhone Introduction in 2007 (Complete) - YouTube
Appleプラットフォームのセキュリティ - apple-platform-security-guide-j.pdf
Apple M1 Chip - Apple
Apple Silicon | Apple Developer Documentation

ミニアプリ

Eiji Kitamura / えーじさんはTwitterを使っています 「iOSのApp ClipsもOSレベルのミニアプリという見方をして比較すると面白い。」 / Twitter
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「iOS14の新機能App Clipsって地味に見えるもののミニアプリ時代の到来を予感させるな、と。日本でいち早く対応した東京・麻布のTAILORED CAFEで実際に「ダウンロード不要のネイティブアプリ」を体験した様子を、海外のミニアプリ動向と合わせて紹介する記事を書きました↓ ☕ https://t.co/uiXC9K7XUu」 / Twitter
ミニアプリ時代が日本にも到来? 「App Clips」を東京のカフェで使ってみた | Coral Capital
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「@agektmr App Clipsは、すごくInstant Apps的に見えます。でも当初、Instant Appsは決済非対応だったので、だいぶUX的には違う受け止められ方をしている気もします」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「@knsmr インストール不要なアプリという点で結果的に似た立ち位置になりましたが、App Clipsの方が(意図していたかはともかく)ミニアプリに近い扱いですよね。さっきシェアした資料を見る限り、中国のミニアプリはウェブ標準どころか全部バラバラな仕様なので、今後広がっていくと開発者は大変そう…」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「中国のミニアプリの技術仕様まとめ。超絶面白い。 // Learning from Mini Apps https://t.co/yxmkZwYyUA」 / Twitter
Learning from Mini Apps - Google スライド
成瀬さんはTwitterを使っています 「この「中国のミニアプリ」は古代からある”Web Wideget”ってやつだな」 / Twitter
大規模なiOSアプリの画面開発を効率化するために動作確認用ミニアプリを構築する - クックパッド開発者ブログ

GIGAZINE

Appleが「自社製検索エンジン」の開発を急ピッチで進めているという報道 - GIGAZINE
AppleのMac向けセキュリティチップ「T2」に脱獄ツールが対応、Touch Barへの侵入などが可能に - GIGAZINE
AppleのMacシリーズがUSBだけでハッキングされる、セキュリティチップ「T2」の脆弱性を利用 - GIGAZINE
macOS Big Surの「Apple製アプリのファイアウォールすり抜け問題」を回避できるVPNが登場 - GIGAZINE
AppleはiPhoneのバッテリーをロックして非正規プロバイダーが交換できないようにしている - GIGAZINE
「iPhone 11/11 Pro」は非正規のディスプレイ交換サービスを利用すると警告が出る - GIGAZINE
Appleがサードパーティーの修理業者にも正規の部品&修理ツールを供給 - GIGAZINE
iPhone 12 miniのみMagSafe充電器での出力が12Wに制限されることが明らかに - GIGAZINE
Apple端末のセキュリティを担う「Secure Enclave」チップにパッチ修復不可能な脆弱性が見つかる - GIGAZINE
Apple端末のセキュリティチップ「Secure Enclave」はどのようにして突破されてしまったのか? - GIGAZINE
Appleが新しくSafariに追加した「Face IDやTouch IDによるウェブサイト認証機能」はこんな感じで動作する - GIGAZINE
iPhone 8やiPhone Xを脱獄させる新たな手法が発見される、パッチによる修正は不可能 - GIGAZINE
脱獄不要でターミナルからコマンドを実行可能になるiOS向けアプリ「iSH」レビュー - GIGAZINE
脱獄不要の非公式iOSアプリストア「AltStore」が開発されプレビュー版が公開 - GIGAZINE
脱獄不要でiPhoneに非公式アプリをインストールできる「AltStore」レビュー - GIGAZINE
Welcome to AltStore

PC Watch

【後藤弘茂のWeekly海外ニュース】AppleがArmベースのSoCをMacに採用する背景 - PC Watch
【後藤弘茂のWeekly海外ニュース】Appleデバイスの次の心臓となるSoC「Apple A14」 - PC Watch
【後藤弘茂のWeekly海外ニュース】iPhone心臓部AシリーズSoCの変遷から見る半導体の進化 - PC Watch
【後藤弘茂のWeekly海外ニュース】iPhone 11のSoC「A13」はなぜ性能向上幅が小さいのか - PC Watch
【後藤弘茂のWeekly海外ニュース】iPhone 8/XのSoC「A11 Bionic」とプロセス技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】iPhone Xの深層学習コア「Neural Engine」の方向性 - PC Watch
Mac用新CPU「M1」は、5nmプロセスで”世界最速CPUコア”搭載 - PC Watch
Apple、macOS Big Surを公開 - PC Watch

blog

Linux その29 - T2チップを搭載した新Mac MiniとMacBook AirにLinuxはインストールできない? - kledgeb
Apple T2 Securityチップを搭載したMacではLinuxが起動できない? | スラド Linux
ブログ: Appleが検索エンジンをローンチするかも知れない
iOS 14 正式版のリリース日発表で、iOSアプリ界隈がドタバタしてるわけ。 - 文字っぽいの。
【mį】iPhone6PlusのBluetoothは何台まで同時接続出来るの!? | ミヤチャンブログ
20200111
Docker社、Appleシリコン搭載Mac用の「Docker Desktop」を開発中と表明。Rosetta 2による変換では十分に動かない模様 - Publickey
M1 MacモデルはeGPU経由で接続するとディスプレイを認識しますが、ハードウェアアクセラレーションは無効になります。 - 自作ユーザーが解説するゲーミングPCガイド
M1チップ搭載の新型MacはDTMに使えるのか? DAW、プラグイン、オーディオインターフェイスなど動作状況をチェックしてみた | | 藤本健の "DTMステーション"

GitHub

libimobiledevice - A cross-platform software library and tools to communicate with iOS devices natively
libimobiledevice/libplist: A library to handle Apple Property List format in binary or XML
Diego Giagio :: Personal Website - iPhoneEthernetDriver
dgiagio/ipheth: iPhone USB Ethernet Driver
evilpenguin/ARMRef: ARM Assembly Reference Manual for iOS, iPadOS, and macOS.

Qiita

Swift 5.3のコードをObjective-Cから呼び出す方法 - Qiita
Apple M1のサポートする命令など - Qiita

Wikipedia

iOS version history - Wikipedia
History of iTunes - Wikipedia
Safari version history - Wikipedia
iPhone - Wikipedia
iPhone SE (第1世代) - Wikipedia
Apple A9 - Wikipedia
iPhone 7 - Wikipedia
Apple A10 - Wikipedia
Apple motion coprocessors - Wikipedia
Secure Enclave - Wikipedia

Twitter

Tsuzuさんのツイート: "待って、iOS12ってiPhoneはWi-Fiに接続しながらPCはテザリングとかいうやばいことができるようになってるんですか すごいですね(誰得"
Tsuzuさんのツイート: "多分USB/Bluetoothテザリングに限ると思うけど"
Jesse D'AguannoさんはTwitterを使っています 「macOS on Apple Silicon: - W^X - KIP - PAC - PCIe device isolation with per device IOMMU https://t.co/w70zWyowDX」 / Twitter
tnさんはTwitterを使っています 「仕事に使っているMacが修理の旅に出てしまったので、今週はiPadでお仕事チャレンジしています。 開発用マシンにcode-serverを建てて編集、git等のssh鍵が必要な処理はBlinkのssh-agent機能で対応とやるのが今のところ結構良さげです。」 / Twitter
FadisさんはTwitterを使っています 「Vulkan上に実装されたOpenGL ZinkがmacOSへの移植を試みているらしい。AppleはグラフィックランタイムのMetalへの一本化を進めており、macOSのOpenGLは厳しい状況だが、Metal上で動くVulkan MoltenVKを使い、MoltenVKの上でZinkを動かすことでmacOSにOpenGL 4.6をもたらす https://t.co/l99PddUw4f」 / Twitter
Zink Seeing macOS Support For OpenGL Over Vulkan Then MoltenVK On Top Of Metal - Phoronix
7594591200220899443さんはTwitterを使っています 「- Apple: すべてのユーザーの利用動向は追跡される https://t.co/c76UV67Kag - Google: すべてのデバイスは追跡される https://t.co/cCPfVYfNfy」 / Twitter
Your Computer Isn't Yours | Hacker News
Google sued: Idle Android eats mobile data to send telemetry and preload ads | Hacker News
7594591200220899443さんはTwitterを使っています 「だいぶ前にすでに地獄は顕現しているぞ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「こういうのずっと信じる人いるんだろうな https://t.co/rANAm9X1ti 変わっちゃうみたいだけど。(なんか修正忘れっぽいよね) https://t.co/H6dy8TJqzk」 / Twitter
【Mac】macOS Big Sur (macOS 11)の「User_Agent」メモ(「Mac OS X」表記やバージョン番号について)
217364 – [macOS] Bump reported current shipping release UA to 10_15_7

BCNランキング - BCN+R
中古スマホ・タブレット販売の【イオシス】|けっこう安い。
株式会社デジフォース
The Official Bluetooth SIG Member Website
Apple Storeで一括購入したiPhoneになぜかドコモのネットワーク利用制限が () - AKIBA PC Hotline!

USB

その他

FTDI Chip launches USB 3.1 evaluation modules
ラトック、USB Type-C接続のシリアルポート変換ケーブル - PC Watch
定番USBシリアルコンバータのUSB Type-Cバージョン RS-USB60FC [RATOC]
Sony Japan | FeliCa | 個人のお客様 | 製品情報 | RC-S380
USBホスト| Android(TM) 技術情報 | au
対応機種 | サービス・機能 | NTTドコモ
USBで接続してPCをロジック/プロトコルアナライザにできる「ポケアナ」 - PC Watch
NET20DC-USB / Hi-Speed USB 2.0 Host-to-Host Debug Device | 海外ハードウェアの購入なら「ユニポス」
USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
「USBに裏表がある理由」をUSBの開発者が明かす - GIGAZINE
FadisさんはTwitterを使っています: 「USB機器はホストに自分が何mA使うつもりか申告していて、ホストはその情報に基づいて必要な電流を供給できない場合デバイスを拒否できる、というのはもう少し知れ渡ってほしい」 / Twitter
ASCII.jp:ローランド、「未来の電子ピアノ」や新型MIDIキーボード、配信に便利なコントローラーを発表 |CES 2020レポート
次世代MIDI「MIDI 2.0」発表、互換性維持しながら演奏の表現力向上 - AV Watch
MIDI規格が「MIDI 2.0」に進化。双方向通信や繊細な表現が可能に - AV Watch
AMEI <一般社団法人 音楽電子事業協会>
MIDI 2.0規格書
見た目はUSBケーブル、中身はハッキングツールの悪用厳禁ケーブル「O.MG Cable」がLightningに続きUSB Type-Cバージョンなども販売開始 - GIGAZINE

I/F

GC-USB 3.1 BAY (rev. 1.0) | Motherboard - GIGABYTE Global
REX-PCIU3製品仕様[RATOC]
玄人志向 | USB2.0V-P4-PCI:VIA社製 VT6212L搭載 USB2.0 外部x4 内部x1 ※合計4ポートまで同時使用可 インターフェースボード(PCI接続)
玄人志向 | USB3.0R-P2-LPPCI:Renesas社製 μPD720202搭載 USB3.0×2 インターフェースボード(PCI接続)
玄人志向 | USB3.1C-P2-PCIE:ASMedia社製 ASM2142搭載 USB3.1 Type-C x2 インターフェース(PCI-Express x4接続)
USB 3.1 Gen 2対応コントローラは搭載チップにより性能が異なる!? ASMedia ASM1142 / Intel DSL6540 : AKIBAオーバークロックCafe
「1mのケーブル長さ制限を克服」とうたうUSB 3.1カード - AKIBA PC Hotline!
GIGABYTE、世界初のUSB3.2 Gen.2×2拡張カード「GC-USB 3.2 GEN2X2」 - エルミタージュ秋葉原

USB4

Thunderbolt

Thunderbolt

Thunderbolt Technology Community
IDF Session Presentation Template
Intel Presentation Template Overview
Thunderbolt 3 Overview Slides_Web_v3
Thunderbolt3_TechBrief_FINAL.pdf
PowerPoint Presentation

DP Alternate Mode

DisplayPort - Wikipedia
DisplayPort - Wikipedia
Snapdragon 835はDisplayPort Altモードに対応、USB Type-Cからの画面出力が可能 | ガジェット通信
VESA、8K解像度を見据えた映像出力インタフェース規格「DisplayPort 2.0」を発表 (2019年6月27日) - エキサイトニュース
DisplayPort 2.0 Published For 3x Increase In Data Bandwidth Performance - Phoronix
最大帯域幅77.4Gbpsで16KディスプレイやVRをサポートする「DisplayPort 2.0」が発表される - GIGAZINE
16K解像度に対応した新規格「DisplayPort 2.0」が重要な理由 | ギズモード・ジャパン
VESA、ケーブル1本で16K 60Hz/HDRの伝送が可能な「DisplayPort 2.0」 - PC Watch
次世代USB「USB4」ではDisplayPort出力対応が“必須要件” ~DisplayPort 2.0はThunderbolt 3並の速度へ - PC Watch
FadisさんはTwitterを使っています 「USB端子を通してDisplayPortの信号を吐くDisplayPort Alternate Modeの規格がバージョン2.0になったらしい。この変更でUSB4 Type-Cの端子が生えている場合にDisplayPort 2.0相当のレートで信号を吐けるようになり、8Kを超える画面や高解像度のHDRに対応できるようになる https://t.co/cuP50cq9oL」 / Twitter
DisplayPort Alt Mode 2.0 Brings Interoperability With USB4 - Phoronix
USB4互換で16K HDR対応の「DisplayPort Alt Mode 2.0」 - PC Watch
DisplayPortやUSB Type-Cで8K伝送、VESA「HBR3」。製品の早期開発用に認定プログラム - AV Watch

ストレージ

日本サムスン、Thunderbolt 3対応の超高速ポータブルSSD - PC Watch
【レビュー】Thunderbolt 3接続ポータブルSSD「Samsung Portable SSD X5」実機レビュー - PC Watch
デル、世界最速/最小Thunderbolt 3 SSD。最高速度2,800MB/s - PC Watch
パナソニック、Thunderbolt 3対応のポータブルSSD - PC Watch
グリーンハウス、Thunderbolt 3接続の高速SSD - PC Watch
センチュリー、Thunderbolt 3接続の500GB~2TBポータブルSSD - PC Watch
Thunderbolt3 Portable NVMe SSD 512GB [CPNVTB3-512] |秋葉館.com Mac専門店
USB, ストレージ | GH-SSDTB3A | GREEN HOUSE グリーンハウス
Thunderbolt 3接続の高速外付けM.2 SSDケース - PC Watch

Intel

TB-TechBrief-02.indd
Thunderbolt™ Controllers Product Specifications
製品の開発コード名 Alpine Ridge
製品の開発コード名 Titan Ridge
Introducing Thunderbolt 4: Universal Cable Connectivity for Everyone | Intel Newsroom

AMD

AMD XConnect™テクノロジー | AMD
AMD,Thunderbolt 3接続の外付けGPU技術「XConnect」を正式発表 - 4Gamer.net
AMD、外付けGPUとノートPCをThunderbolt 3でつなぐ「AMD XConnect」 | マイナビニュース
AMD、Thunderbolt 3経由でノートPCに外部GPUを接続する技術「XConnect」 ~再起動不要で着脱可 - PC Watch

GIGABYTE

反撃の狼煙を上げるGIGABYTE、「ビデオカード部門とマザーボード部門の統合」で何が変わるのか? - AKIBA PC Hotline!
GC-ALPINE RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
GC-ALPINE RIDGE (rev. 2.0) | マザーボード - GIGABYTE Japan
GC-TITAN RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
GC-TITAN RIDGE (rev.1.0):どてやの戯れ言
GIGABYTE、7万円超のハイエンドIntel Z390搭載マザーボード ~X299マザーやThunderbolt 3増設カードも - PC Watch

PC Watch

【PR】【パソコン実験工房PC Watch出張所 - Supported by パソコン工房】今後要注目のThunderbolt 3にも対応できるDAW向けマシン - PC Watch
【イベントレポート】ASRock、Mini-ITXケースに入る世界初のThunderbolt 3ネイティブビデオカード - PC Watch
【イベントレポート】Intel第10世代Coreは、Thunderbolt 3をオンダイ統合 - PC Watch
Thunderboltに数分でハッキング完了可能な脆弱性。2011年以降のPCが対象 - PC Watch
Intel、USB4準拠の「Thunderbolt 4」を次期CPUに搭載 ~単体のIntel 8000シリーズのコントローラも - PC Watch
【山田祥平のRe:config.sys】ゆくポートくるポート - PC Watch
ベルキン、ACアダプタ不要のThunderbolt 3ドック - PC Watch
OWC、4K/60Hzの2画面出力が可能なThunderbolt 3ドック - PC Watch
OWC、Thunderbolt 3対応NVMe SSDケース「Envoy Express」 - PC Watch

GIGAZINE

Thunderboltポート経由でPCのシステムメモリを直接読み書き可能となる脆弱性「Thunderclap」 - GIGAZINE
数分でPC内のデータにアクセス可能なThunderboltの脆弱性が判明、ソフトウェアによる修正は不可能 - GIGAZINE
IntelがUSB4に準拠したThunderbolt 4の概要を発表、次世代Intel CPUが対応予定 - GIGAZINE

Thunderbolt - Wikipedia
Thunderbolt (interface) - Wikipedia
分かりづらいThunderbolt 3とUSB Type-Cの違いについてまとめた | HANPEN-BLOG
Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
Amazon.co.jp: 【USB-IF 認証済み】Cable Matters Thunderbolt 3ケーブル (20 Gbps) サンダーボルト3ケーブル/ USB-C 3.1 Gen 2 (10 Gbps) ケーブル USB2.0 / 3.0 / 3.1 対応 2m(ブラック): 家電・カメラ
More information on Thunderclap
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第15回 PCIパススルーその1「PCIパススルーとIOMMU」
日記 (2019 年 3 月上旬)
iommu - Google 検索
MSIのZ77A-GD80でThunderboltを試す | 日経 xTECH(クロステック)
Fadisさんのツイート: "Thunderclap: 多くのOSでデバイスがアクセスできるメモリを制限するIOMMUの扱いがMMUほど徹底されておらず、悪意あるデバイスがDMAを使ってメモリ上の触ってはいけないデータを読み書きできるよ、という脆弱性 https://t.co/W1OCHgK14b"
Thunderclap
Fadisさんのツイート: "Thunderclapはハードウェアに物理的なアクセスを要する脆弱性ではあるけど、最近のPCはThunderbolt3とかいうPCI-Express(もちろんDMA付き)が充電端子として生えている為「悪意ある充電スタンドが任意のコードを実行できる」というシナリオが容易に想像できるあたりが問題を深刻にしてるっぽい"
ASCII.jp:その名はTiger Lake、IntelがノートPC向け最新CPUを発表:CES 2020|CES 2020レポート
Kernel DMA Protection for Thunderbolt™ 3 (Windows 10) - Microsoft 365 Security | Microsoft Docs
More information on Thunderbolt™ security research published by Eindhoven University

USB Type-C

PC Watch

【山田祥平のRe:config.sys】転ばぬ先のType-C - PC Watch
【山田祥平のRe:config.sys】Type-Cポリスの憂鬱 - PC Watch
【山田祥平のRe:config.sys】何がなんでもType-C - PC Watch
【笠原一輝のユビキタス情報局】DisplayPort/Thunderbolt/ACアダプタを飲み込んだUSB Type-C ~5年後ノートPCの専用アダプタは消滅する? - PC Watch
【特集】USB Type-Cの挙動を探る(ディスプレイ編) ~Type-C搭載ディスプレイの映像出力&給電機能をチェック - PC Watch
【特集】ケーブル選びに失敗しないための「USB Type-C」基礎知識 - PC Watch
【山田祥平のRe:config.sys】ありがちのType-C、まさかのType-C - PC Watch
Cypress、USB4とPD 3.0対応のUSB Type-Cコントローラをサンプル出荷 - PC Watch

blog

規格的にアウトなUSB Type-C変換アダプタが売られている話 | HANPEN-BLOG
USB-C – イヤホンジャックの変換アダプタは2種類あるので要注意
日本で買えるUSB-IF認証済みUSB Type-Cアクセサリのリスト
USB Type-C プラグがゆるくなったときの対策と直す方法|What to do when USB-C become loose. | フレークの素 | Web制作・システム開発のCreativeFlakeブログ
Thunderbolt 3とUSB Type-Cの関係性について調べた | HANPEN-BLOG
USB-TypeCで、地獄をみた話。 | モテモテテクノロジーブログ
「USB Type-C」問題と安全に使える製品のまとめ―規格の解説やチェック方法など | AndMem
プロフィール
USB 3.0/3.1/3.2の違い—速度・形状・4つの注意点を簡単にまとめたよ!|8vivid

Twitter

finoさんのツイート: "USB Type-Cくんのまとめ、拡散されちゃったんでアレだけど一応書きもらしとかツッコミあったやつ追記したらもっと長くなりました https://t.co/JWOg9xwFAi"
Fadisさんのツイート: "Type-C登場以前から電源周りに関してUSBの規格は無視され続けているが、問題はそこから供給される電力が大きなものになってきて、昔のようにいいかげんなままにしておくと危険なものになってきた事なんだよな"
UTiCd/うちかどさんのツイート: "USB PDのデュアルロール持ってるデバイスは、強制給電-自動選択-強制受電 くらいのスイッチ(もしくは内部設定)を付けておいてくれればって話よね・・・ 特にモバイルバッテリとノートPCを繋いだときにどっち方向に給電されるのか分からないの勘弁して欲しい"
岡田哲哉さんのツイート: "Mac同士をUSB-Cで繋ぐと「給電ガチャ」が楽しめますw(実験済み)… "
Kazuho Okuさんのツイート: "レビュー削除以前の話として、USB-C規格に不適合な製品を「USB-C対応」として販売することに法律上の問題はないのかな / “Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ” https://t.co/ojX1JV4IDH"
Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ
しめじさんのツイート: "Type-C、なんでレセクタプル側の内部に薄い基板付ける構造にしたのか、本当に分からん。折れたら機器の修理、交換だぞ… "
伯爵格雷 ✌️🐸✌️さんのツイート: "・モバイル版Chromeはアドイン出来ないし広告ブロッカー外付けだし何の価値ですか? ・どうせW1チップ搭載機に取り込まれるのだ諦めよ ・TypeCは中のベロが腐る ・高い(わかる)"
なかのん&マジックさんのツイート: "適度に故障からの買い換え需要を狙ってるのでは……microBでもデバイスのコネクタがグラグラしてくるからどっちみちって気もする。"
とみながたけひろさんのツイート: "規格上、ハブ通すとPDやaltモードが使えなくなって色々と不便(PDは使えたかも、自信なし)、というのを理解してもらうコストが高いとかかなあ… "
かごめPはマスタリング講座始めましたさんのツイート: "教えて偉い人! USB Type-cのハブが欲しいなあとぼんやり思っているんですが、市販のハブで「USB Type-CをUSB Type-C複数口に分配するハブ」が無いんです。USB Type-Cを複数口出せるハブが欲しいんだけど、そういうのって無いんです?規格上の問題?"
はんぺんさんのツイート: "PCメーカー各社はマジで ・USB 2.0 / 3.1 Gen.1 / 3.1 Gen.2 のどれなのか ・USB PDで充電できるのか ・何W以上のUSB PDなら充電できるのか ・DisplayPort Alt Modeの有無 ・最大の解像度とフレームレート ・DisplayPort MSTの有無 ぐらいは詳細スペックのどこかに書いといてほしい"

USB Type-Cケーブルにはなぜたくさんの種類があるのか、どうやって見分ければいいのか? - GIGAZINE
「USB-C」が本領発揮できる環境が、ようやく整ってきた|WIRED.jp
100均(ダイソー)で売ってたUSB Type-Cのケーブルやアダプタをたくさん分解してみた:ウェブ情報実験室 - Engadget 日本版

USB 3.2

転送速度を2倍に引き上げた「USB 3.2」が策定 - PC Watch
USBの新仕様「USB 3.2」は対応端末ならマルチレーン動作可能で最大速度はUSB 3.1の2倍に - GIGAZINE
マルチレーンにより2倍の転送速度を実現する「USB 3.2」 | マイナビニュース
USB 3.2の仕様が正式公開 - PC Watch
北森瓦版 - USB 3.2の規格策定が完了―Dual-laneで最高20.0Gbpsに対応可能に
一ノ瀬 いろはさんのツイート: "“「USB 3.2 Gen.1x1」と書けば、USB 3.0と同じシングルレーンの5Gbps転送にしか対応しないのに「USB 3.2」と記載できる” / “「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術…” https://t.co/Et6I5QlmTw"
「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術 (1/3) - ITmedia PC USER
一ノ瀬 いろはさんのツイート: "USB-IF はわざと混乱を起こそうとしているのでは無いか。"
期待がすごい。20Gbps/sの激速なUSB 3.2、年内に対応製品登場へ | ギズモード・ジャパン
20Gbpsの転送速度を誇るUSBの次期規格「USB3.2」は2019年中にPCへの搭載が始まる見通し - GIGAZINE
20Gbpsに対応したUSB 3.2、2019年後半にデスクトップPC向けに登場予定 - Engadget 日本版
ASCII.jp:USB 4の発表で、USB 3.2はどうなった? (1/5)|ロードマップでわかる!当世プロセッサー事情
【イベントレポート】ASMedia、転送速度20Gbpsの「USB 3.2 Gen2x2」コントローラを展示 - PC Watch
【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch

USB Power Delivery

PowerIQ

第692回:PowerIQとは - ケータイ Watch Watch
Anker、急速充電の新技術「PowerIQ 3.0」発表 USB PD互換に - Engadget 日本版
Anker PowerPort Ⅲ Duo レビュー – すまほん!!
USB Type-AとType-Cを両方搭載、最大出力45WでノートPCも充電できるUSB PD充電器 - ケータイ Watch

Quick Charge

【山田祥平のRe:config.sys】QuickChargeがUSB Power Deliveryを包み込む将来 - PC Watch
Qualcomm、従来より低温で35%充電速度が向上した「Quick Charge 3+」 - PC Watch
Qualcomm、「Quick Charge 4+」でさらなる充電速度向上と温度低下を実現 - PC Watch
第812回:Quick Charge 4/Quick Charge 4+とは - ケータイ Watch
Qualcomm、4倍高速で100W超の充電可能な「Quick Charge 5」規格 - PC Watch

PC Watch

Anker、30WのUSB PD給電対応で低価格化した5ポートUSB充電器 - PC Watch
【山田祥平のRe:config.sys】USB PD時代のチャージャー選び - PC Watch
ASUS、USB PDやQC 3.0対応のモバイルバッテリ2種 - PC Watch
TI、200W給電対応のUSB Type-C/PDコントローラ ~USB接続で端末の急速充電から“電動工具”まで対応 - PC Watch
【山田祥平のRe:config.sys】USB Type-C充電統一への道遙か - PC Watch
【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【PC給電編】 ~MacBookとThinkPadで各社のケーブルをチェック - PC Watch
【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【スマホ編】 ~Type-C搭載スマホの充電速度をチェック - PC Watch
日本初のUSB-IF認証取得USB PD対応ACアダプタ - PC Watch
「Type-C=USB PD対応」ではない。高速充電には認証済みType-Cケーブルも必要 ~USB-IF認証取得の充電器「Energear」発表会レポート - PC Watch
【特集】これで失敗しない、USB PD充電器選び(解説編) - PC Watch
【山田祥平のRe:config.sys】世界中の電源プラグをUSB Type-Cに置き換えるサイプレスの野望 - PC Watch
【特集】これで失敗しない、USB PD充電器選び(ノートPC編) ~ThinkPadとMacBook Proで検証 - PC Watch
【特集】【特集】これで失敗しない、USB PD充電器選び(タブレット/スマホ/ゲーム機編) ~iPad ProとPixel 3、Nintendo Switchで検証 - PC Watch
【特集】これで失敗しない、iPhone/iPadを高速充電できるUSB PD充電器選び ~8製品×7アダプタの組み合わせでチェック - PC Watch
Anker、100W給電可能なUSB PD×2搭載の急速充電器 - PC Watch
【山田祥平のRe:config.sys】理想のマルチポートPDチャージャーを考える人間のわがまま - PC Watch
AnkerのUSB充電器で発煙の報告。回収へ - PC Watch
【山田祥平のRe:config.sys】それでもType-C、やっぱりType-C - PC Watch
【特集】ノートPCを充電できるUSB PDモバイルバッテリ、失敗しない選び方はこれだ! ~容量10,000mAh以上/最大出力30W以上の6製品を検証 - PC Watch
【山田祥平のRe:config.sys】Type-C PD、怖いながらもNew Normal - PC Watch
【山田祥平のRe:config.sys】Type-CがさらにややこC - PC Watch
【特集】徹底解明。VAIOが電源オフでもバッテリを使っている真の理由 ~VAIO開発者が語るUSB PD設計の難しさ - PC Watch
Anker、Type-C搭載で直接スマホを充電できる電源タップ。30W USB PD対応 - PC Watch

blog

多機能USB電力メーター AVHzY CT-2を使ってみた
USB Power Delivery Analyzer of MediaLogic
LightningなiPhone・iPadでUSB PD充電に失敗する場合がある
USB PD Revision 3.0のドキュメントがサイレント修正されていたらしい
USB PD 60W対応Anker PowerPort Speed PD 60 暫定レビュー
USB Power Deliveryの規格について調べた | HANPEN-BLOG
Nintendo Switchの純正ACアダプタはUSB PDの規格に準拠していないという話 | HANPEN-BLOG
乱立するスマホ向け急速充電の規格について調べた | HANPEN-BLOG
USB-IF認証済み Anker PowerPort I PD レビュー | HANPEN-BLOG
誰でも出来る? USB Type-Cケーブルや充電器が規格に適合しているか安価に調べる方法 - AndroPlus
Apple純正品の仕様をコピーしているサードパーティUSB PD製品の話

Amazon | USB Power Delivery アナライザ DTW2U3 (PDワットみるC) | メディアロジック (Media Logic, corp.) | USBフィギュア 通販
しっかり分かる“USB パワーデリバリ”入門:ついにやってきたUSB Power Delivery(USB PD)とは (1/3) - EDN Japan
(3)規格が守るUSP PDの安全性 偽造品を見逃さない機器間認証(C-AUTH) | ルネサス エレクトロニクス
USB-IF、USB-C向け認証プログラムを発表。粗悪な充電器などを排除 - Engadget 日本版
【USB】第6回 USB充電を大きく変える新規格、USB PDとは? (1/3):ITの教室 - @IT
AnkerのACアダプターをバラバラに分解、玉石混交のACアダプターでも「良品」はこうなっている - GIGAZINE
第840回:VOOC とは - ケータイ Watch
最新モバイルバッテリーの価格破壊がアツい!! PC派待望「5000円でUSB-C 45W」製品も(橋本新義) - Engadget 日本版
TPS65987DDH and TPS65988DH Host Interface Technical Reference Manual (Rev. B)
aroe(Yoshio Nomura)さんはTwitterを使っています 「USB PDのコントローラーIC、最初は各社バラバラに作ってて制御方法もバラバラだったけど最近はUSB-IFが制定したTCPI(Type-C Port Interface)という名称の規格で統一されてきてる。I2Cスレーブとして動作してレジスタの配置も決められてるので、共通のコードで動作するようになってる https://t.co/AnE3CrGZ8H」 / Twitter
aroe(Yoshio Nomura)さんはTwitterを使っています 「微妙に間違えてた。正しくはTCPCI(Type-C Port Controller Interface)である。対応した製品として FUSB307B(On),TUSB422(TI),PTN5110(NXP)がある 対応したMCU向けライブラリとしてはSTMicroのX-CUBE-USB-PDがある。これは一応FUSB307Bに作られてるけど他にも使えるっぽい」 / Twitter
葛城玲さんはTwitterを使っています 「@uchan_nos PDパススルーはアクセサリーの電力を横取りするので、容量がギリギリだと上手く動きません。 また、ただでさえ相性問題多発のPD充電器に機器を2台も繋ぐと色々起こります」 / Twitter

USBケーブルチェッカー

USBケーブルチェッカー | LimePulse
LimePulse USBケーブルチェッカー 機能解説 - YouTube
aroerina/LimePulse_USB_cable_checker: LimePulse USB cable checker schematic
【やじうまミニレビュー】USB Type-Cケーブルなどの素性を一発チェックできる必携アイテム「USB CABLE CHECKER2」 - PC Watch
USB ケーブルの性能を明らかにする「USB CABLE CHECKER 2」 | Bit Trade One, LTD
USB CABLE CHECKER 2 | ビット・トレード・ワン 公式オンラインショップ 【 BTOS (ビートス) 】

USBプロモーター・グループがUSB4仕様を発表:時事ドットコム
最大40Gbpsの転送速度を想定した新規格「USB4」の暫定仕様が発表される - GIGAZINE
最大転送速度は40Gbps、USB 4ではThunderboltとUSBが完全統合 | TechCrunch Japan
「USB4」の仕様が発表、より高速かつスマートな転送が可能に - CNET Japan
USB4の仕様が発表。2021年までは製品化されない? - iPhone Mania
「USB4」発表 「Thunderbolt 3」ベースでデータ転送速度は40Gbps - ITmedia NEWS
Thunderbolt 3が「USB4」として登場へ - PC Watch
USB 4が発表。ややこしい規格が統一されてほしい | ギズモード・ジャパン
USB 4がついに船出 Thunderbolt 3ベースで最大40Gbpsを実現 - ITmedia PC USER
USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに - 4Gamer.net
確定未申告さんのツイート: "あー、現状のTB3ポートはUSB 3.2の2レーン動作をサポートしてないから、Thunderbolt 3ポート ≠ USB 4ポートか あと、現状のTB3アクティブケーブルはUSB 3.XやTB以外のModal Operationをサポートしてないから、USB 4にTB3が取り込まれればそれが解決するな"
「USB4」が普及すれば、規格乱立という問題が今度こそ解決する(かもしれない)|WIRED.jp
USB4は転送速度40Gbpsに100W給電対応!アレと同じ! - ハイパーガジェット通信 | SIMフリースマートフォン/iPhone/タブレット/充電器/便利グッズ
新規格「USB4」発表。何がどう変わるか、今知っておくべきこと | ギズモード・ジャパン
ケイデンス、業界初のUSB4検証IP - PC Watch
「USB4」でカオス状態が解消される!?「USB」の気になるアレコレを徹底解説! - 価格.comマガジン
USB 4はバスのプロトコルトンネリングをサポートし、40 Gbpsの転送をサポートします - 自作ユーザーが解説するゲーミングPCガイド
最大転送速度40GbpsでUSB 3.0の8倍速い「USB4」の技術仕様をUSB-IFが正式に公開 - GIGAZINE
USB4の実像に迫る | 日経 xTECH(クロステック)
す~さんはTwitterを使っています: 「USB 4はUSB 2.0のバスを使いつつ、USB 4のレーンを別で使うのでUSB 2.0と互換性がある。 USB 4の電源はType-C, PDの定義に従うためUSB 4では定義されない。 USB3/DisplayPort/Host2Hostトンネルをサポート。 PCIeトンネル/Thunderbolt3/Alternate Modeはオプションサポート https://t.co/15HEztQExD」 / Twitter
す~さんはTwitterを使っています: 「USB4ではUSB2.0バスを制御用バスとして生かして、高速データ転送のために別レーンでGen 2(10Gbps),3(20Gbps)と高速化、さらに帯域稼ぐのにレーンを多重化してGen 2x2, Gen3x2として行く。 USB3/4は互いに物理層での互換性がないため物理的にUSB3/4を用意してMUXする」 / Twitter
FadisさんはTwitterを使っています: 「linux-5.6でUSB4のサポートがバニラカーネル入りする見通しらしい。USB4は最大40Gbpsの次世代USBとして今年の夏に標準化された規格。Thunderbolt3をUSBの規格に取り込んだような物で、USBケーブル上でPCI-Express Gen3 x2レーンを喋るEnhanced Super Speedモードが追加される https://t.co/cN8Ns9gYTj」 / Twitter
USB4 Support Being Introduced With Linux 5.6 Kernel - Phoronix
USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経 xTECH(クロステック)
USB4で採用した3つの新機能、高速化には「あの部品」が不可欠に | 日経 xTECH(クロステック)
高速化だけじゃない、USB4はここが違う | 日経 xTECH(クロステック)
USB4の実像に迫る | 日経 xTECH(クロステック)
USB4が40Gbpsの超高速を実現した技術とは | 日経 xTECH(クロステック)
11年ぶりの大幅アップデート、USB4の真の価値とは | 日経 xTECH(クロステック)
エレコム、業界初のUSB-IF認証取得済みUSB4対応ケーブル - PC Watch
USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経クロステック(xTECH)
ややこしい?「Thunderbolt 4」は「3」よりも転送速度は速くない - iPhone Mania
USB4とは?—Thunderbolt 3(DP・PCIe)を内包した新規格を事前予習|8vivid

LAN

ASIX

所有

ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
LAN-TXU2C - ロジテック株式会社

ESXi 向けUSB NICにオススメが増えた
玄人志向 | GbE-USB3.0S2:ASIX社製 AX88179搭載 1000Base-Tイーサネットアダプター(USB接続)
Plugable USB 3.0 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
Plugable USB Type-C 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX
ASIX ESXI - Google 検索

Aquantia

Aquantia、ノートPCで5Gbps有線LANを実現するUSB LANアダプタ用ICチップ - PC Watch
AQtion Chips - Aquantia Corp
AQtion AQC111U & AQC112U - Aquantia Corp
5GBASE-T対応LANアダプター、QNAP「QNA-UC5G1T」、USB 3.0接続 - INTERNET Watch

USB-LAN100R|PLANEX
USB-LAN1000R|PLANEX
Realtek
2015816232439101951.pdf
USB-C to Ethernet Adapter - Thunderbolt 3 Compatible | Cable Matters
プラネックス、USB 3.0接続の2.5Gbps対応Ethernetアダプタ - PC Watch
USB-LAN2500R
プラネックス、USB 3.0 Type-C接続の5GbE/2.5GbE対応有線LANアダプタ - PC Watch
USBC-LAN2500R
USBC-LAN5000R

Video

JVA04 USB Type-C ゲームキャプチャー – jp.j5create
Razer、4K/60fps対応のHDMIキャプチャ「Razer Ripsaw HD」国内発売 - PC Watch
プリンストン、PCなしでも使えるSDカードスロット搭載HDMIキャプチャユニット - PC Watch
サンワサプライ、4Kパススルー/SDカード対応のHDMIキャプチャユニット - PC Watch
株式会社プレクス - 地デジ・BS・CS対応 TVチューナー テレビチューナー PX-Q3PE4

Audio

1.0

USBオーディオ変換ケーブル(USB A to 3.5mmステレオミニプラグ)|株式会社バッファロー BUFFALO
PCM2704 ステレオ、USB 1.1、DA コンバータ、ライン出力およびS/PDIF 出力付、バス/セルフ・パワー(外部ROM インターフェイス) | TIJ.co.jp
ヘッドフォンアンプ付 USB-DAC LXU-OT2
Amazon.co.jp: Flameer PCM2704 サウンドカード ボード 3.5mm アナログ出力 デコーダ USB DAC-S / PDIF 高品質: カメラ
Amazon.co.jp: Dovewill PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード  3.5mm  アナログ 出力 F/PC  アクセサリー: カメラ
Amazon.co.jp: IPOTCH PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード  3.5mm  アナログ 出力 F/PC  交換性 便利性: カメラ

2.0

exaSoundの「PlayPoint」、USB Audio Class 2.0接続したDACを操作可能に - AV Watch
【藤本健のDigital Audio Laboratory】Windows 10がついに「USB Audio Class 2.0」対応へ? ドライバ無しでハイレゾ再生 - AV Watch
K3 – Fiio Japan
USB-DAC | アムレック

3.0

PCからも3.5mmミニジャックが消える日が近い。USB Audio Device Class 3.0仕様が策定 - PC Watch
USB Type-Cを次世代オーディオの標準端子に。「USBオーディオデバイスクラス3.0」発表 - PHILE WEB
USB-IF、USB Type-C経由のオーディオ再生を可能にする「USBオーディオデバイスクラス3.0」を発表 | ガジェット通信 GetNews
スマホのイヤホンジャックを廃してUSB Type-Cをオーディオケーブル代わりにしようとIntelが新規格策定中 - GIGAZINE
「音声端子はステレオミニからUSB Type-Cへ」。USB Audio Device Class 3.0発表 - AV Watch
モバイル機器からヘッドホン端子が消える日は来るか。インテルがUSB-Cにオーディオサポート拡張を提案 - Engadget Japanese
iPhoneに続いてPCの音声端子もなくなる? 知っておきたい2017年の注目技術 (1/4) - ITmedia PC USER

ASCII.jp:Xperia XZ3も含めた「イヤホン用アダプター増えすぎ問題」|Xperia XZ3ロングランレポート
「ヨンナナ」プラグについて | g200kg Music & Software
Creative BT-W2 - パソコンやMac、PlayStation®4とUSB接続可能なUSBオーディオBluetootnアダプター - Creative Technology (日本)
まちカドおるみんさんはTwitterを使っています 「@yuki424zti ハイレゾ,可聴域が広がることよりもサンプリングポイントが増えることと bit 数が増えてダイナミクスレンジが大きくなることのほうがキモなので」 / Twitter
uint256_tさんはTwitterを使っています 「ハイレゾだろうと酷い波形もあるので世界は厳しい」 / Twitter

Hub

USB2.0ハブ 4ポートタイプ|株式会社バッファロー BUFFALO
USB3.0バスパワーハブ 4ポートタイプ|株式会社バッファロー BUFFALO
Inateck - Portable Mini 4-Port USB 3.0 Hub HBU3VL2-4
USB Type-Cコネクタ搭載USBハブ(PD対応) - U3HC-A424P10BK
カードリーダー & 周辺機器 | ハブ | HUB5C - トランセンド|メモリ製品のスペシャリスト
USB Type-Cハブ(USB3.1 Gen2/Gen1・USB3.0/2.0/1.1・USB PD・4ポート・バスパワー・セルフパワー対応・ACアダプタ付き・ブラック) 400-HUB075BKの販売商品 | 通販ならサンワダイレクト
USB Type-Cハブ(USB3.1 Gen2/Gen1・USB3.0/2.0/1.1・USB PD・4ポート・バスパワー・セルフパワー対応・ACアダプタ付き・ブラック) 400-HUB075BKの販売商品 | 通販ならサンワダイレクト

FIDO

MS

YubikeyでLinuxサーバへの二要素認証sshログインを行う | 俺的備忘録 〜なんかいろいろ〜
YubiKey Personalization Tools | Yubico
OpenSC/OpenSC: Open source smart card tools and middleware. PKCS#11/MiniDriver/Tokend
Home · OpenSC/OpenSC Wiki
秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
Yubikey (スマートカード)に入れた秘密鍵を使ってSSHにログインする | n10の個人的なメモ
Yubikey 4 にSSHの秘密鍵を格納する | n10の個人的なメモ
Windows Hello and FIDO2 Security Keys enable secure and easy authentication for shared devices - Windows For Your BusinessWindows For Your Business
YubiKey for Windows Hello を入手 - Microsoft Store ja-JP
YubiKey Edge で 2段階認証 ~ Windows10編 - Qiita
IdM実験室: [Windows Hello]Yubikeyを使ってWindows 10 PCにサインインする
指紋認証は高精度な偽の指紋なら成功率80%で突破可能 - GIGAZINE
ASCII.jp:Windows 10、パスワードなしの世界へ一歩前進 (1/2)

Qiita

YubiKeyを実用面から機能別レビュー - Qiita
YubiKey+Pageantでらくらく秘密鍵管理 on Windows - Qiita
秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
Yubikeyを使って、Githubのcommitをverifyする - Qiita
今さら聞けない2段階認証の話いろいろ - Qiita
YubiKey NEO で Linux でも 2段階認証しよう! - Qiita

FIDO(ファイド)に準拠した認証セキリティデバイス | 飛天ジャパン
Fingerprint USB Dongle - PQIグループ- モバイル向け周辺機器の総合メーカー  [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
Compare YubiKeys | Strong Two-Factor Authentication for Secure Logins | Yubico
Basic YubiKey Troubleshooting : Yubico Support
USB-based YubiKey Now Boosts Security for iPhones Running iOS 11 | Digital Trends
YubiKeyストア
Fingerprint reader
指紋認証システムは機械学習で生成した「マスター指紋」でも突破可能だと判明 - GIGAZINE
3Dプリンターで作った石膏の「顔」でスマホの顔認証は突破される危険性あり - GIGAZINE
GmailやYahoo!メールの2段階認証を無効化するフィッシング詐欺が横行している - GIGAZINE
Google Chrome70からブラウザ上での顔認識や指紋認証が可能になる見込み - GIGAZINE
Sign in if you’re locked out on iOS 12.3 - Google アカウント ヘルプ
Googleの安全な2段階認証を構築し不正アクセスを防ぐ物理キー「Titan セキュリティ キー」が日本で登場 - GIGAZINE
iPhoneに物理的に挿入するだけで二段階認証が可能なセキュリティトークン「YubiKey 5Ci」 - GIGAZINE
GitHubがWebAuthn対応で物理セキュリティキーによる二段階認証を正式にサポート - GIGAZINE
GitHubがWebAuthn対応を開始。MacのTouch IDやWindows Helloの指紋認証などを使いパスワードレスでログイン可能に - Publickey
Googleの2段階認証を構築する「Titan セキュリティ キー」にUSB Type-Cタイプが登場 - GIGAZINE
物理セキュリティキーの「YubiKey」でついに生体認証が可能となることが判明 - GIGAZINE
FadisさんはTwitterを使っています 「ちなみにWebUSBは、フィッシングサイトがFIDO U2FのドングルとWebUSBで直接お話して2要素認証を台無しにする脆弱性 が見つかったあと多くの主要なデバイスクラスのデバイスをWebUSBから使えなくする変更が入った為、楽しむのは難しいAPIになった」 / Twitter
スマホでもPCでも使えるUSB Type-CとNFCを搭載した物理セキュリティキー「YubiKey 5C NFC」レビュー - GIGAZINE

キーボード

Wikipedia

Computer keyboard - Wikipedia
キーボード (コンピュータ) - Wikipedia
FITALY - Wikipedia
IBM PC keyboard - Wikipedia
Keyboard layout/chart - Wikipedia
Latin-script non-QWERTY keyboards - Wikipedia
キー配列 - Wikipedia
Scancode - Wikipedia
スキャンコード - Wikipedia
Altキー - Wikipedia
Japanese language and computers - Wikipedia
PS/2コネクタ - Wikipedia
PS/2 port - Wikipedia

Owltech キーボード OWL-KB104SFD/E
Microsoft キーボード:Wired Keyboard 600 (ワイヤード キーボード 600) | Microsoft Hardware
USB 切替器 キーボード 切替機 プリンタ 切り替え機 USB 手動切替器
テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE
CNN.co.jp : ビル・ゲイツ氏、「Ctrl+Alt+Delete」を後悔
ビル・ゲイツ、Ctrl+Alt+Deleteについて語る | スラド ハードウェア
Apple、キーボードへのホコリ侵入を防ぐ特許 - PC Watch
パソコンのキーボードは,なぜABC順・五十音順ではないのですか | ことばの疑問 | ことば研究館
1877年3月のフランス向けレミントン・タイプライターのキー配列 | yasuokaの日記 | スラド
はじめてのにき(2018-08-07)
日記 (2018 年 12 月下旬)
Microsoftは「Office専用キー」をキーボードに追加することを検討中 - GIGAZINE

マウス

有線レーザーマウス(5ボタン・チルトホイール) - M-LS15ULBK
【特集】追悼ボールマウス ~Amazonからボールマウスが絶滅した日~ - PC Watch
なかのん&マジックさんのツイート: "ハイエンドに近いマウスを使ってると、いい加減にWindowsもホイールのmomentumスクロールをOSレベルで扱って、アプリから識別できるようにして欲しい。たとえば、ホイール回した後にCtrlキーを押して、ズームとして扱われてしまうのを回避できるようにして欲しい。"
なかのん&マジックさんのツイート: "今のところ、本当にユーザの操作の結果としてのホイールイベントなのか、UXやスムーズスクロールのための予備的に発火されたイベントなのか見分ける手段がなさげ。"

無線

その他

「技適」の話をあらためて整理する (1/3) - ITmedia Mobile
無線LANデバイスが技術適合証明を受けなければならない理由 | Noisefactory
M.2 の NGFF 形状 WiFi モジュールと繋ぐケーブル
AC-8260NGW
NTTと東工大、テラヘルツ帯での100Gbps無線伝送に成功 - PC Watch
技適取得済み機器の検索APIを総務省が公開中、技適取得の有無のほか機器情報も取得可能【やじうまWatch】 - INTERNET Watch
技適の無い海外端末の合法的利用について | かくいちさんの掲示板 | マイネ王
Cell Phone Unlocking | Federal Communications Commission
「なぜ無線通信で用いられる周波数帯域は2.4GHzなのか」調査中の学生の前に立ちはだかった最後の巨大な壁 - GIGAZINE
【速報】「技適」のない機器の実験利用が可能に、電波法改正で11月20日から:教育とICT Online
家に届いた「NEXT! 700MHz」のチラシ、これは何? - AV Watch

Bluetooth

その他

成熟Bluetoothチップ市場に吹く新風 (1/4) - EE Times Japan
渋川よしきさんのツイート: "Bluetoothを青歯って書く人いるけど、中国語の藍牙のほうが中二病感あってカッコイイと思う。簡体字だと蓝牙。ピンインだとlanyaで変換できます。"
Anker Soundsync A3341 - .mjtの日記復帰計画
低電力Bluetoothチップの多くに存在するリモートアクセスを可能にする脆弱性「BleedingBit」の存在が明らかに - GIGAZINE
(1)「マルチペアリング」や「マルチポイント」で手軽になったBluetooth | 日経 xTECH(クロステック)
【小寺・西田の「金曜ランチビュッフェ」】AirPodsから考えるBluetoothの「切り換え」問題
AndroidスマホのBluetoothに重大な脆弱性、攻撃者が任意のコードを実行可 - Engadget 日本版
Google、Bluetoothデバイスを初回から自動接続できるFast Pairの詳細を公開 - PC Watch
Bluetoothデバイスの接続に潜む新たな脆弱性を用いたなりすまし攻撃「BIAS」が発見される - GIGAZINE
Bluetoothデバイスの認証キーを攻撃者が上書きできる脆弱性「BLURtooth」が発見される - GIGAZINE
スマホやPCなど無数のBluetoothデバイスが乗っ取られてしまう脆弱性「BLESA」が発見される - GIGAZINE
2020年10月20日 Linux 5.9.1がリリース,Bluetoothの脆弱性を突いた「BleedingTooth」に対応:Linux Daily Topics|gihyo.jp … 技術評論社

Sniffer

「Bluetooth Low Energy BLE 4.0 nRF51822」に該当する海外通販 - セカイモン
2269 Adafruit Industries LLC | RF/IF and RFID | DigiKey
DSAS開発者の部屋:技適マークつき BLE パケットスニファを入手する
DSAS開発者の部屋:BLE デバイス間の通信内容をパケットレベルで読み解いてみる

ケータイ Watch

第660回:iBeaconとは - ケータイ Watch Watch
第679回:ポータブルSIM とは - ケータイ Watch Watch
第718回:Eddystone とは - ケータイ Watch Watch
第720回:ジオフェンシング とは - ケータイ Watch Watch
第832回:完全ワイヤレスステレオ(TWS) とは - ケータイ Watch
第859回:eMBB、URLLC、mMTC とは - ケータイ Watch

FIDO

ユーザーは改良版への交換を。GoogleがBluetooth版Titanセキュリティキーをリコール - Engadget 日本版
Google Online Security Blog: Advisory: Security Issue with Bluetooth Low Energy (BLE) Titan Security Keys
パスワードの不要な世界はいかにして実現されるのか - FIDO2 と WebAuthn の基本を知る: Tender Surrender

Audio

遅延対策

Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi @beepcap Android って動画の場合 SBC のでかい遅延に合わせて映像ずらしてくれるから気にならないんですよね。まぁ macOS もそうなんですけど。操作音みたいなやつは画面更新遅らせるわけに行かないから露骨にずれますね。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@hdk_2 @beepcap なんか動画だとリップシンクうまくやってくれるらしいですね。OS が対応してなくても VLC なんかはたいてい音声のオフセット設定とかできるし,まあなんとかなる印象」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi Android と macOS で試して、あぁー今時のオペレーティングシステムはこうなんだーいいじゃんって思って、それから Windows を触った時の絶望感...」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@hdk_2 Android も macOS も A2DP の接続コーデック確認とかもできるんですが Windows はそれすらも出来ない(とはいえ標準のソフトウェアスタックで aptX に対応したり進歩はしているのですが」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi まぁなんか、Bluetooth オーディオは闇なので、自宅では PC 同士を PulseAudio で飛ばすことにしました...」 / Twitter

kanamonoさんのツイート: "左右独立したイヤフォンは音がずれることがないのかなと思っていたが、昨日ついにズレが発生した。電源切るまで直らなかった"
kanamonoさんのツイート: "ズレは1秒未満でしたが、ズレると物凄く不快なので実用に堪えない感じになります… "
耳を塞がないイヤホンambieを一ヶ月でぶっ壊してしまった話 - にせねこメモ
【藤本健のDigital Audio Laboratory】iPhoneからBluetoothで聴くと音質はどう変わる? 波形で比較した-AV Watch
【藤本健のDigital Audio Laboratory】BluetoothのaptX音質をテストしたら、謎の結果が出てしまった-AV Watch
【藤本健のDigital Audio Laboratory】BluetoothのaptX音質を再び検証。SBCとの違いを波形で比べた-AV Watch
Logicool Bluetooth Audio Receiver for Wireless Streaming
【笠原一輝のユビキタス情報局】Microsoftのノイキャンヘッドフォン「Surface Headphones」をレビュー ~PC&スマホの同時に利用に便利。日本でもまもなく発売 - PC Watch
高音質なワイヤレス体験!24bit Bluetooth DUAL DAC搭載。バランス接続対応ワイレスレシーバー『EarStudio』 | 株式会社フリーウェイ
SBC XQ - Google 検索
Bluetoothの新音声規格「LE Audio」、新コーデック「LC3」採用やマルチストリーム・ブロードキャストに対応 - ケータイ Watch
Bluetooth SIG、ブロードキャストにも対応する「LEオーディオ」を発表 - ケータイ Watch
Bluetoothの次世代音声規格「Bluetooth LE Audio」が発表される、低電力で高品質ながら複数機器での再生も可能に - GIGAZINE
LE オーディオ |ブルートゥース®テクノロジーウェブサイト
Bluetooth SIG Unveils LE Audio, the Next Generation of Bluetooth Audio – Bluetooth® Technology Website
Bluetooth SIG、音質が抜本的に改善したLE Audio用新コーデック「LC3」 - PC Watch
LEオーディオの仕様|Bluetooth®テクノロジーウェブサイト
Low Complexity Communication Codec - LC3_Specification_v1.0.pdf
とみながたけひろさんはTwitterを使っています 「そういえばBluetoothのLC3コーデック仕様書が公開されたのでhttps://t.co/SWndAk9WSM (PDF) つらつらと見ているんだが、リサンプリング検出器があるのが面白かった。これはVoice系の8kHzサンプリングされた音声を48kHzに変換したんだな、てのを認識したときに特別扱いするっていう」 / Twitter
とみながたけひろさんはTwitterを使っています 「あとはまあウィンドウ長を時間固定にするとか、プリエコー対策でもウィンドウサイズ変えないとか、エントロピーコーディングはVQと算術符号とか、なるほど計算量減らしつつ効率上げるならこのへんかー、今時だなーという感じ」 / Twitter
とみながたけひろさんはTwitterを使っています 「直交変換の窓函数が変態形状である。これはvorbisからあったしそれほど最新ではないのかもだけど、あんまり他では見た事ない気もする」 / Twitter
Masami HIRATAさんはTwitterを使っています 「@takehiro_t @yohhoy それって、モノラル音声のストリームを 6 本束ねて 5.1ch みたいな用途を想定していて、LFE に特化しているツールが用意されてるみたいな感じなんですかね?」 / Twitter

MIDI

nRF51でBLE MIDIをアドバタイズする - Qiita
BLE-MIDI : 藤本健の“DTMステーション”
kshoji: Android用のBLE MIDIライブラリのご紹介
kshoji/BLE-MIDI-for-Android: MIDI over Bluetooth LE driver for Android 4.3 or later
Downloads | KORG BLE-MIDI Driver - Bluetooth MIDI Connection Guide E | KORG (USA)
ble-midi - npm
Bluetooth LE MIDI Specification
Microsoft Word - rp52.doc
Bluetooth LE MIDI Specification
Midi over BLE
MIDI 2.0、始動 今も使われる電子楽器規格が38年後のバージョンアップ - ITmedia NEWS
MIDIが38年ぶりのバージョンアップでMIDI 2.0に。従来のMIDI 1.0との互換性を保ちつつ機能強化 | | 藤本健の "DTMステーション"
【藤本健のDigital Audio Laboratory】Bluetooth MIDIは本当に遅延が大きい? 測定して比べてみた-AV Watch

マウス

Bluetooth 4.0 レーザーマウス - M-BT13BLBK
EX-G Bluetooth BlueLEDマウス - M-XG4BBBK
【PR】接続も充電もワイヤレスなCorsair製マウス「DARK CORE RGB SE」を試す。ケーブルに縛られないゲームライフはとことん快適だ - 4Gamer.net
Corsair、Qi無線充電が可能な2.4GHz無線/BT/有線対応ゲーミングマウスなど2機種 - PC Watch

I/F

BIOS 画面でもBluetooth LE な無線キーボードを使いたい | tech - 氾濫原
Releases · cho45/hid2hcix
HID API for Linux, Mac OS X, and Windows
Bluetooth Ver.4.0+EDR/LE対応 小型USBアダプター|PLANEX
Bluetooth(R) USBアダプター(Class2) - LBT-UAN05C2
Nintendo Switchでワイヤレスイヤフォン/ヘッドフォンを使用可能にするドングルが発売 - GAME Watch
Nintendo Switch™をワイヤレスで楽しもう!世界初、ワイヤレスヘッドホンを可能にするドングル『Genki』

au

仕様 (スペック) | Bluetooth(R) | au
仕様 (スペック) | Bluetooth(R) | au
機能説明 | Bluetooth(R) | au

Bluetooth 5

【ニュース・フラッシュ】ケイデンス、Bluetooth 5の検証IPを提供開始 - PC Watch
「Bluetooth 5」に対応したスマートフォンが認証の取得を開始 | ガジェット通信
新規格登場のBLE、非モバイルに浸透へ - 日経テクノロジーオンライン
Bluetooth SIG責任者が今だから語る、Bluetooth 5仕様の真実 - TechTargetジャパン ネットワーク
速度2倍、到達距離4倍になったBluetooth 5 - PC Watch
Bluetooth 5 通信距離「従来比4倍」の仕組み (1/4) - EDN Japan
Bluetooth 5 対応スマートフォンをサムスンとアップルが製品化 (プレスリリース) - エキサイトニュース
新しいiPhoneの「Bluetooth 5.0」で何が変わる? - いまさら聞けないiPhoneのなぜ | マイナビニュース
【解説】誤解していませんか?「Bluetooth 5対応」の真の意味とは - PHILE WEB
Bluetooth 5でオーディオは進化するの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
方向検知機能が追加された「Bluetooth 5.1」 ~位置測位もセンチメートル単位で可能に - PC Watch

Bluetooth mesh

Bluetoothがメッシュネットワークをサポート ~数千デバイスの相互ネットワークを実現 - PC Watch
第817回:Bluetooth Meshネットワーク とは - ケータイ Watch
低エネルギー: メッシュ | Bluetooth Technology Website
Low Energy: Mesh | Bluetooth Technology Website
数千ノードのメッシュネットワークを構築できる「Bluetooth mesh」 ~大規模デバイスネットワークの基礎を目指す - PC Watch

Bluetooth Low Energy

はじめに | 基礎知識 | ROHM TECH WEB
AndroidでBluetoothヘッドホンのバッテリー残量インジケーター表示のサポートが行われる見込み - GIGAZINE
Shiki Okasakaさんのツイート: "Bluetooth SmartとBluetooth Smart Readyマークは2016年いっぱいで廃止されている、というのはどれくらい周知されているのだろう? https://t.co/vJFGi6WCBf https://t.co/ZhY3hOw3Z0"
ネット環境不要で広域通信可能な「BLEルーター」、IoTデバイス開発のBraveridgeが提供 - INTERNET Watch
Bluetooth LEにWindows PCやiOS/macOSなど対応デバイスを識別/追跡できる脆弱性 - PC Watch
popets-2019-0036.pdf

Bluetooth Technology Website

WiMAX

UQ、WiMAX 2+対応のUSBアダプタ「URoad-Stick」 - PC Watch
stick_linux_info_v1.0.pdf
URoad-Stick |UQWiMAX|超高速モバイルインターネットWiMAX2+
データ通信カード | UQ WiMAX|超高速モバイルインターネットWiMAX2+
WiMAX製品一覧|UQWiMAX|超高速モバイルインターネットWiMAX2+
テザリング機能|UQmobile|格安スマホ・格安SIMのUQmobile
Linux機にWiMAX機器をUSB接続して使う - 海馬のかわり
Huawei WiMAX 2+モデムをLinuxで使う
USBケーブルを使用してノートPCのネット回線をアンドロイド端末共有
WiMAX2+ 接続方式による通信速度の違いを検証してみた USB接続編 : ガジェッとぅ
【西川和久の不定期コラム】ネットワークコンサルティング「Mobile Cube」 ~コンパクトで起動も速いWiMAX Wi-Fiルーター - PC Watch
LinuxカーネルがWiMAXのサポートを段階的に廃止 - GIGAZINE

LTE

LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。 - Misuzilla.org
ピクセラ、LTE対応USBドングル「PIX-MT100」がファームアップデート - CNET Japan
法人向けSIM・高速モバイル通信サービスのIIJモバイル | IIJ
520BU | 端末情報 | IIJモバイル サポートサイト
520BU | 端末情報 | サプライ | IIJモバイル サポートサイト
AMP520 - SORACOM 認定デバイス
M2Mに挑戦するAM Telecom
相互接続性試験(IOT) IOT完了済みメーカーブランド通信モジュール・製品 | ドコモビジネスオンライン | NTTドコモ
modulelist.pdf
品質 4G LTE モジュール & 3G 変復調装置モジュール 製造元
第839回:PS-LTE とは - ケータイ Watch
第853回:EVS とは - ケータイ Watch
Enhanced Voice Services - Wikipedia
Enhanced Voice Services - Wikipedia
スマホの通信規格「4G/LTE」「5G」でユーザーになりすまして通信に介入できる脆弱性が見つかる - GIGAZINE
ピクセラ、LTE対応のUSBモデムを秋に発売 - PC Watch

5G

報道発表資料 : (お知らせ)5G標準仕様策定が完了 | お知らせ | NTTドコモ
【笠原一輝のユビキタス情報局】MWC 18で見えてきた5Gを巡るIntelとQualcommの熱いつばぜり合い - PC Watch
NOKIA、5G特許で端末1台につき3ユーロのライセンス料 - PC Watch
【やじうまPC Watch】豪政府、Huawei/ZTE両社を5Gネットワーク供給から排除 - PC Watch
トランプ大統領、米連邦政府機関でのZTEおよびHuawei製品使用禁止令に署名 - ITmedia NEWS
ドコモの3Gは2020年代半ばに終了へ 5Gで2023年までに1兆円を投資 - ITmedia Mobile
Rockridgeさんのツイート: "5Gについて、「(TCP輻輳制御方式として)CUBICの方がBBRよりも一般には高速で通信可能」「HTTPはTCPセッション数を増やすと速くなる」「QUICは帯域を限界まで使える可能性があるが不明な挙動も」。 / “HTTP a…” https://t.co/4W2uBcH5Rh"
【イベントレポート】FibocomがIntel製5GのM.2モジュールを年末までに出荷 ~次世代Xeon Dの開発コードネームはHewitt Lake - PC Watch
【山田祥平のRe:config.sys】5Gネットワーク始動、その万感の想い - PC Watch
AppleとQualcomm和解で、Intelがスマホ向け5Gモデムから撤退 - PC Watch
いろいろ世界初。MediaTeckの5G対応チップはQualcommの良きライバルになりそう | ギズモード・ジャパン
Intelが5Gモデム搭載ノートPCの実現に向けMediaTekと協業 - PC Watch
中国が「Huaweiと5G契約しないと貿易協定を締結しない」と外国の首脳を脅迫していたと判明 - GIGAZINE
次世代通信「5G」に通話の傍受や位置情報の特定が可能になる脆弱性が発覚 - GIGAZINE
MediaTek、Intel PC用の5Gモデム「T700」 - PC Watch

6G

NTTが「6G」向け通信技術を開発、5G超え「シャノン限界」まで高速化 | 日経 xTECH(クロステック)

ケータイ Watch

第604回:「ucode」 とは - ケータイ Watch Watch
第765回:デュアルスタンバイ とは - ケータイ Watch
第796回:デュアルアクティブ とは - ケータイ Watch
第816回:UDCとは - ケータイ Watch
第824回:プロビジョニングとは - ケータイ Watch
第826回:0AB~J番号 とは - ケータイ Watch
第845回:RCS(Rich Communication Services) とは - ケータイ Watch
第847回:iSIMとは - ケータイ Watch
第849回:マルチプロファイルSIMとは - ケータイ Watch
第856回:+メッセージ とは - ケータイ Watch
第868回:クラウドSIMとは - ケータイ Watch
電波法改正案、電波利用料を大幅見直し - ケータイ Watch
電波法改正案、技適なしでも試験利用は可能など一部緩和 - ケータイ Watch

Wi-Fi

Wi-Fi 6(IEEE802.11ax)

【NW未来予想図01】無線LANは11axが主流に。光並み20ギガWi-Fiも | ビジネスネットワーク.jp
第848回:IEEE802.11ax とは - ケータイ Watch
速度は11acの倍、11ax対応のWi-Fi子機向けチップ「WCN3998」、Qualcommが発表 - INTERNET Watch
802.11axの呼称が「Wi-Fi 6」に、11acは「Wi-Fi 5」、11nは「Wi-Fi 4」 - INTERNET Watch
次世代高速無線LAN規格「11ax」について
【Wi-Fiルータ】次世代規格IEEE 802.11axの無線通信に対応した機器まとめ - 踊るびあほりっく
無線LANに11axが必要になった理由 | 日経 xTECH(クロステック)
IEEE 802.11ax - Wikipedia
_pdf
最新規格「IEEE802.11ax」がやってきた!最新無線LAN事情 - IT、IT製品の情報なら【キーマンズネット】
IEEE802.11ax | IoT
Wi-Fi 6(11ax)搭載拡大へ、2023年にWi-Fiチップ出荷の約3分の1に達すると予測 - INTERNET Watch
CES 2019で見かけた「Wi-Fi 6」(802.11ax)対応製品【CES 2019】 - INTERNET Watch
無線LANも2.4Gbpsに。Intel、Wi-Fi 6モジュールを出荷開始 - PC Watch
【周波数帯を拡張するWi-Fi 6E】Wi-Fi 6Eの6GHz帯、2019年後半に欧米で免許不要利用にメド【ネット新技術】 - INTERNET Watch
6GHz帯の無免許利用をFCCが承認、高速な無線LAN新規格「Wi-Fi 6E」が使用可能に - GIGAZINE
アイ・オー、1万円切りのWi-Fi 6対応無線LANルーター - PC Watch

IEEE802.11ay

IEEE802.11ay | IoT
IEEE 802.11ay - Wikipedia
www.ieee802.org/11/Reports/tgay_update.htm
IEEE 802.11ay、802.15.3eで何が変わる?ミリ波帯超高速無線通信 - IT、IT製品の情報なら【キーマンズネット】
多様な周波数帯を活用した性能拡大に向けた取り組み
000168907.pdf
研究会 - IEEE802.11ayに向けたCMOSミリ波トランシーバーに関する研究

Mesh

「Wi-Fi CERTIFIED EasyMesh」発表、異なるベンダー間でもメッシュを構築できる製品を認証 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第1回)Wi-Fiにおけるメッシュネットワークの必要性【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第2回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第3回)Wi-Fiメッシュで通信コストを最小化する仕組み、「IEEE 802.11s」の採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第4回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第5回)Wi-Fiメッシュの主流はQualcomm「Wi-Fi SON」へ、「IEEE 802.11s」に準拠せず【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第6回)続々登場するQualcomm「Wi-Fi SON」採用製品は相互非互換、Wi-Fi Allianceは「EasyMesh」を発表【ネット新技術】 - INTERNET Watch
2017年度のベスト5wifiメッシュネットワークシステムに関してお読みください
最高のメッシュWi-Fiルーター 2018版
メッシュ ネットワークとは - Google Wifi ヘルプ
Google Wifi を使用したメッシュ ネットワークの仕組み - Google ストア
Google Wifi vs. deco M5 メッシュ対応Wi-Fiルーター徹底比較 (1/6) - ITmedia PC USER
ASUSのメッシュルーター「Lyra mini」で自宅Wi-Fi環境が改善するかテスト:旅人目線のデジタルレポ 中山智 - Engadget 日本版
【メッシュWIFIシステム】Google WiFiと中継機やルーターとの違いを比較。おすすめ機種も。 | モノログ.fun
メッシュWi-Fiの基本的な仕組みと特徴を理解しよう|MacFan
「メッシュWi-Fi」で家中どこでも快適Wi-Fi環境を実現

WPA3

Twitter

Eijiro Sumiiさんのツイート: "本当に(←そればっか)、「無線LANの暗号化意味ない」は広まってほしい… "
アナネコさんのツイート: "WPA-PSKでL2レベル暗号化していても、パスワードを共有している場合は簡単にそれぞれのセッション鍵を計算することができてL2レベルの暗号化が無意味になるんですよ。って研修でやるのに買ったやつ。"
Eijiro Sumiiさんのツイート: "本当に(略)、「https (SSL/TLS)使う」のほうがはるかに重要 https://t.co/IessKQmFmc"
アナネコさんのツイート: "ちなみにL2の暗号化が破られるから危険!という主旨ではなく、L2の暗号化なんてあてにならんのだから重要な通信は上のレイヤーで暗号化して改竄検知しましょう!というお話をしました。"
Eijiro Sumiiさんのツイート: "パスワード共有してたら暗号云々以前に偽アクセスポイント立てればもっと簡単に盗聴・改ざんし放題だし。"
Eijiro Sumiiさんのツイート: "https://t.co/kuRAuKXj8Q 「利用者を特定少数に制限したい場合」「管理者側にとっては」無線LANに暗号化パスワードつける意味あります。念のため。"
Eijiro Sumiiさんのツイート: "誤解している例:https://t.co/M05PCQqkZz"
Eijiro Sumiiさんのツイート: "HTTPSを使うとかブラウザをアップデートするとか本当に必要な対策ではなく、「暗号化されていないWi-Fiがある」から「利用を控える」は、被災者に誤った不便を強いる呼びかけでは… https://t.co/IjWX8QuTih"
Eijiro Sumiiさんのツイート: "https://t.co/1eL3b1FhHT 記事が消えてた。熊本県警の「呼びかけ」。"

第863回:WPA3 とは - ケータイ Watch
Wi-Fi Alliance、次世代無線セキュリティ「WPA3」 - PC Watch
Wi-Fi Alliance、Wi-Fiセキュリティの新規格「WPA3」発表 | マイナビニュース
Wi-Fiパスワードを破る新たな攻撃手法が見つかる--「WPA」「WPA2」を無効に - ZDNet Japan
Wi-Fiは将来的に「WPA3」必須に、Wi-Fi Allianceが新たな認定制度をスタート - INTERNET Watch
【利便性を向上するWi-Fi規格】(第7回)Wi-Fi最初の暗号化規格「WEP」、当初の目論見は“有線LAN同等のセキュリティ”【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第8回)Wi-Fiの暗号化は「WPA」から「802.11i」を経て「WPA2」へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第9回)2003年までの実装が必須だった「WPA」で採用された「TKIP」の4つの特徴【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第10回)暗号化方式に「AES」を採用した「IEEE 802.11i」や「WPA2」、11n普及とともに浸透【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第11回)WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第12回)WPA3は「SAE」採用で鍵の推測が不可能に、KRACKsで悪用の穴ふさぐ、2018年末から登場?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第13回)SSID&パスフレーズをボタンを押してやり取りする標準規格「WPS」、各社規格の乱立に終止符?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第14回)ボタンを押すとSSID&パスフレーズはどうやってやり取りされる? 「WPS」の接続手順【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第15回)SSID・パスフレーズ交換の標準規格「WPS 2.0」、「WPS 1.0」の脆弱性を解消【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第16回)認証不要でWi-Fi通信の傍受を不可能に、フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第17回)フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」、盗聴の恐れがある通信路で秘密鍵を安全に共有【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第18回)Passpointの仕様である「Hotspot 2.0」のベースとなった標準規格「IEEE 802.11u」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第19回)国内キャリアも採用のホットスポット提供指標「WISPr」、「IEEE 802.11u」と一本化へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第20回)ホットスポットでの認証の問題を解消した「HotSpot 2.0」、IEEE 802.11uやWISPr 1.0/2.0に欠けた要素を追加【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第21回)Wi-Fiホットスポット接続規格「Passpoint」、高速なLTEの普及で拡大せず【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第22回)スマホでQRコードを読み取り、ほかの機器をWi-Fi接続する「Wi-Fi Easy Connect」、画面やカメラがない機器を接続可能に【ネット新技術】 - INTERNET Watch
Wi-Fiセキュリティの新規格「WPA3」に脆弱性が発見される - GIGAZINE
Wi-Fiセキュリティ新規格「WPA3」に脆弱性、登場から1年経たずに発見される - INTERNET Watch
Dragonblood: Analysing WPA3's Dragonfly Handshake
Wi-Fiセキュリティ新規格「WPA3」にWi-Fiのパスワードが漏れる新たな脆弱性が発見される - GIGAZINE
Wi-Fi 6の認定プログラム「Wi-Fi CERTIFIED 6」開始。WPA3が必須に - PC Watch

INTERNET Watch

Wi-Fiルーターのサポート期間っていつまで? 国内メーカー4社に聞いてみた  - INTERNET Watch
無線LANの5.2GHz帯(W52)、屋外利用を可能に、電波法施行規則を改正へ - INTERNET Watch
【利便性を向上するWi-Fi規格】(第23回)Wi-Fiを利用してVoIPを実現する音声伝達向け規格「Wi-Fi CERTIFIED Voice-Personal」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第24回)Wi-Fi子機同士を直接接続する「Wi-Fi Direct」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第25回)高精度の屋内測位機能を提供する「Wi-Fi CERTIFIED Location」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第26回)Wi-Fiで100μs精度の時刻同期ができる「Wi-Fi CERTIFIED TimeSync」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第27回)公衆Wi-Fiアクセスポイント向けの「Wi-Fi CERTIFIED Vantage」、11ac+PassPointから拡充へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第28回)「Wi-Fi CERTIFIED Agile Multiband」、ネットワーク内の移動に伴うローミングなどの対応をまとめて規定【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第29回)ESSIDの異なるWi-Fiへの接続を高速化する「Wi-Fi CERTIFIED Optimized Connectivity」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(番外編1)11acから11axへの移行は2019年末から2020年初頭~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(番外編2)11axはCBRSとあわせて伸びる分野、その先には5Gも~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch

無線LANルーター|MZK-MF300HP2|PLANEX
WN-AX1167GR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
第880回:Wi-Fi CERTIFIED Vantage とは - ケータイ Watch
第881回:Wi-Fi 4/5/6 とは - ケータイ Watch
KRACKのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
WoWのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
アイ・オー、4,000円を切る一人暮らし向けの無線ルーター - PC Watch
ランダム ハードウェア アドレスを使う理由と方法
わかめ@毎日猫がいるさんはTwitterを使っています: 「Pixel 4になってからなぜか会社のシステムにMACアドレス登録してもWi-Fi打刻できなくなってて ??? ってなってたんだけど、MACアドレスをAPごとにランダマイズする機能がAndroid 10からデフォルトオンに…! https://t.co/Fxtih3NiZn」 / Twitter
Privacy: MAC Randomization  |  Android Open Source Project
わかめ@毎日猫がいるさんはTwitterを使っています: 「ていうかMACアドレスがソフトウェア的にランダムに変わるのってすげーな。いいのか?(プライバシー保護的にはOKなんだろうけど)」 / Twitter
そな太@Swift始めましたさんはTwitterを使っています: 「@vvakame MACアドレスはブロードキャストが届く範囲でユニークであれば良いので問題ないです(ブロードキャストドメインを超えて利用されることはないため) 仮想環境のMACアドレスも本物ではなかったりしますよね」 / Twitter
わかめ@毎日猫がいるさんはTwitterを使っています: 「@sonatard たしかに。なるほどなぁ。」 / Twitter
mjg59 | Wifi deauthentication attacks and home security
無線LANのスペクトルを6GHz帯に拡張した「Wi-Fi 6E」 - PC Watch
TL-WPA4220KIT | 300Mbps AV600 PLC Wi-Fiエクステンダーキット | TP-Link Japan
Wi-Fi通信を盗み見る脆弱性「Kr00K」が発見。MacやiPhone、Raspberry Piなど多くのデバイスが対象に - PC Watch
iPhoneやGalaxyなど10億を超えるWi-Fi端末に通信を傍受される脆弱性「Kr00k」が存在すると判明 - GIGAZINE
スマホ・PCなどほぼすべてのWi-Fi機器に影響があるWPA2自体の脆弱性「KRACK」とは、そして対策は? - GIGAZINE
FadisさんはTwitterを使っています 「物理的に何かを所有していることを利用者が本物であると考える根拠としてWi-Fiの利用者を制限したい場合、EAP SIM認証というのがあってな」 / Twitter
Virtual WiFiとSoftAP - Google 検索
アイ・オー、税別5,500円のIEEE 802.11acルーター - PC Watch
Wi-Fiのパスフレーズを「パケットを食べる」ことで解析する電子ペットキット「Hash Monster」 - GIGAZINE

Raspberry Pi

Wi-Fi

Raspberry Pi Zero Wをアダプタ不要でセットアップする - Qiita
USB OTGを使ったRapsberry Pi Zero WH のセットアップ - Qiita
OTG(On-The-Go)化した Raspberry Pi zeroをインターネット接続する! - Opensourcetechブログ
Raspberry Pi ZeroをUSBケーブル1本で遊ぶ | Japanese Raspberry Pi Users Group
RaspberryPiZeroをUSBケーブルでセットアップ
DSAS開発者の部屋:USBポートに挿すだけでインターネット接続を乗っ取るガジェットを作ってみた
ヘッドレスRaspberry Pi Zero w(h)のネットワーク初期設定やコンソールやUSB Gadget/Ethernetなどについてメモ - uzullaがブログ
Windows 10でCANDY Pi LiteとRaspberry Pi Zero... | CANDY LINE Blog
Raspberry Pi Zero /W で USB ケーブルで Windows に接続 | sakisan's cafe
Raspberry Pi 4の「特定の解像度でWi-Fiが不安定になる」問題を実際に検証してみた - GIGAZINE
Raspberry 3B+でWi-Fiルータを作った - Plonk123の日記

News

【西川和久の不定期コラム】「Raspberry Pi3 Model B」で遊んでみよう! Part 1 ~OSのインストールから環境構築まで軽く試す編 - PC Watch
【西川和久の不定期コラム】「Raspberry Pi3 Model B」で遊んでみよう!Part2 ~GPIO入門1。ポートのオン/オフとステータス取得編 - PC Watch
IEEE 802.11acやGbEをサポートした「Raspberry Pi 3 Model B+」、35ドル ~SoC改良により高負荷継続時の性能も向上 - PC Watch
ケイエスワイ、技適取得の「ラズパイ3 Model B+」を販売開始 - PC Watch
SDカードなしで運用できるRaspberry Pi最新モデル発売 | マイナビニュース
Raspberry Pi用のvSphere ESXi仮想化ハイパーバイザ、VMwareがプロトタイプを発表 - Publickey
25ドルの「Raspberry Pi 3 Model A+」が発表 - PC Watch
Raspberry Pi財団、オープンなCPUを実現する「RISC-V Foundation」へ参加表明 - Publickey
Raspberry Pi 4 Model Bリリース! | Japanese Raspberry Pi Users Group
USB 3.0初搭載の「Raspberry Pi 4 model B」が登場 - PC Watch
Raspberry Pi 4 Model Bを見る! | Japanese Raspberry Pi Users Group
技適対応の「Raspberry Pi 4 Model B 4GB版」が発売 - PC Watch
8GBのRAM搭載で64ビット対応のRaspberry Pi 4が登場、標準OSも64ビット版がリリース - GIGAZINE
Raspberry Pi 4ベースの「Compute Module 4」発売 - PC Watch
1日数十円から試せる“IoT用AIアプリのApp Store”拡大へ、Ideinが20億円調達 | DIAMOND SIGNAL
Ubuntu 20.10がRaspberry PiでLinuxデスクトップを提供

落合陽一

エヌユルさんのツイート: "亀ツイートだけど 落合陽一がPEZY擁護で金子を叩いてたが HPC素人の私でもRaspberry Piを繋いて並列処理キタコレとか言ってた人と同じサイドに立ちたくないので早く落合陽一がはPEZYを叩く側に回ってほしい"
闇ときどき豚さんのツイート: "@tanakh これです https://t.co/v85M6OV0CB"
落合陽一/Dr.YoichiOchiaiさんのツイート: "ラズベリーパイゼロは今年の衝撃ランキングでもだいぶ上位だったな.1GHz・512MBメモリの600円.10台買っても6000円,100台で6万円.1000台買えば,メモリだけで500GBだし,CPU1000個.並列処理キタこれな感じ.授業で配れる価格だし,これはステージ変わるわ."
Hideyuki Tanakaさんのツイート: "ま、まじかあ…(´・_・`) https://t.co/yVyoCrvh2m"
opensorterさんのツイート: "#人工知能にとても詳しい落合陽一… "
アムダールの法則 - Wikipedia
Amdahl's law - Wikipedia

Raspberry Pi - Teach, Learn, and Make with Raspberry Pi
Raspberry Pi - Wikipedia
Raspberry Pi - Wikipedia
Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
Raspberry Piでイーサネットコンバータを作る
Raspberry Piで無線LAN
Raspberry Pi ZeroとUSBオンリーでLチカまで - akimachoのはてなブログ
Raspberry Pi でパケット遅延器
Fadisさんのツイート: "RasPiが使ってるCortex-A7やCortex-A53というARMプロセッサは元々「高速なARMプロセッサの横にくっつけて、速い(けど消費電力がでかい)方のプロセッサを動かす程ではない処理はこのプロセッサで片付ける」ことで主にシステムの待機時の消費電力を抑える為に作られたプ… https://t.co/RQk0AYxBVJ"
Fadisさんのツイート: "このためこれらのプロセッサは高速なARMプロセッサから急に切り替わっても大丈夫なように高速なARMプロセッサの全命令を一応受け付けられるようになってる。ただ、それらを高速に処理できるように実装しているとは一言も言っていない。SIMD命令とか処理するデータ数に比例して時間がかかる"
Fadisさんのツイート: "ところがCortex-A7やA53「だけ」を積んだSoCを作ると小さいダイでフルなLinuxが(全く性能は出ないが)動くSoCが作れてしまう為、これらを単体で積んだSoCがたくさん出てきた。イマドキの破格のARM Linuxボードの実現にはこうした斜め上のSoCが大きな役割を果た… https://t.co/RsHsRvP49E"
Raspberry Piに最適な小型ディスプレイ「Quimat 3.5インチタッチスクリーンディスプレイ」を素のRaspbianからセットアップする方法 - karaage. [からあげ]
Raspberry Pi で使えるポータブルモニタの決定版が出てた(タッチスクリーン付き、GPIOを占有しない、ケース付き、約3000円) - nomolkのブログ
Fmstrat/diy-ipmi: A DIY IPMI / IP KVM system utilizing the Raspberry Pi
Raspberry Pi 4のUSB Type-Cポートが規格に沿っていない話の詳細
A.Amag🌧️さんはTwitterを使っています: 「ラズパイの初期設定のときにHDMIのモニタが要るけど、そんなことのためだけにHDMIモニタ用意するの面倒だし、なんかいい手はないかなと思って、HDMIをUSBでキャプチャするやつを買ってみた。ノートPCのウインドウの1つがHDMIモニタになる。これ便利だわ。」 / Twitter
t157さんはTwitterを使っています: 「後輩が担当しているラズパイ案件で相談を受ける。 SPI1を使った通信においてMODE1の通信が出来ないとの事。 色々と調べてみると、どうもCPUのバグ(エラッタ)引っかかったっぽい。 またかよ。ラズパイ。 orz」 / Twitter
t157さんはTwitterを使っています: 「どうしてこうも、ブロードコムは、I2Cでもバグを抱えて、SPIでもバグを抱えてたりと、色々と問題を抱えているのに修正しないのかね? コミュニティのログを見るとブロードコムの部署を解散済みにしているようで、そんな所の製品を使うっていうのもどうしようもねえ製品だよな。と思ったり。」 / Twitter
norio@ゆるふわ系(希望)さんはTwitterを使っています: 「UrJTAGなるUSB Blaster (+Raspberry pi)で使えるフリーの JTAGバウンダリースキャンツールがあるみたい。 お手軽でいいかな https://t.co/zAob4g6JtJ https://t.co/DyqQ6zgk7E」 / Twitter
UrJtagを使う - PukiWiki
UrJTAG raspberry blaster - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています: 「やっぱりRasberry Pi 4でもARM Crypto extensionは入ってないのね。ライセンスフィーの話だろうけど」 / Twitter
Raspberry Pi Shop by KSY
日本で出たRaspberry Pi 4と電源問題とファームウェアの件 - あっきぃ日誌
Raspberry Pi 4が起動しない(モニタが映らない)場合の設定方法 - Qiita
BCM2711について - Qiita
BareMetalで遊ぶ Raspberry Pi 4 - GIC v2編-/BareMetal Raspberry Pi 4 - GICv2 - - Speaker Deck
FadisさんはTwitterを使っています 「初期のRasPiに使われているSoCの割込みコントローラはマルチコアに対応できる作りになっていなかった為、マルチコアになったRasPi2では割り込みコントローラが複数のっていた #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「これがRasPi4では複数のプロセッサと対面できる単一のGICv2に統合された #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「ベアメタルでRasPiを使う為にGICv2の初期化を手でやりたい → UART入力の割り込みを取れる状態を目指す #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「GICはSGI PPI SPIの3種類の割り込みをまとめて扱う石で、割り込み番号は3種類の割り込みの中でユニークな値を使う為、PPI SPIが使う割り込み番号は0から始まっていない #kernelvm」 / Twitter
Idein Ideas — GPGPUの観点から見る VideoCore VI と VideoVore IV の違い
RaspberryPiのVideoCore IV(GPU)を使ってOS無し(ベアメタル)からポリゴン出して遊ぶ - Qiita
1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - GIGAZINE
第624回 Raspberry Pi 4にデスクトップ版Ubuntuをインストール:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第643回 Raspberry Pi 4でデスクトップ版Ubuntu 20.10を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Raspberry Pi 4 のセットアップをしてみた - uchan note

ディスプレイ

その他

LG ディスプレイに貼り付けされていない PC リサイクルマークを無料で申請してみた – What I Know ~ワッタイナ
4K/HDR液晶を使うならWindows 10、Sandy Bridgeの時には難しかった高解像度環境が身近に - AKIBA PC Hotline!
4Kの基礎知識① RED社の4Kテクノロジーの変遷 | 4K入門 高精細映像の世界 | Shuffle by COMMERCIAL PHOTO
手軽につなげて高性能:時代を先取り! 「USB Type-C拡張機能」対応の新型デバイスを選ぶ (1/2) - ITmedia PC USER
ITmedia流液晶ディスプレイ講座III:HiDPIやRetinaを誤解してない?――4K時代のディスプレイ選びに欠かせない「画素密度」を理解する (1/4) - ITmedia PC USER
ドットバイドットとは|dot by dot - 意味 / 定義 / 解説 / 説明 : IT用語辞典
【解説】ディスプレイケーブルのコネクタについて - ELECOM WEB SITE!
最新ディスプレイ講座――HDMI、DislplayPortから先進のUSB Type-Cまで映像入力インタフェース徹底解説 | EIZO株式会社
Shirouzu Hiroaki(白水啓章)さんのツイート: "有機EL「テレビ」は、白色発光+カラーフィルタ、主流なのね…RGB発光と思い込んでいた。 3色フィルタは効率1/3=消費電力が大きい理由の一つかな? (白色を含む4色フィルタというのもあるらしい)"
SODA Noriyukiさんのツイート: "サイズが小さいものはRGB発光、大きいとRGB発光のものは実用化できてなくてすべてがLG電子の白色+カラーフィルタと、サイズによって完全に住み分けされてるっぽいですよね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "みたいですね。 有機ELなのにカラーフィルタって、やや騙された感がありました(笑)… "
16K/60p HDR対応の「DisplayPort 2.0」'20年認証開始。DisplayHDRは有機EL/microLEDにも - AV Watch

マルチディスプレイ

Z87-PRO:オンボード出力とグラフィックカード出力の同時利用(マルチディスプレイ)について
マルチディスプレイのまとめスタイル修正: Intel IGP
マルチモニター(マルチディスプレイ)を活用する【液晶モニタの基礎知識】
マルチディスプレイの方法 パソコン初心者講座
マザーボードでマルチディスプレイ パソコン初心者講座
Windows TIPS:ノートPCでデュアルディスプレイの表示設定を変更する - @IT
業務効率が一気に上がる、実践!マルチディスプレイ - 余ったディスプレイをつなげばすぐにできる、マルチディスプレイの基本:ITpro

HDMI

HDMI CEC

ビエラリンク - Wikipedia
ブラビアリンク - Wikipedia
Nintendo Switch発売、ソフト更新でHDMI CEC対応。FB/Twitter投稿も - AV Watch
デジモノ家電を読み解くキーワード:「HDMI CEC」――AV機器メーカーによる囲い込みポイント - ITmedia LifeStyle
HDMI CECとはテレビやレコーダーなどの機器間で制御信号をやり取りするリンク機能 | ホームシアターナビ

HDMI - Wikipedia
HDRフォーマットの伝送に対応したHDMI 2.0aが発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】GPUの真の性能を活かすHDRに、2016年からRadeonが対応へ - PC Watch
HDMI Licensing、2.0規格で定められた新機能を解説 - PC Watch
HDMI Forum、次期HDMI規格2.0を発表 ~4K@50/60、32オーディオチャンネルなどに対応 - PC Watch
WQXGA/48bitカラーをサポートした「HDMI 1.3」説明会
<CES>新規格「HDMI 2.1」を策定メンバーに聞く。 “48Gbps”の意味とは? いまのケーブルは使える? - Phile-web
[CES 2017]「HDMI 2.1」が規格化。“HDMI版Adaptive Sync”な「Game Mode VRR」や8K/60Hz,4K/120Hz表示などが目玉に - 4Gamer.net
「HDMI 2.1」が発表 - 8K/60Hzに対応、新たにゲームモードも | マイナビニュース
HDMI ケーブルのイーサネット対応と非対応の違い
「HDMI 2.0」から「HDMI 2.1」になると一体何が変わるのか? - GIGAZINE
ARC対応ってなに?
Fadisさんのツイート: "HDMIにはロゴを表示すると最終製品のロイヤリティが下がる、という決まりがあって今日多くのHDMI対応製品がロゴを表示してるわけだけど、スーパーファミコンにHDMIって書かれてるのじわじわくる https://t.co/vlqJdNajIN"
10Kまで対応する「HDMI 2.1」が公開。ゲーム向け同期機能など搭載 - PC Watch
【西川善司の大画面☆マニア】HDMI 2.1とは何か。8K/60Hzや動的HDRだけでない、次世代ディスプレイにもたらす変化-AV Watch
【西川善司の大画面☆マニア】8Kだけじゃない! ブラックアウト回避やeARC、あなたの知らないHDMI 2.1の世界-AV Watch
4K/8K映像対応で“曲げても踏んでもOK”なHDMI光ケーブル。56Gbps伝送も - AV Watch
「HDMI 2.0」で一体何が新しくなって大幅に強化されるのかまとめ - GIGAZINE
対応テレビの準備も完了? 「HDMI 2.1」最新動向をHDMI Licensing CTOに聞く - PHILE WEB
HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査 - .mjtの日記復帰計画
SD-HDSPRL【Kyo-ons SEPARATOR】
Dolby Digital Live を手作りしたい実験 - Qiita
取り回ししやすい「HDMI 2.1」対応ケーブルはどれなのか一斉比較レビュー - GIGAZINE

Adaptive-Sync/FreeSync

GPUとディスプレイを自動同期する機能がDisplayPortに実装 ~テアリングを解消し、消費電力も削減 - PC Watch
ゲームがよりなめらかに、FreeSyncで最高の描画品質を楽しむ - AKIBA PC Hotline!
西川善司の3DGE:AMD,HDR対応の「FreeSync 2」を発表 - 4Gamer.net
NVidia、ついにAdaptive-Sync/FreeSyncに対応 | スラド ハードウェア
NVIDIA,「G-SYNC Compatible Monitors」プログラムを開始。Adaptive-Sync対応ディスプレイ12製品でG-SYNCの利用を可能に - 4Gamer.net
Announcing G-SYNC Compatible Monitors and BFGD Pre-Orders
GeForce G-SYNC Monitors: Manufacturers & Specs
AMD、FreeSync Premium ティアを発表、FreeSync 2 HDRをPremium Proにブランド変更 - 自作ユーザーが解説するゲーミングPCガイド

RGBW

RGBWとは - IT用語辞典 Weblio辞書
Sony Japan | ニュースリリース | デジタルカメラ向け新開発「RGBW方式」の3型VGA液晶モジュール“WhiteMagic™ ”(ホワイトマジック)※1を商品化

HDR

HDR10+

HDR10+ License Program
HDR新規格「HDR10+」対応製品がまもなく。パナやSamsung、ワーナーも対応 - AV Watch
【本田雅一のAVTrends】一見地味なHDR新規格「HDR10+」が、多くの消費者に魅力的な体験をもたらすかもしれない - AV Watch
パナソニックとフォックスがSamsung提案のHDR方式「HDR10+」を推進へ - AV Watch
SamsungとAmazon Video、HDRの拡張規格「HDR10+」発表。今年後半にコンテンツ配信 - AV Watch
サムスンとAmazon Video、「HDR10」を拡張した新規格「HDR10+」を発表 - Phile-web
<IFA>「HDR10+」とは何か、パナソニックがなぜ推進するのか。サムスンと手を組んだねらい - PHILE WEB

DisplayHDR

Vesa Certified DisplayHDR™
VESA Defines New Standard to Help Speed PC Industry Adoption of High Dynamic Range Technology in Laptop and Desktop Monitor Displays | VESA
VESA、DisplayHDR対応確認アプリをMicrosoft Storeで公開 - PC Watch
VESAがHDR標準「DisplayHDR」策定 PCディスプレイの性能を底上げ - ITmedia NEWS
VESA,HDR対応液晶ディスプレイの標準規格「DisplayHDR」を発表。対応製品は早ければ2018年に登場か - 4Gamer.net
VESA、HDRに関する標準規格「DisplayHDR」を策定 ~輝度やコントラスト比などを厳密に規定 - PC Watch
Samsungの49型ゲーミングディスプレイが、業界初のDisplayHDR 600認定 - PC Watch
日本初HDR 1000液晶モニタや4K放送チューナ、痛4K中継車も。「4K・8K機材展」 - AV Watch
【PR】1,000nitの高輝度とHDRでゲームはここまで変わる! PhilipsのDisplayHDR 1000対応液晶を西川善司氏が徹底解剖- PC Watch

High-dynamic-range video - Wikipedia
Rec. 2100 - Wikipedia
Hybrid Log-Gamma - Wikipedia
よくわかる、HDR徹底解説! ガンマカーブの違い | EIZO株式会社
UHDTV HDR,HLG & WCGを理解する by LightIllusionに関する製品情報|クリエイティブサポートカンパニー Edipit
4Kテレビ選びの重要ワードHDR=「HDR10」「Dolby Vision」「HLG」って何? - 価格.comマガジン
4K HDRとDolby Visionはどう違うのか? (1) CES 2016で見たホームエンターテインメントの進化 | マイナビニュース
Dolby Vision方式のUltra HD Blu-rayが'17年発売。ワーナー、ユニバーサルなど - AV Watch
いま注目の高画質化技術「HDR」とは何か? ドルビーの真野ディレクターに聞く - Phile-web
HDR10とは? ゾーンとは? Blu-ray Copyはどうなる?「Ultra HD Blu-ray」の詳細を聞く(後編) (1/4) - Phile-web
【イベントレポート】NVIDIA、65型の4K/HDR/120Hz/G-SYNC対応となるBig Format Gaming Displaysを提唱 ~8コアCarmel CPU+512CUDAコアのVolta GPUとなるXavierも発表 - PC Watch
ソニー、Microsoftらがゲーム向けにHDRガイドライン団体「HGiG」を発足 - PC Watch
Razer PhoneがNetflixのHDR再生に対応 | ガジェット通信 GetNews
Rec.2020とBT.2020の違いとは
PCとモニターがHDRへ対応しているかの判別方法
【プレイバック2018】液晶テレビ“視野角問題”に終止符? HDR動向とこれから by 本田雅一-AV Watch
SODA Noriyukiさんのツイート: "HDR は 何nits まで要求するかが大問題ですね… 1000nits のモニターっていうと PG27UQ と UP2718Q の2機種しか候補が残らないような気が…(正しい?)… "
Fadisさんのツイート: "こっちで探した時もその辺しか見つかりませんでしたね… "
FadisさんはTwitterを使っています: 「4K HDRで画面が暗くなる問題、以前は扱える色の範囲が狭すぎるからテレビ側で信号に厚化粧してたのが、広範囲の色を扱えるようになったからテレビは信号通りの色を出すようになったけど、撮影設備、放送設備その他の対応が出来てなくて狭い範囲の色がそのまま画面に反映されてるって話なんだよな」 / Twitter
HDR Ecosystem Tracker update fall 2019

半導体/周辺機器 液晶ディスプレイ - PC Watch
BCNランキング - BCN+R
60B4RAR6JP | モニター ThinkVision | 製品情報 | Business with Lenovo
BenQ 23.8型アイケアディスプレイ GW2480 | BenQ Japan
地上・BS・110度CSデジタルハイビジョン液晶テレビ TH-L19C3 詳細(スペック) | テレビ/シアター | Panasonic
三菱 ディスプレイ
今すぐやるべき「ディスプレイの設定」と「4K以上の高解像度ディスプレイ」に買い替たほうがいい理由 - GIGAZINE
USB-C対応のモニターが増えているのは何故? | ギズモード・ジャパン
【2019年版】USB PDで電源供給!USB-C対応ディスプレイ全75製品まとめ!最強ディスプレイはどれなんだ……? | makkyon web
LG、ディスプレイ位置が自在に調節可能な4K液晶など2020年モデルを発表 ~4K/144Hz/1ms対応ゲーミング液晶や、Thunderbolt 3搭載製品も登場 - PC Watch
Dell、世界初のカラーキャリブレータ内蔵27型4K液晶 - PC Watch
デル、USB Type-Cで65W供給可能な27型4K液晶 - PC Watch

PCIe

slankdevさんのツイート: "PCのMBがPCIe x16なのに内部がx4という原因で3時間溶けた。勉強になった"
DMA(Direct Memory Access)関連調査メモ - DXR165の備忘録
ACPI DMARメモ - 睡分不足
VFIOによるデバイス操作 - 睡分不足
【特集】ビデオカードはPCI Express x16接続が必須かどうかを検証してみた - PC Watch
PCI-SIG、16GT/sを実現するPCI Express 4.0規格Ver 1.0を公開 - PC Watch
PCI-SIG、4.0の2倍の転送速度を実現する「PCI Express 5.0」規格を策定 - PC Watch
PCI-SIG、x16で256GB/sの高速転送を実現する「PCI Express 6.0」 - PC Watch
Intel、PCIe 4.0/Optaneメモリに対応したFPGA「Stratix 10 DX」 - PC Watch
PCI-Express Gen 6.0仕様策定は2021年までに完了する - 自作ユーザーが解説するゲーミングPCガイド
CCIX vs CXL(4) CCIXとよく似た別のモノ「CXL」とは何なのか? | マイナビニュース
Download the Specification | Compute Express Link
なぜPCI Expressはエンベデッド・クロック方式を採用した? - パソコンの選び方と買い方
FadisさんはTwitterを使っています 「来年の完成を目指すPCI-Express 6.0の最初のドラフトが出たらしい。PCI-Express 6.0はようやく製品が出てきたPCI-Express 4.0の次の次の規格で、PCI-Express 5.0の倍となる64GT/sでの通信が可能 https://t.co/RzuauPNu2b」 / Twitter
PCI Express 6.0 Reaches Version 0.5 Ahead Of Finalization Next Year - Phoronix
FadisさんはTwitterを使っています 「PCI-Express、規格としてはどんどん速くなるんだけど、正しく動くための要件もどんどん厳しくなっててハード屋さんが乗り気じゃなくなってるんだよな」 / Twitter
【連載】CCIX vs CXL | マイナビニュース
北森瓦版 - PCI-Express 6.0 ver. 0.7がリリースされる―2021年の規格策定完了を目指す
PAM4採用で速度2倍の「PCI Express 6.0」仕様が確定 - PC Watch

ストレージ

その他

blog

SSDについて勝手に語る : sside.net
ベルQ(手動RTbot)さんのツイート: "【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い - ニッチなPCゲーマーの環境構築 https://t.co/1SclTqPQaR 1年前の記事だけど まぁ大容量書き込みする人がそんなに居ない現実もある"
【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い : ニッチなPCゲーマーの環境構築
SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe) - uchan note

Storage Reviews - CNET
VIOPS10: SSDの基本技術と最新動向
AIF-06 | Ainex
SSD ドキュメント | タイプ別 Download | サポート | Samsung Semiconductor Global Website
個人向けSSD | 製品別 Download | サポート | Samsung Semiconductor Global Website
SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
Data degradation - Wikipedia
WD、2020年に世界最大容量の20TB HDD投入 ~CMR方式の18TB HDDも - PC Watch
トリムの概要
FadisさんはTwitterを使っています 「erase block sizeを公表しないSSD屋、やる気が足りないのでは」 / Twitter
キオクシア、Ethernet接続型のNVMe-oF対応ストレージ - PC Watch
東芝、Ethernetから直接アクセスできる「NVMe-oF SSD」試作機を開発 ~ランダムリード1,600万IOPSを実現 - PC Watch

SD

PC Watch

最大985MB/sを実現する高速SDカード規格「SD Express」 ~最大128TBの「SD Ultra Capacity」も策定 - PC Watch
PCIe/NVMeで最大転送速度985MB/sを実現する「microSD Express」 - PC Watch
【イベントレポート】実測で888.5MB/sを実現するPCIe/NVMe SDカードの仕様が公開 ~WDがいち早くデモを実施 - PC Watch
【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
東芝メモリ、ほぼmicroSDサイズで最大8GB/sのリムーバブルメモリ「XFMEXPRESS」 - PC Watch
PCI Express 4.0採用で最大4GB/sを実現した「SD 8.0」規格 - PC Watch

GIGAZINE

microSDカードの「A2規格対応」にパフォーマンス向上の意味はないとエンジニアが主張 - GIGAZINE
microSDカードのA1規格対応品は最低基準の2倍の性能を発揮しA2規格対応品を超えることがある - GIGAZINE
microSDカードより小さい「NMカード(ナノメモリーカード)」をHuaweiが発表 - GIGAZINE
SDカードの新規格「SD 8.0」が登場、PCI Express 4.0採用で最大4GB/sの転送速度を実現 - GIGAZINE

FlashAir Developers - upload.cgi
PQI Air Card - PQIグループ- モバイル向け周辺機器の総合メーカー  [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
SDA、Ver 6.0仕様のA2規格とLVS仕様を追加 - EE Times Japan
第789回:Application Performance Class 1(A1)とは - ケータイ Watch
第882回:SDUCカード とは - ケータイ Watch
転送速度985MB/秒の高速SDカード「SD Express」発表。128TBのSDUCも - AV Watch
ぉゅぅさんはTwitterを使っています: 「あるある... SD hostのレジスタなんかは規格で一緒のはずなのに ベンダ依存とか ソコを使うためのお膳立てが違うのよね. 最悪なのは続いてるツイートのような ほかの機能と混ざってるようなところとか怪しい挙動... SoCベンダが大きく情報を出してくれないと推定もアタリもつけるのが大変よぬ... https://t.co/pz07dLD9WJ」 / Twitter
ぉゅぅさんはTwitterを使っています: 「まぁなによりもベンダが提供してくれないってところがアレなんですがねぇ... (あっちからしたら 数量出ないのに面倒見てられるかよってことなのかもしれないけれど #何の話だ」 / Twitter
1TBのMicroSD及びSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
高速なSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
FadisさんはTwitterを使っています 「SPI mode、SDカードが本来のプロトコルではなく、3ピンだけを使ってSPIをしゃべるようになるモード。SPI対応のマイコンで読む時とかに便利。SDカードのプロトコルにはライセンスまわりの面倒があるが、この方法なら回避できる。ただし遅い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「SDカードの新しい規格SD 8.0が完成したらしい。端子が2列から3列になり、SD ExpressでPCI-Expressを喋る時に2レーンで通信できるようになる。これに加えてPCI-Express 4.0に対応することで、従来のSD Expressの約4倍となる4GB/sでのデータ転送を実現する https://t.co/rUkaSR9Ij6」 / Twitter
SD 8.0 Specification To Allow 4GB/s Transfer Rates By Leveraging PCIe 4.0 - Phoronix
FadisさんはTwitterを使っています 「SD 7.1のSD Expressは帯域を最大まで使えるデバイスが登場すると「お前のSATA SSDはSDカードより遅い」が発生するデバイスだったけど、SD 8.0のSD Expressは「お前のNVMe SSDはSDカードより遅い」が狙えるデバイスになるのか…」 / Twitter

SATA

HDD

SATA I

Samsung HM020GI 1. Specification Summary

SATA II

Toshiba MK6034GSX Specs - CNET

512

Toshiba MK3276GSX Specs - CNET
Amazon | 東芝 512セクター 2.5インチ SATA接続ハードディスク 5400rpm 320GB MK3276GSX | 東芝(TOSHIBA) | 内蔵ハードディスク 通販

3.5インチHDD、内蔵と外付けで消費電力を計測しその差を確認してみた - みこぼね
東北大と京大、HDDの超高密度化が期待できる反強磁性体スピントルク磁気メモリを実証 - PC Watch
Fadisさんのツイート: "SSDの陰であまり注目される事はないけど、ハードディスクもじわじわ速くなってて、Intel SSDが最初に注目された頃は120MB/s出せるハードディスクは優秀だったのに、今では200MB/s超えてきたりするんだよな"
Fadisさんのツイート: "NVMeが3000MB/sとかやってる前では誤差のようなものかもしれないけど"
「2019年はPC用HDDの販売数が半減する」とHDD部品で世界シェア1位の日本電産が予測 - GIGAZINE

Advanced Format

512e

MQ04AB*** Series | 東芝 半導体&ストレージ製品
Amazon | 東芝 HDD MQ04ABFxxx シリーズ ( 2.5インチ / SATA 6Gbit/s / 1TB / 5400rpm / 128MiB / 7mm / 512e エミュレーション ) MQ04ABF100 | 東芝(TOSHIBA) | 内蔵ハードディスク 通販

4K

MG04ACA**** シリーズ | 東芝 半導体&ストレージ製品
Toshiba MG04ACA500A Specs - CNET
Amazon | Toshiba mg04aca500 a 3.5インチ5tb SATA 6 Gb / s 7.2 K RPM 128 MB 4 KNTomcatベア | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
MARSHAL/マーシャル 東芝製 3.5インチHDD 4Kネイティブモデル Ma series 5TB 7200rpm MG04ACA500ABOX [1523286254-21942] - 39,794円 :
東芝(TOSHIBA)製HDD_リテール品_MG04ACAxxxABOXシリーズ

Advanced Format - Wikipedia
HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブの違い - ぼくんちのTV 別館
アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行|Seagate
HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
アドバンスト・フォーマット | 東芝 ストレージ&デバイスソリューション社
Advanced Formatの識別方法 - ハードディスク入れ替え13 FAQ
ASCII.jp:Windows 8は2.2TB超の大容量HDDにどう対応しているのか? (2/3)|塩田紳二のWindows 8 IN-N-OUT
Windows での 4K セクターのハード ディスク ドライブに関するマイクロソフトのサポート ポリシー
【HDD】4Kセクタって何?/4Kセクタの制限事項は?/Windows7でバックア...

SSHD

Seagate Laptop Thin SSHD ST500LM000 Specs - CNET
Amazon | Seagate 2.5inch Hybrid Laptop Thin SSHD ST500LM000 SATA 6Gb/s 500GB 5400rpm 64MB AF | SEAGATE | 内蔵ハードディスク 通販
ゲーム1本60GB!大容量ゲーム時代に使う「SSHD」 ベンチマークにでない「体感」を試してみた - AKIBA PC Hotline!

SMR

Seagate Mobile ST1000LM035 Specs - CNET
Seagate Mobile ST2000LM007 Specs - CNET
Amazon | [SEAGATE] シーゲート 2.5inch HDD 1TB SATA 6.0Gbps 5400回転 7mm厚 128MBキャッシュ ST1000LM035 [並行輸入品] | Mobile HDD | 内蔵ハードディスク 通販
価格.com - SEAGATE ST2000LM007 [2TB 7mm] 価格比較
SMR(瓦書き方式)のHDDは避けるのがオススメ | Kanon好きさんの掲示板 | マイネ王
備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
最安の8TB HDD「ST8000AS0002」をテスト、SMR技術を再確認 - AKIBA PC Hotline!
“10TB時代”に向けた最新HDD技術「SMR」のポイントを Seagateに聞いてみた - AKIBA PC Hotline!
【福田昭のセミコン業界最前線】10TBの大容量HDDを実現した「SMR技術」登場の背景 - PC Watch
SMR な HDD で記憶域パリティ備忘録
価格.com - 『このHDDはSMRです』 SEAGATE ST2000LM007 [2TB 7mm] のクチコミ掲示板
備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
新技術『SMR』が可能にした低コストで省スペースな大容量HDD - Seagate Desktop HDD(8TB)のレビュー | ジグソー | レビューメディア
ASCII.jp:ヘリウム充填HDDの8TB「WD80EFZX」を触ってみた (1/3)|最新パーツ性能チェック
HDDのSMR技術とはなにか:T43p SATA化ブログ改めパソコン色々ブログ:So-netブログ
個人的にSSDを信用していない理由、そしてSMRが好きではないという理由。 – ひねもす庵
DEIM.pdf
WDの技術者ら、瓦記録方式HDDの開発で文部科学大臣賞を受賞 - PC Watch
なかのん&マジックさんのツイート: "ランダムアクセスのテストが雑すぎて信頼できない。SMRは最初のArchiveHDDで(覚悟してた以上に)痛い目にあってるんで、抵抗あるんだよな。 https://t.co/KPI5PNCY7R"
最新HDDはどれだけ進化したのか、2011年の大人気モデルといろいろ比べてみた - AKIBA PC Hotline!
ネットの論客にファイナルアンサー!? ~「もしかして……SMR!?」。最新2TBプラッタHDDをとことんイジメる - PC Watch
第556回 SMR方式のHDDでも実用できるか検証する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
WDのNAS向けHDD「WD Red」の記録方式が「RAIDに不向き」な仕様にこっそり変更されていたことが判明 - GIGAZINE

M.2

【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
品川研究室@学生募集中さんのツイート: "AHCI は 1.3.1 までしか規定されてませんが、SATA 3.2 で 20 Gbps が定義されたので、そこで AHCI の拡張も定義されていたりするんじゃないですかね。仕様書が非公開で分かりませんが。… "
品川研究室@学生募集中さんのツイート: "AHCI の ISS は 4 ビットあるので、いかにも 0100 あたりが使われてそうです。BitVisor でフックして調べてみると面白いかもしれません。… "
hiyohiyoさんのツイート: "SATA の規格書を読んでも AHCI + PCIe の組み合わせの速度を判定する機能がないようなので、CrystalDiskInfo では、PCIe のリンク速度とバージョンを表示しています。 1000MB/s を軽く超えるものの ATA コマンドでは判定する術がなさそうで・・・ 早く滅び去って欲しいところです。… https://t.co/9IJVXkUT80"
OS自作 uchan_nosさんのツイート: "なるほど。実際に、コントローラのレジスタでは判断できない、規格無視した速度のデバイスが存在するんですね。… "
hiyohiyoさんのツイート: "コントローラーのレジスタに直接アクセスするというよりは、IDENTIFY DEVICE コマンドの結果は SATA/600 対応なので、判別できないというのが正確ですね。 何らかの方法はあるのかもしれませんが・・・… "
OS自作 uchan_nosさんのツイート: "なるほどー。やはり、ソフトウェアには適当な値を見せておいて、物理層ではその速度より速い通信をしてしまう、という仕組みなんですねえ。… "
hiyohiyoさんのツイート: "手元にも 2 枚ほどありますが、過渡期の製品って感じで使い道は限られますねぇ~ 現在は、 M.2 + NMVe に統一されているのであまり気にする必要はないかと思います。 ただ、自作 OS 的には ATA コマンドで制御できる(既存OSと互換性あり)のは便利ですね。… https://t.co/xidMsAaGB6"

SATA Express

ASCII.jp:SATA3.2の仕様策定で見えてきたSATA ExpressとM.2 (1/3)|ロードマップでわかる!当世プロセッサー事情
ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中|COMPUTEX TAIPEI 2014レポート
4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER

シリアルATA - Wikipedia
Serial ATA - Wikipedia
HotSwap!
Transcend SSD370S Specs - CNET
SATA-III 6Gb/s SSD220
製品の仕様情報 - Intel® SSD 330 Series (180GB, SATA 6Gb/s, 25nm, MLC)
CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Overview - CNET
2.5/3.5インチHDD 各1台を5.25インチベイに簡単増設|オウルテック
玄人志向 | SATA3I2-PCIe:Marvell社製 88SE9128搭載 SATA3x2 インターフェースボード(PCI-Express x1接続)
玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 - サンワサプライ株式会社
ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)|本命が続々登場!! mSATA SSDに大注目

NVMe

なかのん&マジックさんのツイート: "NVMe SSDに関しては、自作PCで色々と試してる身からすると、ノートPCが薄型になることとと、「単純な」ファイルコピーが高速になるぞってこと以外に、2.5インチSATA SSDからのメリットが全く無くて、色々とアレです。… "
なかのん&マジックさんのツイート: "NVMe SSDが高速で良いって言ってる人、たぶんベンチマークしか見てないか、単純なファイルコピーとかが日常作業で多い人だと思う。"
なかのん&マジックさんのツイート: "Windowsでしか比較検証してないんで、他のOSだと知らない。"
一ノ瀬 いろはさんのツイート: "NVMe SSD の評価、私のTL だとサーバー用途に使う基準で話す人が多すぎてよくわからない感じに。 とりあえず熱がしんどいらしい。"
なかのん&マジックさんのツイート: "放熱まではちゃんと検証できてないなぁ。あくまでも、860EVOについてる、ヒートシンクを兼ねたあのシールとのテストだけ。ただ、NVMe SSDにはファンの風を直接当てるようにしてて、空冷レベルではそれなりにやってる構成で確認してる。"
Sadayuki Furuhashiさんのツイート: "2017年の資料だけども、NVMeは12us程度のレイテンシがあるのに対し、NVMDIMM(-N)は3us。 https://t.co/MQv4ABzgWB"
Title of Presentation
SSD市場の主流に躍り出るNVMe SSDストレージ、なお残る課題は? - TechTargetジャパン サーバ&ストレージ
ASCII.jp:いまさら聞けないIT用語集 RAIDのボトルネックを解消するVROC (1/3)|ロードマップでわかる!当世プロセッサー事情
Kimihiro Nonakaさんのツイート: "へぇ | Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ https://t.co/DHM3MX2kgt"
Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ
Fadisさんのツイート: "我が家のNVMeにはCMBも仮想化支援も無いことが明らかになった。かなしい"
Kazuo Moriwakaさんのツイート: "NVMe Firmware: I Need Your Data – Technical Blog of Richard Hughes https://t.co/afGViyrKEt Linux上でファームウェア更新基盤つくってる人がNVMeデバイスのID情報がほしいらしい。NVMeがついたLinux環境持ってる人は記事中にあるコマンドを打ってID情報送ってあげるとよさそう。"
NVMe SSDの外付けケースもカバー ~ディスク健康管理ツール「CrystalDiskInfo」v7.7.0 - 窓の杜
Fadisさんのツイート: "最近のNVMe SSDがどのメーカーも3400MB/sとかその辺で並び始めてるの、あれPCI-Express Gen3 x4の帯域の限界が近いんだよな。で、何でもっと太いPCI-Expressにしないかというと、NVMe SSDの一般的なフォームファクタになっているM.2のM keyからはPCI-Expressが4レーンしか出ていないんだ。"
WD、メインメモリのように使えるNVMe SSD ~仮想メモリでメモリ容量を8倍に拡張 - PC Watch
【イベントレポート】ついに4GB/s超え。世界初のPCIe 4.0対応SSDコントローラ登場 - PC Watch
第5世代V-NANDの優位が歴然! PCI Express SSDの新定番「970 EVO Plus」の爆速性能を確かめる(ITmedia PC USER) - Yahoo!ニュース
hiyohiyo (Noriyuki Miyazaki)さんのツイート: "Reference Guideを入手してから約半年、ついにIntel RST NVMe対応することができました! 動作確認ができたら正式版としてリリースします。"
Reference Guide Intel RST - Google 検索
SSD価格、2019年末までに1GBあたり10円台まで下落の見込み ~SATA SSDとの価格差解消でPCIe SSDが主流に - PC Watch
【平澤寿康の周辺機器レビュー】2TBに到達したSamsung 「970 EVO Plus」SSD。1TBより高速 - PC Watch
Samsung、書き込みも3GB/s超えのNVMe SSD「970 EVO Plus」2TBモデル - PC Watch
【イベントレポート】1,500万ドル超を投じて9カ月で完成させたPhisonの世界初PCIe 4.0 SSDコントローラ - PC Watch
Fadisさんのツイート: "cpの実装が残念でコピーが遅いという話。一度に読み書きするサイズが小さすぎる、一度しか読まないデータをpage cacheに乗せている、分散fsなら同時に複数箇所の読み書きをした方が良い、デバイスがコピー用の仕組みを持っているかも等が指摘されている(リンク先有料記事) https://t.co/onJY1Wtq8p"
Fadisさんのツイート: "そういえば、良いNVMeだとデータをメインメモリに持って来ずにブロックのコピーが出来るよね"
【イベントレポート】Realtek、NVMe SSDのDRAMキャッシュ必要量を4分の1に低減 - PC Watch
【イベントレポート】ADATA、Silicon Motion製コントローラ採用のPCIe 4.0 SSDを展示 - PC Watch
【イベントレポート】GIGABYTE、リード5GB/s超えのPCIe Gen4接続SSD ~実測値15GB/sの超高速PCIeカードSSDも - PC Watch
【イベントレポート】PCIeの高速化と3D NANDの低速化による性能ギャップがSSDで顕在化 - PC Watch
【イベントレポート】Samsung、リード最大6,500MB/sのPCIe Gen4対応M.2 SSD「980 PRO」 - PC Watch
M.2 SSDをPCIeスロットから交換可能にするリムーバブルケース「ICY DOCK ToughArmor MB840M2P-B」レビュー - GIGAZINE
Crucialの新型NVMe SSD「P5」がデビュー、最大2TBまで計4製品 - AKIBA PC Hotline!
won't fix: キオクシアのNVMeを買ったらハマった
Samsung、PCI Express 4.0対応SSD「980 PRO」を10月中旬に発売 - PC Watch
【Hothotレビュー】7GB/s級の転送速度を実現したSamsung初のPCIe 4.0 SSD「980 PRO」を試す - PC Watch

NVMe 1.1

MZVPV128HDGM - Client SSD | Samsung Semiconductor Global Website
Samsung Electronics Now Producing Industry’s First M.2 NVMe PCIe SSD for the PC Market – Samsung Global Newsroom
Samsung、世界初のNVMe対応M.2 SSD「SM951」を量産開始 ~PCI Express x4(3.0)対応で最大2,260MB/sec - PC Watch
価格.com - サムスン SM951 MZHPV128HDGM スペック・仕様
コストパフォーマンスが良いのでは? - SM951 256GB M.2 PCIe Gen3 8Gb/s x4 SSD MZHPV256HDGLのレビュー | ジグソー | レビューメディア
[画像] NVMeとAHCIの違いを理解する ~SSDのインターフェースを理解する 3~(5/7) - AKIBA PC Hotline!
リード2GB/s超えのM.2 SSD「SM951」に安価なNVMeモデルが登場 - AKIBA PC Hotline!

NVMe 1.2

SSD 960 EVO M.2シリーズ | Samsung SSDシリーズ
【詳報】Samsungの新SSD 960 PRO/EVOは10月発売。価格も明らかに - PC Watch
価格.com - サムスン 950 PRO M.2 MZ-V5P256B/IT スペック・仕様

NVMe 1.3

【レビュー】Samsung、第3世代のNVMe/PCIe SSD「970 PRO」、「970 EVO」 - PC Watch
Samsung、読み込み3,500MB/sのNVMe SSD「970 EVO」、「970 PRO」 - PC Watch
Silicon Motion、読み書きとも3GB/sを実現するNVMe SSDコントローラ - PC Watch
【イベントレポート】Silicon Motion、PCIe 3.0 x4/NVMe 1.3対応SSDコントローラ新モデルを展示 ~搭載製品は2017年第3四半期以降に登場予定 - PC Watch
64層3D NANDで生まれ変わった、Intelの最新NVMe SSD「SSD 760p」検証 - エルミタージュ秋葉原
価格.com - インテル SSD 760p SSDPEKKW256G8XT スペック・仕様
製品の仕様情報 - Intel® SSD 760p Series (256GB, M.2 80mm, PCIe 3.0 x4, 3D2, TLC)
Intel® Solid State Drive 760p Series Product Brief
ASCII.jp:M.2 SSDの新定番か!?  安くて速い「Intel SSD 760p」 (1/2)|最新パーツ性能チェック
東芝メモリ、約3GB/sのライト性能を実現した業界最速クラスのSSD - PC Watch
【レビュー】Samsung、前モデルから50%以上高速化したM.2 SSD「970 EVO Plus」 - PC Watch
Samsung、最新V-NAND採用で高速化したNVMe SSD「970 EVO Plus」 - PC Watch

NVMe 1.4

NVM Express Set for Busy 2018 | EE Times

Fake RAID

Linuxキーワード - フェイク・レイド:ITpro
One Foot: CentOS 7 で Fake RAID を使用した RAID 構成
穀風: Ubuntu で FakeRAID/1
RAID - ArchWiki

FDD

sakohitiさんのツイート: "え、ふとアクセスしたら、ワイ・イー・データの事業統合に伴う合併で、会社と一緒にHPも消えちゃうのか・・・   しれっと3.5インチFDD製品の仕様pdf類が転がっていて、検索からならアクセスできたり、カードリーダーのドライバ類も置いてあったりと、重宝していたのですが。 orz… https://t.co/uni4AtUXOD"
sakohitiさんのツイート: "そういえばYD-702Dのページ https://t.co/PA9DxCeD4W (なぜかYD-702Jで検索すると出る)から拾える仕様書のpdfが2つと、普通に検索すると出てくるYD-702J-6639Dの仕様書のpdfの合計3つも回収対象ですね。 FDDメーカーの公式サイトに残っているほぼ最後の日本語資料だっただけに、これは惜しいです。"
sakohitiさんのツイート: "ちなみにドライバ類へは、トップページからのリンクが切られたまま放置されている情報マルチメディア事業のページから行く必要があるので、メモとして貼っておきます。 https://t.co/Q6TFl9KXNM"
マルチメディア_Internal Half-inch FDD_株式会社 ワイ・イー・データ
製品仕様書
528028.PDF
Z529020_A2.PDF

にわかに“ゼロSATA”構成が人気を集めている理由 (1/4) - ITmedia PC USER
Latency で見る Intel 3D Xpoint SSD - Fixstars Tech Blog /proc/cpuinfo
QLC NANDのtRを調べる - Fixstars Tech Blog /proc/cpuinfo

LAN

その他

HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
MACアドレスに関する注意事項
LANケーブルの正しい使い方 - LANケーブルの信号線がねじられている本当の理由:ITpro
LANケーブルの正しい使い方 - LANケーブルは規格値を超えたスピードで通信したらどうなる?:ITpro
MACアドレスについて教えてください。MACアドレスが消えてしまって... - Yahoo!知恵袋
Tech TIPS:ネットワーク・インターフェイスのMACアドレスを変更する - @IT
現代PCの基礎知識(11):現代のPCには欠かせない!ネットワーク | Think IT(シンクイット)
【新製品】 日本向けクイックコネクタ仕様の「G.Fast」も開発・発売|株式会社アイタス・ジャパンのプレスリリース
セイコーソリューションズ、NTPサーバーと同期するネットワーク型時計「NTPクロック」を販売開始 - クラウド Watch
Marvell、業界初の50GbE対応16ポートPHYトランシーバ - PC Watch
なかのん&マジックさんのツイート: "10GbEでもマルチギガには対応してないってパターンもやはりあるのかな? (全く分かってない)"
dynamis (でゅなみす)さんのツイート: "徐々に減っていくのかもてすが、あります。 必ずしも上位互換で全対応ではないです。… "
一ノ瀬 いろはさんのツイート: "あくまで別の規格、かつ 10Gbase-T より 2.5/5 Base-T の方が後の規格ですからね。 実装上の差分は小さいのでこれから作る分には対応しない理由は少ないですが、 10Gbase-T として作られた製品は後続の規格には対応出来ない事も多いはず。… https://t.co/99A9q2G78d"
Kazuho Okuさんのツイート: "あーなんか良く知ってる環境な気がするー… "
Fadisさんのツイート: "1500バイトのパケットが100GbEで流れてくる時、1パケットの処理に使える時間は120nsで、DRAMに何かを読みに行くとそれだけで50nsから100nsくらい持っていかれる為「CPUのキャッシュに当たらなければ即死」というマゾプログラミング環境が誕生するらしい"
Kazuho Okuさんのツイート: "真面目な話すると、そういう環境だとマルチスッドレ化するのが最善だしみんな割とそうしてるんじゃないの? それでもいろいろチャレンジがあって面白いと思うけど"
【知識】コンセント経由でネットにつながる「PLC」って今どうなってるの? | &GP
高梨陣平さんはTwitterを使っています: 「DARPAが現在のNWの性能を100倍にする目標でプロジェクトFastNICを立ち上げ。現在のボトルネックはインターフェイスにあるとしてNICを捨て、NWスタックを一から作り直すという。また当然SWも新規開発が必要だとしている。ここでFastNICで開発されるSWはOSSになる予定だ。 https://t.co/L3CyFofo1A」 / Twitter
FadisさんはTwitterを使っています: 「夢のある話だけど、現代のネットワークのボトルネックって「性能が良くなくても互換のある方法を取らざるを得ないインターネットの古さ」と「現代の通信速度を想定して作られていないAPIに今尚依存するソフトウェア」であって、NICは順調に伸びてると思うんだ…」 / Twitter
800Gbpsを実現する有線LAN仕様「800GBASE-R」が発表 - PC Watch
光ファイバー盗聴・侵入を5秒でできるか実験してみました - DARK MATTER
【光Ethernetの歴史と発展】IEEE標準ではない光Ethernetの各規格、100G/400G/800Gですでに登場【ネット新技術】 - INTERNET Watch

Intel

インテル® PRO/100 デスクトップ・アダプター
インテル® PRO/1000 MT デスクトップ・アダプター・シリーズ
インテル® PRO/1000 PT デスクトップ・アダプター・シリーズ
インテル® ギガビット CT デスクトップ・アダプター シリーズ
製品の仕様情報 - Intel® Ethernet Converged Network Adapter X540-T1
製品の仕様情報 - Intel® Ethernet Server Adapter I210-T1
製品の仕様情報 - ギガビット・イーサネット・アダプター
北森瓦版 - Intel 低価格な2.5Gbps Ethernet PHYであるi225-V―“Foxville”を準備中
I225 2.5GbeのZ490を含むIntel 400シリーズのチップセットには、ネットワークのバグがありますが、2020年下半期にされます。 - 自作ユーザーが解説するゲーミングPCガイド
Intel、「Killer NIC」で知られるRivet Networksを買収 - PC Watch
ホ タ テ ラ スさんはTwitterを使っています 「天下のいんてりゅさんでも、phy の ip が買い物だったりするのかなぁ」 / Twitter
msaitohさんはTwitterを使っています 「@misasagi64 元々昔からPHYの半分は Marvell ほぼそのままだし。igp と言われるやつが独自なのかどこかから買ったかは不明。82578 は Attansic (-&gt;Atheros -&gt; QCA)です。MII OUI が Attansic そのもので、最初はボケて他社の OUI 使ったのか と思ったのですが、ベンダ依存レジスタ部分が AR8021 と同一。10G(文字数」 / Twitter
msaitohさんはTwitterを使っています 「@misasagi64 10G は、ixgbe ドライバ内で TN と言われてるのは OUI が Teranetics だけど、これは外付け PHY かな。」 / Twitter
msaitohさんはTwitterを使っています 「Intel I225の不具合が話題ですが、どういう問題を議論しているのかよくわかんないけどPHY作るのがヘタクソ(というか他からIP買ってそれが元々ダメなのかそれとも改造した時にヘマこいたのか・・・)なのは昔からですよね。僕はまだI225持ってません。 ところでこれは何ですか? https://t.co/WElAT06PEh」 / Twitter
dpdk - Data Plane Development Kit
msaitohさんはTwitterを使っています 「低消費電力にしないといけなくて多方面で改善しないといけなくて大変なのはよくわかる(てゆーかドライバ書く側も大変なのよん)。」 / Twitter
msaitohさんはTwitterを使っています 「てゆーか、2.5G とか 5G が ethtool から見えないドライバを長期放置しておいておめーらどんなテストしt(以下略」 / Twitter

Realtek

玄人志向 | GbE-PCIe4:Realtek社製 RTL8168搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
SD-PEGLAN-S2(ジーノ2世)
Realtek
ETG3-PCI | LANアダプター | IODATA アイ・オー・データ機器
LANアダプタ|LGY-PCI-TXD
Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch

NIC

玄人志向 | GbE-PCIe:MARVELL社製 88E8053搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
Broadcom 5751 Netxtreme Gigabit PCIe NIC
PCでも使えるQNAPのNAS用10GbEカード「QXG-10G1T」が発売 - AKIBA PC Hotline!
10/5/2.5/1GBASE-T対応のマルチギガ有線LANカード「EDB-10GMPE4T」、エレコムが発売 - INTERNET Watch
1万円を切る10GBASE-T対応LANカード、LR-LINK「LREC6860BT」、アユートが販売 - INTERNET Watch
2018年に普及の兆し!? 10GBASE-T対応製品コレクション - INTERNET Watch
アユート、税別1万円を切る10Gigabit Ethernet対応PCIe LANカード - PC Watch
10Gbps通信の普及を阻んだ「高過ぎるエラー率」問題 (1/2) - TechTargetジャパン ネットワーク
Shirouzu Hiroaki(白水啓章)さんのツイート: "同じ40Gb NIC対応でも Mellanox MCX313A-BCBT は PCIe3.0 x8レーン、MCX415A-BCATは PCIe3.0 x16レーンなのはなぜかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbit搭載マザーボードも徐々に増えているし、10Gbitが徐々に一般にも広がりつつある感じ。また、10Gbitなら今時のCPU&メモリバスで問題ない。 これが、40Gbitになると、あちこちネックが出てきて、普通に使うと15~20Gbit程度で引っ掛かりやすい印象。… https://t.co/ZzKRsXWlbK"

スイッチ

スイッチ|CentreCOM GS908M/GS916M/GS924M
ギガビット8ポート アンマネージプラス・スイッチ(VLAN, QoS) GS108E | 9,500 円 | ネットギア【NETGEAR】
Tag VLAN を利用の環境でスイッチの管理画面にアクセスできません。 《対象機種》 GS108Ev3(GS108E-300JPS) GS108PEv3(GS108PE-300AJS) | ネットギア【NETGEAR】
【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch
LANケーブルの入れ替え不要、2.5/5GBASE-T対応スイッチがバッファローから - AKIBA PC Hotline!
DSAS開発者の部屋:Brocade VDX NOS 7.0 は Python が動く!
BSH-10G08 仕様 | スイッチ | IODATA アイ・オー・データ機器
SODA Noriyukiさんのツイート: "リピーターHUBって、100BASE-Tまでの製品しかないと思ってた、驚いた>FXG-05RPT でもなんか怪しい挙動する→ https://t.co/MHl7ah6Zdy ので、実は物理的にはリピーターじゃなくてブリッジでで、学習機能を省いて全ポートにミラーリングしてるだけだったりして?"
リピーターハブ(ネットワークタップ)|FXG-05RPT|PLANEX
IzNoMaさんのツイート: "今回いろいろ見てて気がついたんですけど、今時のGbEのばかHUBって実はばかじゃなくて、プリアンブルを再生成するんですね。プラネックスのばかハブ通すと6だったのが7オクテットに戻るという不思議。そんなものなの?"
Fadisさんのツイート: "スイッチングハブなら他所のMACアドレス宛てのパケットは見えないというのは全く期待できなくて、一度もパケット受信した事がない宛先への通信は全ポートに流すし、受信した事があってもテーブルを溢れさせて忘れさせるのは割と簡単だったりする"
ASUS、2基の10Gigabit Ethernet搭載スイッチングHub - PC Watch
バッファロー、約24,000円で全ポート2.5Gbps対応の5ポートHub - PC Watch
手のひらサイズで爆速10Gbps&冗長電源まで備える格安ルーター「MicroTik CRS305-1G-4S+IN」レビュー - GIGAZINE

プリンタ

GIGAZINE

「HPのプリンター事業が業界の悪しき慣習をけん引している」という主張 - GIGAZINE
エプソンが格安の互換インクカートリッジを排除するダウングレードを行っていたことが判明 - GIGAZINE
「Epson 9900」はインクが空と表示されても大量のインクが残存していることがわかるムービー - GIGAZINE
家庭用プリンタのビジネスモデル転換に挑むエプソンの大容量インクモデル戦略とは? - GIGAZINE
エプソン、インクを再充填して使える再生インクカートリッジを開発 - GIGAZINE

半導体/周辺機器 インクジェットプリンタ/複合機 ブラザー - PC Watch
【インクジェット/レーザー プリンター】(Windows)今まで印刷できていたのに、突然印刷できなくなった|ブラザー
MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
半導体/周辺機器 レーザープリンタ/複合機 ブラザー - PC Watch
HL-L2360DN | レーザープリンター・複合機 | ブラザー
使用済みトナーカートリッジ/ドラムユニット回収リサイクル|サポート情報|ブラザー
第806回:Mopria とは - ケータイ Watch
How to obtain Brother SNMP MIB information
NetDiscover MIB/OID - BROTHER-MIB.mib
MIBViewerProbes/BROTHER-MIB.txt at master · richb-intermapper/MIBViewerProbes
BROTHER-MIB
Free BROTHER-MIB SNMP MIB Download - Free MIB Download - Search MIBs - OiDViEW
Ruby + Sinatra + SNMPでPX-105のインク残量を取得・表示する - メモ的な思考的な
“Google クラウド プリント”が来年末で廃止 ~10年間ベータ版のまま終息 - 窓の杜
マイクロソフト、「Universal Print」のパブリックプレビュー開始。プリンタサーバをクラウド化し、プリンタドライバのインストールを不要に - Publickey
マイクロソフト、「Universal Print」を発表。プリンタサーバをクラウド化し、プリンタドライバ不要、集中管理へ。キヤノンと対応プリンタを共同開発中 - Publickey

メモリ

News

【メモリ屋社長のちょっとタメになるメモリ話】Ryzenで話題になった、メモリの”Rank”って何のこと? - PC Watch
【メモリ屋社長のちょっとタメになるメモリ話】メモリモジュールに“SPD”という情報があるのを知っていますか? - PC Watch
【メモリ屋社長のちょっとタメになるメモリ話】SPDとマザーボードの関係性 - PC Watch
DDR4メモリのSPD情報を編集できるツールが発売、センチュリーマイクロ製 - AKIBA PC Hotline!
JEDEC、低消費電力版DDR5メモリ「LPDDR5」規格を公開 - PC Watch
【イベントレポート】Samsung、次世代モバイルDRAM「LPDDR5」で7.5Gbps/ピンの超高速伝送を達成 - PC Watch
50年以上前のコンピューター黎明期を支えた「磁気コアメモリ」とは? - GIGAZINE
メモリの脆弱性を利用してデータを盗み読む「RAMBleed攻撃」が発見される - GIGAZINE
More information on RAMBleed
SSDなどのストレージへの連続アクセスで権限を奪取できる「Rowhammer攻撃」類似のサイバー攻撃が可能 - GIGAZINE
ロウハンマー - Wikipedia
Row hammer - Wikipedia
メモリとストレージの性質を兼ね備える夢のデバイス「ユニバーサルメモリ」がついに実現か - GIGAZINE
【福田昭のセミコン業界最前線】NANDの10倍、Intel Optaneの2倍の速度を実現するMRAM SSD - PC Watch
東芝メモリ、10月1日より「キオクシア」へ社名変更 - PC Watch
Intel、クライアント向けPersistent Memoryの実現に向けてMicrosoftと協力 - PC Watch
JEDEC、次世代DRAM「DDR5」の標準規格を公開 - PC Watch
次世代メモリの標準規格「DDR5」の最終仕様をJEDECが発表、DDR4から何が進化したのか? - GIGAZINE
SK Hynix、世界初のDDR5 DRAMを発売 - PC Watch
【後藤弘茂のWeekly海外ニュース】広帯域と大容量にフォーカスした“第2世代”のHBM2メモリ - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelなどプロセッサベンダーがけん引するHBM3規格 - PC Watch

Twitter

suzakiさんのツイート: "ECC無しの1ペタバイトメモリではsilent errorが 90分ごとに起こる。"
Fadisさんのツイート: "memtestしたら1bit壊れてるのが見つかった → 1bit壊れてるメモリなら今にも壊れそうなbitがまだあるかもしれない → ヒートガンでメモリを加熱しながらmemtest → ほらさらに3つ出てきた その発想はなかった"
Fadisさんのツイート: "で、壊れてたbitと壊れそうなbitが限られたアドレスの範囲に入るようにメモリを並べ替えてGRUB2で使ってはいけないアドレスの範囲を指定してデバッグを再開、と つよい"
Ahmet Alp Balkan (🍖KubeCon)さんのツイート: "This guy heated up his RAM with a heat gun to debug a @golang runtime bug. https://t.co/KKSA7vqfr8 I hereby nominate him to most persistent… https://t.co/glga0uPchs"
FFFumihiro MMMatsuiさんのツイート: "DRAMのリフレッシュ(抜けていく電荷の補充)ってあるけど確かに人間も風呂入ってリフレッシュしたらなんか電荷がチャージされる感じするな。あれはなかなか的確な名前だな"
Shirouzu Hiroaki(白水啓章)さんのツイート: "稼働中だったDRAMを液体窒素保存した後、別マシンに挿して、BitLocker、dm-crypt、TrueCryptの鍵を取り出すって、凄いけど誰得な感じも…NSAあたりが使う想定なのかしらん?… "
Ryota Shioyaさんのツイート: "この論文だと、メモリを引っこ抜いて液体窒素に漬け込んで一時間後に戻したらデータが化けてたのは0.17%だったとかで、思ってた以上に冷やすとデータのこるんだなと言う話もhttps://t.co/xdAjRMdqzA"
Ryota Shioyaさんのツイート: "この論文だと,エアダスターとかのスプレーで冷やして実行しても結構うまくいってたので,あとはメモリ配置を割り出すあたりを誰かが自動化してしまうと結構お手軽に誰でも実行できてしまって怖いなって気はします… "
Lest We Remember: Cold Boot Attacks on Encryption Keys | Center for Information Technology Policy
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「DRAMを4KB単位でI/Oしたものと同等性能って話っぽい? 4KB I/O はキャッシュライン単位としては大きいので、巨大VLIWの登場とか無い限り、メインメモリとしては厳しいのかな? それでも、NVDIMM-Pみたいな無理筋よりはずっと良さそう。 ---- https://t.co/nAlXpI2GD6」 / Twitter
【イベントレポート】東芝メモリ、DRAMと同等性能のSSDを披露 - PC Watch
FadisさんはTwitterを使っています: 「NVDIMMが従来の二次記憶と大きく異なるのはそれがブロックデバイスではなくバイト単位での読み書きが出来るという点。NVDIMMはDRAMと同じアドレス空間にマップされ、同じように読む事ができる。書いた内容が永続化された事を保証するには、CPUのキャッシュをflushして、メモリバリアで完了を待てば良い」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMはDRAMのように書けるが、DRAMのように書くのは得策ではない。永続化されるという事はデータは書いている最中にアプリケーションがクラッシュしたり電源が落ちたりしても正常であり続ける必要がある為、FSのジャーナルに似た手順でいつ処理が止まってもデータを壊さないようにする必要がある」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMのDAXで必要になる処理をまとめたPMDKは複数のライブラリで構成されている。libpmemはOS非依存のmmapとmsyncを提供し、libpmemobjはジャーナルで指定した範囲の値をトランザクショナルに書く仕組みを提供する。libpmemblkはNVDIMMブロック単位でload/store仕組みを提供する」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMではファイルの読み書きをユーザ空間で片付けるFilesystem DAXが使えるため、カーネルがオーバーヘッドだからデバイス丸ごとカーネルから奪い取るSPDKと異なり、PMDKによる読み書きとカーネル経由のファイル操作は同じファイルシステム上で共存できる」 / Twitter
FadisさんはTwitterを使っています: 「mmapしたファイルをflushするにはmsyncするのが普通だが、FS DAXの場合カーネルは変更箇所を知らない為効率の悪いflushしかできない。更に必要な操作はclflushoptだけなのでカーネル空間に行きたくない。結果ユーザ空間で勝手にflushしてFSのメタデータの変更が放置されて壊れる世紀末が生まれた、と」 / Twitter
FadisさんはTwitterを使っています: 「で、ストレージが百nsオーダーで応答しないと困る人達はこれを「カーネルが俺の知らないところでFSのメタデータなんか書くからデータが壊れるのだ」と捉え、カーネルがデバイスを一切触らなくなる(=ユーザ空間プロセスが把握している変更だけflushすればデータは壊れない)Device DAXが誕生した、と」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMに関するLinuxの対応の歩み「直接仮想アドレス空間にマップできるデバイスによってmmapは神になる。読み書きはユーザ空間で片付いてボトルネックは解消され …ると思ったのにCPUキャッシュ、お前、お前…!」みたいな感じで大変アレ」 / Twitter
FadisさんはTwitterを使っています: 「もしかして、linuxでmmapしたファイルに書くだけの処理でも、それがsparseで書いてる先がブロックの割当がまだ無い所だった場合、メタデータが書き変わるわけだからmsyncじゃなくてfsyncが必要になるんじゃなかろうか…」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「@fadis_ こういう場合メタデータの書き換えは常に最後なのでは?(msyncのタイミングでメタデータの書き込みになるのでは)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@beepcap @fadis_ 現状、ファイル用mmapでsparseページ宛に memcpy等しようとすると、命令トラップ&disk領域割り付けが走り、万一disk-full等で割り付け失敗するとSIGBUSで落ちます。 なので、メタデータ操作が後とは思えないですねぇ。」 / Twitter
FadisさんはTwitterを使っています: 「x86_64 linuxのページサイズが4KBなのに対して、NVDIMMが64Bのキャッシュライン単位でflush出来る為、ページ単位でしかdirtyな部分を知らないカーネルは1箇所の書き込みに対して64倍のflushを行う羽目になり、これがdirtyなデータをユーザ空間で管理したい大きな理由になっているっぽい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ただ、backendの不揮発部分は4KBよりずっと大きそう。 行列とかで疎な書き込みが発生すると厳しいとか無いのかな? https://t.co/IAKNMrLrmc」 / Twitter
Yasunori GotoさんはTwitterを使っています: 「まあ、RAMについても昔は夢でしか無かったんですけどね。 DIMMとCPUが載ったシステムボードを複数搭載して、そのボードを丸ごと抜くという技で抜けるようにしたPrimeQuestって製品があるんですけどね。 RAMはpage migrationの機能でカーネルがこっそりデータを移動する。NVDIMM+DAXはそこが課題よね… https://t.co/27ObKDwOAM」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@YasunoriGoto1 あれ、結局primary boot processorがhotplugできない問題って解決したんでしたっけ?」 / Twitter
Yasunori GotoさんはTwitterを使っています: 「@mhiramat そこはまだなんですけどね」 / Twitter
FadisさんはTwitterを使っています: 「Linuxでは1ページ64バイトのpage構造体でメモリのページを管理しているけど、1TiBのNVDIMMを4KiBページで利用する場合page構造体が7.85GiBになって、これをメインメモリに置くとページの情報でメモリが埋め尽くされるから、NVDIMMのpage構造体はNVDIMM自体に確保したスーパーブロックに置くらしい」 / Twitter
FadisさんはTwitterを使っています: 「このスーパーブロックは必要なサイズ以上になるページサイズの倍数の容量で確保される為、1GiBページを使っていると1GiB単位のサイズになる。結果、2GiBのNVDIMMを1GiBページで利用すると1GiBがスーパーブロックで1GiBが唯一のページという、ページとは何かについて考えさせられる使い方がなされる」 / Twitter
FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 組込みならBIOSとかIPL等のプログラムを書いたりしない? メモリを初期化するのにSPD情報を読もうとすると、何もしてない(書いても読んでもいない)のに、迂闊なI2Cアドレスをバスに出すだけで、メモリに以上電圧が掛かって燃えるで。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 ×以上 ○異常」 / Twitter
Yasunori GotoさんはTwitterを使っています 「FPGA、NVDIMM共にユースケース(を見つけるの)が難しい2大巨頭と言われた事がある…。 まぁ、実際そう思う…。」 / Twitter
FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter

DRAMeXchange - World leading DRAM and NAND Flash market research firm, with more than a decade of most authoritative database
自作PCをよくするワザ、教えます(5) ~メモリ編~ - AKIBA PC Hotline!
ASCII.jp:メモリモジュールオーバークロック指南 (1/7)|Windows 7で行なうオーバークロック
DDR4-2400以上のメモリはDDR4-2133で動作するか? : AKIBAオーバークロックCafe
シングルランクとデュアルランク、どちらのメインメモリーを使う方が良いのか
Rowhammer問題私的まとめ | @knok blog
NVDIMMとACPI - 睡分不足
Persistency for synchronization-free regions
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Linuxの不揮発メモリ(NVDIMM)対応動向について(2018年版) - Qiita
自作OSでできる!NVDIMMのつかいかた - /var/log/hikalium
電源を切っても消えないメモリとの付き合い方 - Speaker Deck
CK16GX4-D4UE3200 | 288pin DDR4 SDRAM | ECC | サーバー用メモリ | PCパーツと自作パソコン・組み立てパソコンの専門店 | 1's PCワンズ
不揮発メモリ(NVDIMM)とLinuxの対応動向について(for comsys 2019 ver.)
Native 3200MHz DRAM搭載 32GB メモリーモジュール各種を発表 | センチュリーマイクロ株式会社
Linuxの不揮発メモリ(NVDIMM対応について(2019年版 補足編) - Qiita
【メモ帳】メモリー階層レイテンシー - fortran66のブログ

電源

UPS

UPS選定ツール|製品選定|OMRON 無停電電源装置(UPS)
電源障害時に複数のサーバ・パソコンをシャットダウンするにはどうしたらよいでしょうか。|FAQ/よくあるご質問|OMRON 無停電電源装置(UPS)
無停電電源装置(UPS)のプロトコル公開について|製品情報|OMRON 無停電電源装置(UPS)
BW120T/BW100T/BW55T/BW40T 仕様|製品情報|OMRON 無停電電源装置(UPS)
BWB120T|製品情報|OMRON 無停電電源装置(UPS)

バッテリー

JBRC会員企業リスト | 小型充電式電池のリサイクル 一般社団法人JBRC
【特集】いざという時に困らないために……モバイルバッテリの処分方法まとめ - PC Watch
電動工具の互換バッテリーを分解、検証してわかる安さの理由 | VOLTECHNO

ワイヤレス

スマホのワイヤレス充電は超絶非効率、有線充電と比べて電力消費量がおよそ1.5倍と判明 - GIGAZINE
新しいワイヤレス充電の規格が策定される、その内容とは? - GIGAZINE
第843回:Qi 1.2とは - ケータイ Watch

NVIDIA

北森瓦版 - NVIDIAの12-pinコネクタは既存の8-pinコネクタと同程度の大きさとなる
北森瓦版 - NVIDIAの12-pinコネクタへの対応が準備されている
北森瓦版 - “Ampere”では12-pinの補助電源コネクタが使われるかもしれない?
PSUメーカーは、NVIDIAのGeForce RTX 30シリーズアンペアグラフィックスカード用の12ピンマイクロフィットコネクタを準備しました - 自作ユーザーが解説するゲーミングPCガイド
12ピン電源コネクタの不思議な事実:それは現実であり、NVIDIA Ampere GPUに搭載される - 自作ユーザーが解説するゲーミングPCガイド
NVIDIA、Ampereで新しい12ピンのPCIe補助電源コネクタを採用か - PC Watch
FadisさんはTwitterを使っています 「NVIDIAの新しいGPUの補助電源コネクタはGND 6ピン、12V 6ピンで、6ピンの補助電源コネクタを2つくっつけたようなピン配列、と https://t.co/ckrNFldrRR」 / Twitter
The Curious Case of the 12-pin Power Connector: It's Real and Coming with NVIDIA Ampere GPUs | TechPowerUp
FadisさんはTwitterを使っています 「GPUの補助電源コネクタ、たくさんピンがあるけど電圧全部同じ12Vで、ピンがたくさんある理由が「複数の電圧を供給するため」じゃなくて「ケーブルの断面積と端子の表面積を少しでも稼いでより大きな電流を、ATX電源が供給できる最大の直流電圧でGPUに突っ込むため」なの、いつ見てもパワみがある」 / Twitter

Wikipedia

ATX電源 - Wikipedia
Power supply unit (computer) - Wikipedia
80 PLUS - Wikipedia
80 Plus - Wikipedia

玄人志向 | KRPW-L5-400W/80+:80PLUS STANDARD取得 ATX電源 400W
玄人志向 | KRPW-N500W/85+:80PLUS BRONZE取得 ATX電源 500W
玄人志向 | KRPW-SS350W/90+:80PLUS GOLD取得 ATX電源 350W
玄人志向 | KRPW-PT500W/92+ REV2.0:80PLUS PLATINUM取得 ATX電源 500W
玄人志向 | KRPW-TI500W/94+:80PLUS TITANIUM取得 ATX電源 500W
サージプロテクター対応の電源タップは3〜5年で買い替えが必要 | ライフハッカー[日本版]
第874回:モバイル充電安全認証 とは - ケータイ Watch
日記 (2018 年 9 月下旬)
DOS/V POWER REPORT | Impress Japan
マザーボードのフェーズの話 - PC Watch
【イベントレポート】充電事情はPDよりもワイヤレス? - PC Watch
何故プラグイン式PC電源ユニットのコネクタは規格統一されていないのか? - Togetter
自作PCのケーブル取り回しや電源効率改善の可能性を秘めたIntel発の新規格「ATX12VO」とは? - GIGAZINE
ATX規格でUSBピンから各種情報を取得できる冗長電源「FSP Twins 700W」レビュー - GIGAZINE
無限に電力を生成できる可能性がある回路が開発される - GIGAZINE
次はGeForce RTX 3090! そして訪れるキロワット時代 (1/4) - ITmedia PC USER

BugStories
Arm64(ARMv8) Assembly Programming (00)
【藤山哲人と愛すべき工具たち】ネジ山が潰れた! ネジ頭が取れた! 悲劇を救う天使の工具 - PC Watch
リーク情報の用語解説 - 自作ユーザーが解説するゲーミングPCガイド
OEMとかリテールとかってなんだ? - 自作ユーザーが解説するゲーミングPCガイド
CPUサーマルグリスについて - 自作ユーザーが解説するゲーミングPCガイド
CPUサーマルパッドについて - 自作ユーザーが解説するゲーミングPCガイド
だんぼーだよさんはTwitterを使っています 「みんな TPM なんか付いてないって言ってるけど、UEFI で有効にできる場合あるから確認してね。独立チップのイメージでいると思うけど、最近は Firmware TPM が Intel PTT / AMD GuardMI で使えるよ。マザーボードの TPM 用ピンヘッダは埋めなくていいです。BTO で選択肢なくても設定で有効化できます。 https://t.co/1VsuaXJoFY」 / Twitter

Intel

その他

MP

Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems - Peter Barry, Patrick Crowley - Google ブックス
Go Parallel | Dr. Dobb's | Booting an Intel Architecture System, Part I: Early Initialization | December 26, 2011
Using SSG Templates
edk2/MpService.h at master · tianocore/edk2

メモリバリア

C++ Developer Guidance for Speculative Execution Side Channels | Microsoft Docs
/Qspectre | Microsoft Docs
NVD - CVE-2017-5753
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Security Research & Defense
Mitigating speculative execution side channel hardware vulnerabilities – Security Research & Defense
SpectreBustersあるいはLinuxにおけるSpectre対策
本当にわかる Spectre と Meltdown
【図解】CPUの脆弱性[Spectre/Meltdown]と投機的実行の仕組み〜分岐予測とアウトオブオーダー実行〜 | SEの道標
[SpectrePrime] [MeltdownPrime] とCPUのサイドチャネル攻撃 〜Evict-Time/Prime-Probe/Flush-Reload〜 | SEの道標

日記

日記 (2012 年 12 月中旬)
日記 (2014 年 9 月下旬)
日記 (2016 年 8 月上旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2018 年 2 月上旬)
日記 (2018 年 9 月下旬)
日記 (2018 年 10 月下旬)

借り初めのひみつきち

x86の割り込みが遅いワケ - 借り初めのひみつきち
地獄のデバッグ - 借り初めのひみつきち
Nerry さんのツイート: "Surface 3でNXビットが落ちる件、これのせいだった… "
IA32_EFER ‐ 通信用語の基礎知識
NXビット ‐ 通信用語の基礎知識
ロングモードと64ビットモードの違い - 借り初めのひみつきち
EFER.LME と EFER.LMA - 借り初めのひみつきち

blog

Linuxブート時のcpu数認識の処理を読む - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Intel 100/200 PCH Primary to Sideband Bridge について - DXR165の備忘録
【後藤弘茂のWeekly海外ニュース】スモールコアCPU「Avoton」で明らかになったIntelのローパワーCPU戦略 - PC Watch
[coreboot] Disabling hyper-threading on Ivy Bridge
投機実行とOut of Orderはつよいというはなし - なるせにっき
x86のCPUIDについて - めもちょー
20190413
cpuidでAVX2に対応しているか調べる - 睡分不足
x86におけるメモリアクセス権のルール - 睡分不足

スライド

プログラムを高速化する話
ハイパースレッディングの並列化への影響

Qiita

[Linux] CPU Hotplug の変更 (動的にCPUの特定coreの有効化/無効化) - Qiita
8086命令セット - Qiita

技術資料 | iSUS
インテル® 64 および IA-32 アーキテクチャー最適化リファレンス・マニュアル参考訳
x86-64 - OSDev Wiki
hikaliumさんのツイート: "はい、バグが取れたので円周率をやっていきましょう(syscall処理中に割り込みが発生するとスタックがユーザモードから切り替わらないのにCR3だけ変更されるのでにゃーん化していたのが原因だった)。… "
2.7. turbostat - Red Hat Customer Portal
Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.
msr 演算 intel - Google 検索
Intel core disable msr - Google 検索
x86 アーキテクチャの不可解な「仕様」 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
POP SS デバッグ例外 - CVE-2018-8897 [中程度] & CVE-2018-1087 [重要] - Red Hat Customer Portal
A Complete Formal Semantics of x86-64 User-Level Instruction Set Architecture - FSL
kframework/X86-64-semantics: Semantics of x86-64 in K
486のセグメントデスクリプタが直感的に読めないようになっている理由 - Yabu.log
割り込み「ベクタ」と呼ぶ理由 - uchan note
Linux / x86_64の割り込み処理 第4回 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
20200620
Guidance for Enabling FSGSBASE
2020年10月26日 Linux 5.10-rc1が登場,正式リリースは2020年末の予定:Linux Daily Topics|gihyo.jp … 技術評論社

Intel

NAKAMURA Minoru's Diary (2009年10月)
The x86 NMI iret problem [LWN.net]
Non Maskable Interrupt - OSDev Wiki
Intel Cannonlake Added To LLVM's Clang - Phoronix
QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmRuntime/SmmRuntime.c - pub/scm/linux/kernel/git/jejb/Quark_EDKII - Git at Google
a4lg.com | x86 ファミリーとモデル一覧
ドライバーおよびソフトウェア
melancholic afternoon
Positive Technologies - learn and secure : Intel ME: The Way of Static Analysis
システムマネジメントモード - Wikipedia
System Management Mode - Wikipedia
Sandsifterはプロセッサーの隠れ命令を見つける、それは未来の凶悪犯かもしれない | TechCrunch Japan
Sandsifter checks your processor for secrets | TechCrunch
xoreaxeaxeax/sandsifter: The x86 processor fuzzer
x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
Floating-Point Reference Sheet for Intel® Architecture | Intel® Software
OpenVINO™ toolkit | 01.org

ME

イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「これってMEの話であってUEFIとは別だと認識してたんだがちがうのか…?」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@syuu1228 いや ME の話で合ってると思います」 / Twitter
Masanori KusunokiさんはTwitterを使っています 「そういえばUEFIの奥底で動くMinix 3はその後どうなったんだろうか?Minix3のリポジトリをみるとこの数年あまり動きがなさそうだけどな / “インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている…” https://t.co/Ky8XyIS9J8」 / Twitter
インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey

microcode

Linux

Arch Linux

マイクロコード - ArchWiki
Microcode - ArchWiki
Intel Microcode Updateの設定 | 普段使いのArch Linux

Debian

Microcode - Debian Wiki
Debian -- jessie の intel-microcode パッケージに関する詳細
Debian -- wheezy の intel-microcode パッケージに関する詳細
kanamonoさんのツイート: "@itoooon 多分同じURLにたどり着かれたと思いますが、Debianでは次のURLで議論されておりました。 https://t.co/kirM719eGY"
#886367 - intel-microcode: coming updates for meltdown/spectre - Debian Bug report logs

Ubuntu

How to update Intel microcode properly? - Ask Ubuntu
Ubuntu Manpage: update-intel-microcode - download current Intel processor microcode
Ubuntu改造日記 x86高速化 Intel&AMD 最新Microcodeアップデート編 その7: Kapperのブログ 新館

https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
linux - What is Intel microcode? - Stack Overflow
Building Intel CPU Microcode Updates Directly into the Linux Kernel - DOTSLASHLINUX
Intel microcode - Gentoo Wiki
drivers - Should I enable the intel-microcode (Linux Mint 18)? - Unix & Linux Stack Exchange
LinuxでCPUのマイクロコードをアップデートする方法 | マイナビニュース
LinuxのリーダーLinus TorvaldsがIntelのMeltdown/Spectre対策を“完全なごみ”と酷評 | TechCrunch Japan
Linuxカーネルがx86 microcodeを扱う処理について - Qiita

Twitter

高梨陣平さんのツイート: "CPUのマイクロコードは企業の独自技術で良く知られていない。マイクロコードは更新は可能だが最新のCPUは暗号技術で防いでいる。しかし2013年レベルのCPUはカスタマイズが可能だ。マイクロコードをリバースエンジニアリングで解析し自らのプログラムを記述した詳細を公開。解析には電子顕… https://t.co/FA4AzYVxky"
Hacker News 100さんのツイート: "An introduction to reverse-engineering x86 microcode and writing it https://t.co/QmRjk0SmNj (https://t.co/mY2Hh7cEXg)"
media.ccc.de - Everything you want to know about x86 microcode, but might have been afraid to ask
An introduction to reverse-engineering x86 microcode and writing it | Hacker News
まさみさんは語りたいさんのツイート: "なんだ、マイクロコードのファイルを開いたら、releasenoteにインストールの仕方が詳しく書いていた。"
Hiromichi Itouさんのツイート: "お、4.15.2出てる https://t.co/JLkHHhwM9S 問題のあるmicrocodeを排除する仕組みがマージ x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes"
LKML: Greg KH: Linux 4.15.2
suzakiさんのツイート: "マイクロコードの更新は、 1.64bit仮想メモリの特定領域に更新フォーマットに従ったコードを置く。 2.MSRに0xc0010020をセット。 3.wrmsr 命令で更新。5,000 cyclesで終了。"
高梨陣平さんはTwitterを使っています 「研究者がIntelの秘密鍵を暴いた。 IntelによるCPUのマイクロコードの更新等が復号可能に。パッチがどのように修正しているか等が明らかに。」 / Twitter
LobstersさんはTwitterを使っています 「In a first, researchers extract secret key used to encrypt Intel CPU code https://t.co/7f81XS08m1 #crypto #hardware #security https://t.co/8qfgsmXAxw」 / Twitter
In a first, researchers extract secret key used to encrypt Intel CPU code | Lobsters
In a first, researchers extract secret key used to encrypt Intel CPU code | Ars Technica

Download Linux* Processor Microcode Data File
2015 年 6 月付の Windows 用インテル CPU マイクロコード更新プログラム
Update Intel CPU Microcode | dereenigne.org
microcodeって、何 ? | (まだ無題 ; そのうち変更するかも)
本の虫: Intelのドキュメント化されていないマイクロコードアップデート用のバイナリの考察
第132回 CPUマイクロコードのアップデート方法(FreeBSD):BSD界隈四方山話|gihyo.jp … 技術評論社
Microcode Update Guidance
Mitigation strategies for JCC microcode
Loading Microcode from the OS

分岐予測

ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
そして最近の分岐予測について2 - なるせにっき
NAKAMURA Minoru's Diary (2010年4月)
分岐予測の簡単な歴史 – Part 1 | POSTD
分岐予測の簡単な歴史 – Part 2 | POSTD
分岐予測の簡単な歴史 – Part 3 | POSTD
ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
そして最近の分岐予測について2 - なるせにっき

BIOS

Option ROM - Wikipedia
Power-on self-test - Wikipedia
Power On Self Test - Wikipedia
Tips BIOSブート仕様その1 概要と用語
Tips BIOSブート仕様その2 IPLデバイス
Tips BIOSブート仕様その3 IPL優先度
Tips BIOSブート仕様その4 BCV優先度
Tips BIOSブート仕様その5 POSTシーケンス処理
Tips BIOSブート仕様その6 データ構造と補足説明
satさんのツイート: ""BIOS"という言葉自体の初出はCP/Mのはず。意味はIBM PCのそれとは全然違うんだけど"

本の虫

本の虫: x86のmov命令はチューリング完全
本の虫: x86のMMUはチューリング完全である

マイナビ

IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編 (1) AVX2について | マイナビニュース
Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
HPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース
HPC性能が大幅に強化されたHaswell(後編) - HPCとして通用する性能を実現 | マイナビニュース

POSTD

モジュロ演算の替わりとなる高速処理 | コンピュータサイエンス | POSTD
CPUマスク | プログラミング | POSTD

Qiita

x86_64での再帰ページマッピング - Qiita

Twitter

HT

Shirouzu Hiroaki(白水啓章)さんのツイート: "HT初搭載のPentium4だと、パイプラインの深さもあって演算器がスカスカになりやすかった。 なので、手動で依存関係を減らす順序にするだけで(シングルスレッドでも)改変blowfishの速度が4倍になった記憶。 https://t.co/jmWuRKkHU7 (その時の簡易メモ)… https://t.co/ctaTpf3pLh"
私的メモ(2003年12月版)
Kazuho Okuさんのツイート: "典型例以外で重要なケースとしては、レイテンシの大きな命令の実行中に別スレッド動かせるとか。AES-NIがこのパターンなのでウェブサーバではHT有効にすべきという理解 参考: https://t.co/zYqvz1KJp5… "
Kazuho Okuさんのツイート: "あー正確に言うと、最近のAES-GCM実装は並列処理がんばってるからHTオフでもいいけど、昔ながらのAES-CBCやパケット番号暗号化が入るQUICではAESNIのレイテンシが問題になるケースがあり、従ってryというところです"
Kazuho Okuさんのツイート: "っていうかHTはメモリレイテンシの隠蔽というより、空いてる演算器を埋める仕組みとしての側面が大きかったような気もしてきた"
ts4さんのツイート: "Hyper-Threading Technology Benefits の節にそういった記述ありますし、Utilization of Processor Resources の節にも、NetBurstのころCPUのリソースぜんぜん使えてなかった的な記述がありますんで、そのへんの稼働率を上げるのが目的だったのではないかと https://t.co/MSakkBQaGk… https://t.co/LOl4zG2r3v"
Hideyuki Tanakaさんのツイート: "HTTの効果がでかいのは典型的にはメモリのランダムアクセスしまくりでストールしまくりの演算器遊びまくりみたいな時で、実際こういうケースだと倍近くまで速くなることがあったけど普通のアプリだと限定的だし、CPU側からするとOoOを頑張ってIPCを稼げば稼ぐほど効果が少なくなるというジレンマ(´・_… https://t.co/KoJ0OZUdjs"
まさきはるか(Usk)さんのツイート: "実際、HTに効果があるのかないのかが、ベンチマーク人とサーバー人の発言しかなくて全くわからない。コア数少ないときは効果ある気がしてるけど…… "
Hideyuki Tanakaさんのツイート: "2年ぐらい前の人に、インテルが8コア8スレッドのi7を出しそうとか言うと、どんな顔するかな(´・_・`)99割ぐらいの人はガセだと思うだろうけど"

NMI

品川 高廣さんのツイート: "「BitVisor 2018年の主な変更点」では、BitVisor における NMI 処理の問題が述べられています。パススルー型 VMM でハードウェア仮想化支援機構を使ったとしても、NMI を本当に正しく処理するのはとても難しそうだと実感させられます。https://t.co/h2grTghKus"
BitVisor Summit 7「2. BitVisor 2018年の主な変更点」

SMI

まさみさんは語りたいさんのツイート: "あるある(笑)SMIの処理が強烈に遅くて、「OSに問題があるんじゃないか?」と言われたこともあった。… "
Yasunori Gotoさんのツイート: "コードギアスR2で時間を止める能力を持っていたキャラがいたけど、主人公が「心の中でカウントしていた数」と「実際の時計の時間」に差があることに気が付いて、その能力を見破るシーンがあったよね。 SMIはOSの中でリアルにそれが起きるんだよね。"
Yasunori Gotoさんのツイート: "SMIはカーネル(というか割り込まれたCPU)から見ると、時間停止の魔法みたいなものに見えるんだよね。ファームが必要だと判断したら、そこでSMIとして割り込んで、その間ファームがゴリゴリと動くという仕組み。"
Yasunori Gotoさんのツイート: "昔のカーネルは一定時間内にカウントして、あるハードの能力を図るといったコードが結構あったけど、その間にSMIが入るとOSはカウントできなくなってしまうので、本来のでるべき値に対して実際のカウントの値が異なってしまい、カーネルが異常な動作をするというトラブルが結構あった。"
Yasunori Gotoさんのツイート: "このため、SMI=トラブル=コードギアスという関係が自分の中で出来上がってしまい、SMIの文字を見るたびに主役のルルーシュ君の声が脳内を駆け巡ってしまうのである。"
まさみさんは語りたいさんのツイート: "ちなみにSMIはサーバHWのファームウェアの処理なのでOSは関与しません。濡れ衣だー"

UD発生関数

tnさんはTwitterを使っています 「わたし「lock; nopでシステムコール発行してるっぽいとこがあるのですがこれなんですか……?」 hikaliumさん「これは意図的にundefined opcodeの例外起こすやつですね」 fadisさん「x86でよくみるやつ」 わたし「えぇ……?」」 / Twitter
tnさんはTwitterを使っています 「s/システムコール発行/関数呼び出し/」 / Twitter
とみながたけひろさんはTwitterを使っています 「この手のいかに高速にthunkというかゲートというかを実現するハック、最近は安全性とかに考慮しつつもハイパーバイザー呼び出しで同じように各種ハックがあると聞いて笑っている」 / Twitter

UD0の命令が更新

まさみさんは語りたいさんのツイート: "ちょうまって、これは酷い。"
まさみさんは語りたいさんのツイート: "UD0の命令が更新されて変わってしまっている@最新のSDM 0F FF /r UD0 r32, r/m32 Some older processors decode the UD0 instruction without a ModR/M byte. じゃねーよ!"
まさみさんは語りたいさんのツイート: "これIntelが互換性を捨てましたっていうことじゃないですかーやだー。"
まさみさんは語りたいさんのツイート: "なあIntel-san、どのプロセッサからこれ変わったんだ・・・?そしてobjdumpはどうバイナリをダンプすればいい・・・?"
まさみさんは語りたいさんのツイート: "いずれにしてもカーネルの中にテストコード仕込んでおいてよかった感。"
UD — Undefined Instruction

red zone

ファッション自作OSマンさんのツイート: "IA32eモード(64ビットモード)でのOSプログラミングのハマりどころ ・アセンブリで関数を書く際、スタックを16バイト整列しないといけない ・red zoneの存在"
Red zone (computing) - Wikipedia
書籍の補足情報
x64 Assembly Language
GNU CとUNIXシステムコールだけで実行時アセンブラ ( ソフトウェア ) - 一人一党党 - Yahoo!ブログ

システムコール

SODA Noriyukiさんのツイート: "CじゃなくてPythonで十分デスヨみたいな意味でCPUが速くなれば手を抜いても許されるようになるけど、コンテキストスイッチのオーバーヘッド自体はなくならないので、結局ユーザランドとカーネル境界を意識したプログラミングスタイルも残りますよ。… https://t.co/Ab3604T2Mq"
眼力 玉壱號さんのツイート: "返すのに syscall 呼んじゃうと呼んだ方が block する…のを嫌って bmalloc(Safari が内部的に使ってる allocator)は別の thread 起こしてそいつに返させていた…… "
Shinji Konoさんのツイート: "なんか、今の時代になっても、system callのオーバヘッドとか言ってる不思議。CPU速くなったんじゃなかったのかよ…"
SODA Noriyukiさんのツイート: "バンド幅は急速に向上しますがレイテンシの改善はゆっくりですし、アドレス幅が広がればドライブ能力が必要となりレイテンシが悪化するのでメモリ階層を増やして対応します。結果L1キャッシュの容量は30年経っても同レベルです。キャッシュ外せば途端に遅くなるのでコンテキストスイッチは遅いままです… https://t.co/aCHBrZRlwV"
まさみさんは語りたいさんのツイート: "function failure injectionが拡張されてsyscallが片っ端からinjectableになっていた。"
虚無さんはTwitterを使っています 「Intel: 32ビットモードでsyscall/sysretをデコードせずsysenter/sysexitは32ビット/64ビットどちらでも使える AMD: 64ビットモードでsysenter/sysexitをデコードせずsyscall/sysretは32ビット/64ビットどちらでも使えるみたいな面白いやつも まあカーネル空間の話だからあまりユーザー影響ないですが」 / Twitter

コードレビュー

Kazuho Okuさんのツイート: "今日はコードレビューで、ファストパスはインライン展開できるようにしつつ、スローパスはコードの密度が問題にならないようextern関数に追い出して下さいという話をして、それは一般論としては正しいんだけど最近の分岐予測の発達したIntel CPUでどうなのか誰か定量的なコメントくだしあ"
Kazuho Okuさんのツイート: "マイクロベンチで関数展開しない方が速くなるケースがあるのは知ってる"

x64

るくすさんのツイート: "@liva_jy すみません。超基本的な質問なんですけど、x64のiretq命令実行時のスタックって、rip,cs,rflags,rsp,ssを全部*64bit*でスタックから降ろしてくるんでしたっけ...."
satさんのツイート: "x86_64の初見殺し仕様です Architecture defines a 64-bit virtual address. Implementations can support less. Currently supported are 48- and 57-bit vir… https://t.co/Om2VjPitlS"
まさみさんは語りたいさんのツイート: "君らが聖典としているintel SDMもバグってることが多いから注意な。"
まさみさんは語りたいさんのツイート: "SDMのopcode mapを読むと色々見えてくる。特に最初の命令セットは結構キレイに並んでる。… "
るくすさんのツイート: "x86もだ。意外と知らなかった超基礎知識。 いやバラバラに並べる意味なんてそりゃあないんだけど。 x86 architecture condition codes https://t.co/NMGe3Mv79a"
sandpile.org -- x86 architecture -- condition codes
パーフェクト・鳥頭・ジュニアさんのツイート: "@uchan_nos 確認は出来てないですが、push ax ってオペランドサイズプレフィックス付いてて、push cs には付いて無くないですか?"
ロボ太さんのツイート: "YMMのシャッフル系命令がいつもごちゃごちゃになるのでチートシート作ってみた。 https://t.co/4kv02PA6uf"
中村 実さんのツイート: "Intel先生やべえよ。アフィン変換用の命令を追加するつもりだ。その上、VMMの制御で4KBページを128バイトのサブページ単位に区切って各サブページ毎に書き込み保護を出せるようにするとな。 https://t.co/Tm0IoW8ZHV"
くまぎさんのツイート: "ハードウェアトランザクショナルメモリは人類にはまだ少し早過ぎる。トランザクション中はprintfもログもデバッガでのトラップも出来ないし、アボート要因の情報が限られるので最終的にはエスパーしかない。あと僕の使い方が悪いのか意外と速くない。"
とみながたけひろさんのツイート: "整列例外ですね。ロードストア命令でアクセスするアドレスの下位何ビットか(命令や特権レジスタの設定によって異なる)が0じゃないときにでます。x86でもがんばればだせますが普通はでないやつ… "

Ring1, 2

品川 高廣さんのツイート: "x64 (x86_64) の long mode では ring protection は廃止されて user mode と kernel mode しか無いと思い込んでいたけど、ちゃんと segment 定義して call gate 経由で呼び出せば 64 bit の ring 1 も ring 2 も使えるのね。"
Nerry さんのツイート: "リング1やリング2が使えてもセグメントベースやセグメントリミットでアクセス制限かけれないしページ属性的にはカーネル扱いなので使い道がない気がします… "
品川 高廣さんのツイート: "遅ればせながら、ACM CCS 2018 のこの論文(の動画)を見て、使い道を知ったのですよ。https://t.co/uRVxKJDme7… "
Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86 - YouTube
Nerry さんのツイート: "あとで動画見てみます… "
Lord of the X86 Rings: A Portable User Mode Privilege Separation Arch…
品川 高廣さんのツイート: "2018年にもなって Intel x86 のリング保護を使った論文が出るとはね。SOSP '99 の Palladium とどう違うのかとも思ったけど、普段は 64bit で動いて一時的に 32 bit に戻してセグメント&リング保護を有効にしたり、Ring 1 でゲートを作ったり、結構複雑にはなっているんだな。https://t.co/dEQGO5VyI1"
[1805.11912] Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86
品川 高廣さんのツイート: "ACM CCS 2018 の論文はこちら。Hojoon Lee, Chihyun Song, and Brent Byunghoon Kang. Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86. In Proc. 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). https://t.co/oxAe4bBkWz"
Lord of the x86 Rings

users

@hisak

Hisaki Oharaさんのツイート: "SkylakeとGoldmontがArchitectural Performance Monitoring version 4ってのをサポートしているのか。いつのまにこんなにversionが上がっていたとは。もうよく分からん。。 #IntelSDM"
Hisaki Oharaさんのツイート: "Intel SDM Vol.3 8.2節 MEMORY ORDERING をみて、何言ってんだこいつってなった人には大変お勧めだった RT Memory Reordering Caught in the Act https://t.co/Z1JZiXvcti"
Hisaki Oharaさんのツイート: "いま 48-bit長 CR3 -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
Hisaki Oharaさんのツイート: "将来 57-bit長 CR3 -> PML5E (9-bit) -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
Hisaki Oharaさんのツイート: "GAする前にPCOMMIT命令が消え去った経緯がまとめられてるw https://t.co/mexxGMsIDw"
Hisaki Oharaさんのツイート: "CLWB命令の記述はInstruction Set ExtensionsからSDM Vol.2に移動してた"
Hisaki Oharaさんのツイート: "Intel SDM rev.64を斜め読みしたけどVol.3はminor updateが多いかなあ。IOMCAの記述でPCIeのspecに触れているのは珍しかった。 https://t.co/WNOD1I9XRN"

@uchan_nos

OS作れないマン WalB担当さんのツイート: "Intel SDMの9.10.2にあるSTARTUP.ASMが全然本文のアップデートに追随できてなくてワロタ。"
OS作れないマン WalB担当さんのツイート: "保護モードからIA-32eモード(64ビットモード)に遷移するためにはLMA=1にする必要があるが、LMAは読み取り専用ビットだから、4レベルページングを有効化する手順を行うことで間接的に1にするしかないらしい。64ビットモードではページングが必須と言われるゆえん。"
ファッション自作OSマンさんのツイート: "カノニカルアドレスは僕もやられた https://t.co/qq4LEbmGYd"
c - Canonical address - Stack Overflow
技術書典4 け-51 x86-64-128さんのツイート: "Interrupt ID でもふつうに通じるよねっていう話。… "
uchanさんはTwitterを使っています 「これ,まさか,stiの直後にcliしているから,stiの特例によってまったく割り込み許可状態にならないまま永久ループしておるのか?」 / Twitter

@deep_tkkn

Deep(Ph.D Go player)さんのツイート: "smp_affinityもいじったし、MSIのdest_modeもlogicalになるようにしてみたけど、割り込みが1コアに集中するのなんで"
Deep(Ph.D Go player)さんのツイート: "CONFIG_HOTPLUG を無効にしろみたいな記事みたから無効にしたが効果ない"
Deep(Ph.D Go player)さんのツイート: "intremap=off しないと MSI の dst-mode が physical になるからそれもやった"

@liva_jy

Livaさんのツイート: "@utshina2 なるほど、ありがとうございます!つまり、カーネルコード側のセグメントを事前にチェックしておいて、システムコールの度に毎回チェックするのを避けるという事ですよね。確かにそれはかなり早くなりそうです。"
Livaさんのツイート: "一回くらい自分でfastcallとint $$の性能比較をした方が良さそう。 #liva_notebook"

@NerryN3

光宙🌟さんのツイート: "#DB(Debug Exception)っていつの間にReservedになってたの"
光宙🌟さんのツイート: "https://t.co/wCoBYm7kPW"
Nerry@求職中さんのツイート: "x86のpush命令のFF /6エンコーディングと一見対になりそうなFF /7はずっと未定義命令で、実際に対になってるpop命令の8F /0エンコーディングの/0以外はずっと未定義っていう謎の組み合わせ"
Nerry@求職中さんのツイート: "よく調べたら8Fの/0以外はAMDのXOPプレフィックスに使われてた"

Fadisさんのツイート: "Intel、10nm世代のプロセッサでECCエラーなどのハードウェアの異常を検知する(EDAC)ドライバ、i10nm_EDACをLinuxカーネルに追加。新しいマイクロアーキテクチャの呼び名、それで良いんだ… https://t.co/NvFJYUJ53F"
I10nm Is Intel's New EDAC Linux Driver For Icelake Server CPUs - Phoronix

tanakmura🌛さんのツイート: "https://t.co/k7h93oJ0kp これの話してもいいかな。紹介と、正しい値を取るための細かいテクニックとか。知ってる人は知ってるだろうけど、一覧にしてあれば、どれか知らない人にヒットするかもしれないし、一回ぐらいちゃんと説明したい気がする。"
tanakamura/instruction-bench: instruction-bench
Kazuho Okuさんのツイート: "SkylakeでPAUSE命令が14倍遅くなってスピンロックやばいって話 / “Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing …” https://t.co/6yus862byg"
Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus
InstLatX64さんのツイート: "#Intel released the 68th edition of the Software Developer’s Manuals with V2 Extended Topology Enumeration Leaf in CPUID.1Fh for Module/Tile/Die levels https://t.co/qh7jNcQQFN… https://t.co/WthEDZNp0Y"
高梨陣平さんはTwitterを使っています 「Intel CPUの隠し命令を探すお話。Intelのドキュメントの貧弱さを嘆きつつ、過去に起こった問題をさらい、最大15byteに及ぶ命令空間を全部実行するのは無理なので戦略が必要との解説。optesterが公開されている。 https://t.co/RWH8b5nYuz」 / Twitter
Hacker News 100さんはTwitterを使っています 「Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64 https://t.co/ITvc94IBfE (https://t.co/6rglM7O3r4)」 / Twitter
undocumented-cpu-behavior.pdf
Undocumented CPU behavior: analyzing undocumented opcodes on Intel x86-64 (2018) [pdf] | Hacker News
Satoshi TandaさんはTwitterを使っています 「Intel SDM added the Ice Lake specific MSRs. Ice Lake introduced the concept of the access level to lock the configuration registers as the 2nd line of defense. Once the DONE bit is set, they are automatically RO. @CHIPSEC detects it if the bit is not set https://t.co/fFoB1y7Dnw https://t.co/vo0yBgY2mE」 / Twitter
Add ICL support · chipsec/chipsec@35a614c
(1) Satoshi TandaさんはTwitterを使っています 「Happy to see the platform-level improvement to reduce a chance of shipping devices without proper security configurations (eg, setting lock bits individually).」 / Twitter

Microkernel・LibraryOS

L4 以降

L4 - Wikipedia
L4 microkernel family - Wikipedia
L4 ‐ 通信用語の基礎知識
マイクロカーネル - Wikipedia
Microkernel - Wikipedia
代替OS (PC用) | Netsphere Laboratories
2011年11月24日 Linux&Linusにモノ申す!? あのTanenbaum教授が久々にメディアに登場:Linux Daily Topics|gihyo.jp … 技術評論社
マイクロカーネル - マイクロカーネルの概要 - Weblio辞書
Microsoft Word - shousai.doc
L4 · oraccha/omicron Wiki
An Introduction to Drawbridge(ja) // Speaker Deck
品川 高廣さんのツイート: "「Secure Enclave は、Apple がカスタマイズした L4 マイクロカーネルを実行します。」って知らなかった。https://t.co/NBXlx0OfKn"
iOS_Security_Guide.pdf
yuYabu☕️さんのツイート: "L4の仕様がまとまってるl4hqというサイト https://t.co/Ig7Z5bzxLn #osdev_moku2"
L4HQ - The L4 Headquarters
ぬるぽへさんのツイート: "組み込みではモノリシックなライブラリOSを提供することが多い #osdev_moku2"
ぬるぽへさんのツイート: "最近のトレンドだと「メモリ空間管理はカーネル空間に持たすことが多い」と表現するらしい、ポリシーはユーザー空間で制御するがマッピングはカーネルでやることを指して > マイクロカーネル #osdev_moku2"
L4Android
社会人でもOSを作りたいさんのツイート: "今日の自作OSもくもく会の発表はほんまに濃かった。L4マイクロカーネルって全体をアセンブリ言語で書くことにより高速化したっていう話、コンパイラの限界を感じる。"
Takeharu KATOさんのツイート: "正確にはL4の前身のL3がアセンブラでL4の世代は部分的にCで書かれて後々C++になったと思います(C++になった当たりからはちゃんと追ってないのですが)。… "
ぬるぽへさんのツイート: "唐突に気づいてしまったんですが、マイクロカーネルには厳密にはプロセスという概念はないのに、実行プリミティブ間通信をIPCと呼ぶとはこれいかに"
HermiTux | A binary-compatible unikernel
ssrg-vt/hermitux: A binary-compatible unikernel
unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Shinichi MiyazawaさんはTwitterを使っています: 「形式検証済みのマイクロカーネルといえば、seL4が有名。 https://t.co/zli9rN7cXA」 / Twitter
Home | seL4
The seL4 Microkernel – An Introduction - seL4-whitepaper.pdf

Unikernel

MirageOS のインストールから Hello World までを試す - Qiita
MirageOS Unikernel の概要 - Qiita
11se252.pdf
cetic/unikernels: Unikernel and immutable infrastructures
A Binary-Compatible Unikernel
unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
unikernelの最新人気記事 30件 - はてなブックマーク
Docker ContainerとUnikernelの比較 - コードログ
atc18-zhang-yiming.pdf
Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo

HarmonyOS

huawei-iot/HarmonyOS: 鸿蒙系统资料。Docs about HarmonyOS.
Shinichi MiyazawaさんはTwitterを使っています: 「Harmony OSで面白い点の一つは、形式検証を使っている点。 https://t.co/xJzy2mK95d」 / Twitter
Harmony-OS-Huawei-Developer-Conference-14-1.jpg (1170×540)

Rump Kernel

Rump Kernelをつかってみる
おるみんちゃんさんのツイート: "Rump Kernel が実は論文や学術雑誌以外に本の形でドキュメント化してたのに気がついて Mendeley に放り込んだ"
おるみんちゃんさんのツイート: "のはいいんだけど,このタイトルページを Mendeley が OCR してこうなるの完全に謎。何をどうしたんだ……?(本の最初のほうに書いてある git の revision がなにかの ISBN にひっかかったとか?… "
おるみんちゃんさんのツイート: "https://t.co/siYxJuyJjn"
The Design and Implementation of the Anykernel and Rump Kernels
おるみんちゃんさんのツイート: "おそらく,Rump Kernel の作者 Antti Kantee の博士論文の改訂ですね。"
おるみんちゃんさんのツイート: "博論はこれ https://t.co/QKhIrddQ1c"
Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels

Solo5

retrageさんはTwitterを使っています 「今日ちょうどSolo5の話をまとめようとしてたところなのでタイムリー」 / Twitter
まちカドおるみんさんはTwitterを使っています 「process の isolation でも hardware assisted な VMM 並に強力な isolation が可能であるという主張はどちらかといえば container より(libOS とは関係ない)picoprocess そのもののアイディアに近い」 / Twitter
まちカドおるみんさんはTwitterを使っています 「picoprocess はもともと Xax というブラウザのプラグインを sandboxing するための仕組み(“ Leveraging Legacy Code to Deploy Desktop Applications on the Web”)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「container があくまで kernel shared でかつ 300 以上の syscall が許容されてるのに対して,unikernel の single address space や libOS といった性質上 hypercall がたかだか 4,5 のままで既存のアプリのコードが使えてるのは強みなので,この設計構造を潰さないまま process isolation に」 / Twitter
まちカドおるみんさんはTwitterを使っています 「持っていくと,アプリコードはそのままでも syscall は数個のより narrow な attack surface しか持たない process になるので,同じアプリを動かすにしても secure だし,性能の劣化が unikernel より少ないし,gdb 噛ましたり簡単になるし,いいことだらけだぞっていうのが彼らの主張」 / Twitter
まちカドおるみんさんはTwitterを使っています 「ほかにも ASLR やメモリの dedup が効くだとか,ブート周りや MMU 周りのアーキテクチャ依存が減ってより minimum なコードになるぞとかいろいろ恩恵があるのは 3.4 節の other benefits を参照のこと。」 / Twitter
retrageさんはTwitterを使っています 「LKL+muslなlibOSをSolo5に移植してPythonとか動くようにした retrage/frankenlibc at solo5 https://t.co/uRlNV4YizR」 / Twitter
retrage/frankenlibc at solo5
retrageさんはTwitterを使っています 「これ、実装よりの細かい話とか書こうとしてるんだけどまだ自分の中でまとまった知見とかがあるわけじゃなくてやるだけ、みたいな気持ちになっているので筆が進まず」 / Twitter
Unikernels as Processes | Proceedings of the ACM Symposium on Cloud Computing
212-Williams

Linux kernelをUnikernelのライブラリ化する - めもちょー
まちカドおるみんさんはTwitterを使っています: 「Unikernel というか Library OS の源流には Exokernel が居るんだけど,その上流には SPIN や Chorus,V や Amoeba,Accent といった第一世代の Microkernel/Distributed OS が居るし,Exokernel と Unikernel の間にも Xen や kvm,QEMU だけじゃなくて Nemesis や Libra が居る」 / Twitter
Unikernel - Wikipedia
Unikernelな情報 (in Japanese) - Qiita
FadisさんはTwitterを使っています 「「コンテナならユーザ空間だけ立ち上げるからはやーい」から 「コンテナのセットアップするやつに脆弱性があるとやばーい」になって「やっぱりVMで隔離したーい」になって「でも起動に時間がかかるのやだー」になってUnikernelにたどり着くのか #kernelvm」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@syusui_s マイクロカーネルの IPC が遅くてパフォーマンスが……は定説でしたが最近は IPC も十分速くできる,という研究がぽつぽつあります。https://t.co/fG6NokSb5J」 / Twitter
YCSB-A_Zircon.eps - skybridge-eurosys19.pdf
コンテナ目線で考えるUnikernelとmicroVM / MicroVM and Unikernel in the container world - Speaker Deck
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、昔は現代的OSというとマイクロカーネルだったけど、結局実用上はカーネル・リビルドなしにドライバ動的ロードできれば、ユーザ的にはもう十分だった感(笑)」 / Twitter
microkernel-book.pdf
CとRustで一から作るマイクロカーネルOS
mumumuさんはTwitterを使っています 「正しくはATCでした(suzaki先生ありがとうございます. この研究,色々なことをやってて研究として綺麗かと言われるとよくわからんのですが(超上から目線),できること全部突っ込んだ感があって純粋に読み物として面白いかも」 / Twitter
mumumuさんはTwitterを使っています 「Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication [OSDI '20] Microkernelのサーバ間の新しいIso.としてMPKによる手法を提案.そのためにKernelメモリをUserメモリとしてMapしていたり色々ヤバイことやってる.オタクは是非読んで」 / Twitter

仮想化

睡分不足

APIC, MSI-X

Local APICについて - 睡分不足
I/O APICについて - 睡分不足
X540のMSI-X設定 - 睡分不足
MSI/MSI-Xとx2APIC - 睡分不足

KVM

KVM GPUパススルー設定 - 睡分不足
KVMにおけるcpuid命令の取り扱い - 睡分不足
KVMの準仮想化機能 - 睡分不足

VMM

クロスプラットフォームなハイパーバイザ Intel HAXM - 睡分不足
Bareflankを使ってみる - 睡分不足

QEMUコードリーディングメモ - 睡分不足
QEMU/KVM上のゲストのハイパーコールをQEMU側に渡す方法 - 睡分不足

Intel TDX

Intel® Trust Domain Extensions

Intel VT-x

MSI/MSI-Xとx2APIC - 睡分不足
syuu1228/howto_implement_hypervisor: Software Design誌の連載「ハイパーバイザの作り方」の原稿公開用リポジトリ
ハイパーバイザの作り方
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第5回 I/O仮想化「割り込み編・その2」
BitVisor Updates in 2016
Intelの仮想化支援機能「Intel VT」とは? - @IT
インテル バーチャライゼーション・テクノロジー - Wikipedia
x86仮想化 - Wikipedia
22.9. BIOS で Intel VT-x と AMD-V の仮想化ハードウェア拡張を有効にする - Red Hat Customer Portal
Intel Virtualization Technology - 自作パソコン入門
第6期末セミナー2006-1rev1.ppt
スライド 1
KVM PCIパススルー (PCI PassThrough) | nexia inc
VT-x を有効にしたく て 3 日程できなかったのだが、Windows が余計なお世話をしてた件 | ピックワールド(PIC World)
「VirtualChecker」仮想化支援機能に関するCPUの対応状況を手軽にチェックできるツール - 窓の杜
VT-xとHyper-VとVirtualBoxの関係についてのメモ - Qiita
VT-d 割り込み再マッパーが無効になっていると ESXi IO 接続の問題または PSOD が発生する (2149592)
仮想マシンのプロセッサ設定の構成
BitVisor の IOMMU の話 - Qiita
おしぼりさんはTwitterを使っています 「BitVisorはvmxon_region用のメモリを動的確保しているけど、(後で修正するとしても)今はグローバル変数でいいかも。とにかくステップバイステップで進めたい。」 / Twitter
おしぼりさんはTwitterを使っています 「VT-xの有効化はcr0とcr4あたりのビット立てたりしてvmxonするだけなので、まずはvmxonで例外が投げられないことが目標だと思う。その次に仮想CPUのセットアップ、vmcsのセットアップと続くのかな・・。」 / Twitter
おしぼりさんはTwitterを使っています 「例外は全部シリアル通信でやる様にしてたのでやっぱ先にシリアル通信だろうか。一時的に例外ハンドラを書き換えればprintデバッグでも問題ないけど・・・。」 / Twitter
おしぼりさんはTwitterを使っています 「kvmが提供するAPIをつかってVMMつくる方針のほうがまだ現実味ある気がしてきたな。Intel VT-xの機能はkvmから提供されるのでエミュレートの方がメインになるけど。 (Type1をいきなりつくるのが厳しすぎる)」 / Twitter
おしぼりさんはTwitterを使っています 「Type2ハイパーバイザでまともに動くのもそんなに多くないし頑張れば新規性出せるのでは (願望)」 / Twitter
おしぼりさんはTwitterを使っています 「とても参考になる。本当にminimalって感じだ。 https://t.co/JptDUJpQOF」 / Twitter
dpw/kvm-hello-world: A minimal kvm example
おしぼりさんはTwitterを使っています 「もうちょっと大きい https://t.co/Zk1o6BolrZ」 / Twitter
kvmtool/kvmtool: Stand-alone Native Linux KVM Tool repo
おしぼりさんはTwitterを使っています 「memo https://t.co/5Wj0zkNv4i」 / Twitter
sparkler/main.c at master · shuveb/sparkler
mumumuさんはTwitterを使っています 「xMP: Selective Memory Protection for Kernel and User Space [S&amp;P '20] Data-Orientedな攻撃のMitigationというコンテキストで,VUMFUNC/EPTを活用することで細かくメモリの権限を制御(Excutable-onlyや存在するがアクセスできない)したドメインの作成・遷移プリミティブを実装」 / Twitter

VPID

イスラエルエリカちゃんさんのツイート: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行われてたのかな、自分でやるのかな。VPID有効時はINVVPIDで選択的にFlashで良いのかな。"
VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
最近の話題 2008年4月5日
最近の話題 2008年8月23日
SMP環境下でのTLB Consistencyについて - syuu1228's blog

準仮想化

Linux KVM上でSEIL/x86を使う
3.4. 仮想化ハードウェアデバイス - Red Hat Customer Portal
第10章 KVM 準仮想化 (virtio) ドライバー - Red Hat Customer Portal
Virtioについてのまとめ - Qiita
KVMの準仮想化機能 - 睡分不足
KVM - ArchWiki
QEMU - ArchWiki
Fadisさんのツイート: "virtioを介してホストとゲストで共有されるファイルシステムvirtio-fsを作ろうとしている人の話がLWNの記事になってる。ネットワークを介さずvirtioでホストのfsを共有する事でホストとゲストでページキャッシュとロックの共有が可能になるのが利点らしい https://t.co/tEyrwt9S6x"
Subscription required [LWN.net]
virtio virtualbox - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています: 「virtio-fsか」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「virtio を hardware で実装してしまうハナシ。確かにどの OS も driver 持ってるしなあ(xv6 でさえ!)&gt;&gt; Virtio without the "virt" [https://t.co/4Z5bszp3QR] https://t.co/gG1Sfcx37N」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「註・xv6 は元々 IDE driver を持つが RISC-V 版から virtio に切り替わっている」 / Twitter
virtiofsについて - Qiita
FadisさんはTwitterを使っています 「virtio-videoドライバがバニラカーネルに入りたがっているらしい。virtio-videoはホストのカメラやキャプチャデバイスからの入力をゲストが直接読む機能と、ホストの動画エンコード、デコードの為のハードウェアをゲストが利用する機能を提供する準仮想化デバイスのドライバ https://t.co/EHbOncnBy0」 / Twitter
VirtIO Video Driver Coming Together For The Mainline Linux Kernel - Phoronix
ガラスボーさんはTwitterを使っています 「準仮想化ってXenが最初だと思いこんでいたのだが、どうやらDenaliっていうプロジェクトが初出だったらしい。ずっと勘違いしていた」 / Twitter

Confidentail VM

suzakiさんはTwitterを使っています 「Googleが発表したデータを暗号化したまま処理する「Confidentail VM」はAMDのSEV: Secure Encrypted Virtualizationが使われています。 SEVではハイパーバイザー非依存でVMイメージに復号をCPUが行います。鍵はリモートアテステーションを使って渡されます。 CCS19論文が詳細 https://t.co/lG0BS0a298」 / Twitter
Insecure Until Proven Updated:Analyzing AMD SEV's Remote Attestation - 1908.11680.pdf
suzakiさんはTwitterを使っています 「「Confidentail VM」の説明で紹介したCCS19で発表された論文名は Insecure Until Proven Updated: Analyzing AMD SEV’s Remote Attestation でリモートアテステーションを行うファームウェアに脆弱性につての論文。」 / Twitter
PublickeyさんはTwitterを使っています 「Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir https://t.co/yUZ1vl0M1y」 / Twitter
Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir - Publickey
suzakiさんはTwitterを使っています 「Confidentail VMにはGoogleのAsyloがベースになっている。SGX対応は知っていたがAMD SEVも対応していた。 私の知識はOPEN-SOURCE ENCLAVES WORKSHOP (OSEW 2019)で止まっている? https://t.co/iRts3FY11y Asylo’s unified enclave identity framework (Anna Sapek) ビデオ https://t.co/rFcy1h0WAN」 / Twitter
Open Source Enclaves Workshop: July 2019
suzakiさんはTwitterを使っています 「思い出したけど、AMD Secure Encrypted Virtualization (SEV) を活用したTEEはRedhatが開発しているEnarxがある。 これはIETF106のTEEPでも紹介さ入れた。 https://t.co/AxO7d5lW7l https://t.co/Yvh5DDSSke」 / Twitter
slides-106-teep-sessa-enarx-a-teep-use-case-00.pdf

コンテナ

Kubernetes

たった60秒でKubernetes環境を構築できる「MicroK8s」にHAクラスター機能が追加 - GIGAZINE
Kubernetes Internal #1を開催しました - bells17 - Medium
チェシャ猫さんはTwitterを使っています 「本日 Infra Study Meetup の登壇資料です。#InfraStudy Kubernetes の拡張性を活かし、エッジに延伸するためのプロジェクト @KubeEdge 。単なる軽量化版かと思いきや、調べてみたら普通の Kubernetes とは一味違った仕組みが隠されていました。 猫でもわかる KubeEdge https://t.co/Ksfu0uMkrz」 / Twitter
猫でもわかる KubeEdge #InfraStudy / Infra Study Meetup 7th - Speaker Deck
Kubernetes 用 CNI プラグイン Coil v2 の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
拡張性の高い CNI プラグイン Coil v2 の紹介 - Speaker Deck
2020 年の秋、改めて学ぶ Scheduling Framework #k8sjp / Kubernetes Meetup Tokyo 35th - Speaker Deck
How to Schedule Machine Learning Workloads Nicely In Kubernetes | CloudNative Days Tokyo 2020
【暫定版】 Kubernetesの性能監視で必要なメトリクス一覧とPrometheusでのHowTo - kashionki38 blog
第641回 LXDとmicrok8sでシングルサーバーをKubernetesクラスターにする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
軽量でインストールも簡単なシングルバイナリのKubernetesディストリビューション「k0s」、Mirantisがオープンソースでリリース。LinuxとWindowsに対応 - Publickey
Kubernetes Operatorの深層
Kubernetes 1.20からDockerが非推奨になる理由 - inductor's blog
チェシャ猫さんはTwitterを使っています 「正直、Kubernetes で Docker が非推奨になって影響を受けるのはクラスタをセットアップする側だけで、大多数の Kubernetes を使う側の人間には大して影響ないと思うが何故こんなに盛り上がってるんだ…。」 / Twitter
Dockerは非推奨じゃないし今すぐ騒ぐのをやめろ - Cloud Penguins
2020年12月4日 AWS,Kubernetesディストリビューション「Amazon EKS Distro」をオープンソースで公開:Linux Daily Topics|gihyo.jp … 技術評論社

Kata Container

コンテナランタイムKata Containersの実行検証 - Qiita
Kata Containers Home | Kata Containers
コンテナの軽量さと仮想マシンの堅牢さを兼ね備えた新しいコンテナ実装「Kata Containers」、OpenStack Foundationが発表 - Publickey
コンテナを軽量VMで隔離するKata Containersがついにv1.0をリリース | TechCrunch Japan
runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較 | Think IT(シンクイット)
カタコンテナはいかにしてDockerコンテナのセキュリティを強化しているのか | S-Port|鈴与シンワート
Kata Containers
Why Kata Containers doesn’t replace Kubernetes: – Kata Containers – Medium
Kata Container – Kata Containers – Medium
OpenStack発のコンテナ実装「Kata Containers 1.0」リリース | OSDN Magazine

Docker Hub、6カ月使われていないコンテナイメージの削除計画を保留に。従量課金ベースの料金プランを検討へ - Publickey
とほほのDocker入門 - とほほのWWW入門
podman docker 違い - Google 検索
ASCII.jp:Windows 10にはコンテナーがいっぱい (1/2)
R. ShioyaさんはTwitterを使っています 「今まで Docker を使ったことなくて触ってみたのだけど,とりあえずクロスコンパイラを中にいれて外部ディレクトリをマウントしてポータブルなコンパイラを… というのが内部のユーザー ID と外部の ID を動的に一致させるきれいな方法がなくていきなりつまずいた」 / Twitter
R. ShioyaさんはTwitterを使っています 「Mac だとなんか勝手に外部のユーザー ID の権限に変換してくれるみたいだし,Windows も大丈夫くさいのだけど,Linux は内部の ID のままの権限で書き込むようで,結構大事なところだと思うんだけど挙動が揃ってなくていいんだろか」 / Twitter
AWSがDocker Hubの代替サービスを発表予告。パブリックにコンテナイメージを公開可能で50GBまで無料、AWSからなら何度でもプルし放題に - Publickey
Docker Hubの無料プランにおける利用制限、オープンソースのプロジェクトは適用外にするとDocker社が発表 - Publickey
Akso de la MalbonoさんはTwitterを使っています 「ホストのディレクトリを bind mount して Docker コンテナ内から書き出したファイルをローカル側から見ると owner が root になることに対する怨念が蓄積していくことで世界は急速に滅亡の道を辿っている.」 / Twitter
FadisさんはTwitterを使っています 「@Cryolite 雑要約: その問題を解決するためにいくつかの方法が提案されてきたが、バニラカーネル入りを果たした物はまだ無い https://t.co/XJSKVk0VpH」 / Twitter
About · Container Security Book
dockerと称するもの | IIJ Engineers Blog

QEMU

x86 - Where are local APIC addresses in QEMU? - Stack Overflow
QEMU Developer’s Guide — QEMU 5.1.0 (v5.1.0-11824-g8699890d91-dirty) documentation
QEMU 5.1.0 Documentation
QEMU for Windows – Installers (32 bit)
QEMU for Windows – Installers (32 bit)

Disk Images

IMG (file format) - Wikipedia
Disk Images - OSDev Wiki
ISOイメージ - Wikipedia
ISO image - Wikipedia
Apple Disk Image - Wikipedia
Disk Images — QEMU 5.0.92 (v5.1.0-rc2) documentation
virtualization - RAW disk image and .Img format, Difference? - Super User
第11章 QEMU-img および QEMU ゲストエージェント Red Hat Enterprise Linux 6 | Red Hat Customer Portal
14.12. qemu-img でサポートされる形式 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
28.3. qemu-img の使用 Red Hat Enterprise Linux 5 | Red Hat Customer Portal
GitHub - libarchive/libarchive: Multi-format archive and compression library
libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
libarchive-3.2.0
LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR

/var/log/hdk.log

日記 (2014 年 4 月中旬)
日記 (2014 年 4 月下旬)
日記 (2014 年 4 月下旬)
日記 (2015 年 1 月下旬)
日記 (2015 年 2 月上旬)
日記 (2015 年 2 月上旬)
日記 (2015 年 10 月上旬)
日記 (2016 年 12 月下旬)
日記 (2017 年 1 月下旬)
日記 (2017 年 1 月下旬)

技術評論社

LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
第572回 GNOME Boxesを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第590回 Windows/macOS/Linuxで使える仮想マシン管理ツール『multipass』:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第592回 QEMUでGPUの3Dアクセラレーションを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第595回 リモートデスクトップのためのSPICEクライアントあれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

blog

QEMUのトレース機能でOSのデバッグを支援する - uchan note
コンテナランタイムの仕組みと、Firecracker、gVisor、Unikernelが注目されている理由。 Container Runtime Meetup #2 - Publickey
AWS Lambdaの裏側をなるだけ詳しく解説してみる - Sweet Escape
サーバレスの次は「ストレージレス」の実現へ。NetAppがストレージレスを実現する新サービス「Spot Storage」を発表 - Publickey
KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt

スライド

Hypervisor.framework(HVF)の中身 - Speaker Deck

GitHub

intel/haxm: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
bao-project/bao-hypervisor: Bao, a Lightweight Static Partitioning Hypervisor
jovanbulck/0xbadc0de: A Tale of Two Worlds: Assessing the Vulnerability of Enclave Shielding Runtimes
rrreeeyyy/container-internship

infoQ

悪意を持ったコンテナイメージを直接ホスト上に構築する攻撃手法が明らかに
Docker、AWS ECSおよびMicrosoft ACI用Composeのオープンソース化を発表
Compose仕様コミュニティに関するQ&A

Qiita

めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
VirtualBoxの仮想マシンの時計がずれるのを防ぐ - Qiita
ハイパーバイザを作ってみた - Qiita

Twitter

@oshibori_vmm

おしぼりさんはTwitterを使っています 「CPUIDの[bit5]を調べてVMXがEnableなことは確認できた。その後cr4のvmxeビットを1にしてvmxonして例外発生してないが、これはOKなのだろうか。vmxonしてるかどうかを示すフラグとかあれば良いんだけど。」 / Twitter
おしぼりさんはTwitterを使っています 「0x1F0番portへのioハンドリングできた。 (つまりin命令を正常にハンドリングできるようになった) xv6のkernelとxv6.img をhexdumpしてバイナリ見まくった。たのしー。」 / Twitter
おしぼりさんはTwitterを使っています 「あ、ちょっと間違い。0x1F0番目のread commandが動くようにしただけなので、ioハンドリングというか本当にin命令が動くようにしただけ。(write commadはまだなので。)」 / Twitter
おしぼりさんはTwitterを使っています 「これをやる前は.imgの構造について全然理解してなかったけど、hexdump -s 512 -n 4 -C xv6.imgしてkernelのELFファイルのマジックナンバーを見つけたのは結構感動したし理解が深まった気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「理解も何もただのバイナリだけど。」 / Twitter
おしぼりさんはTwitterを使っています 「mmioはバイナリをデコードしてオペコードとオペランドを取り出してエミュレートしなけゃダメっぽい。stosb命令でこれが発生している。」 / Twitter
おしぼりさんはTwitterを使っています 「mp floating pointerのlapic addresからmp configuration tableを参照してlapicのmemory mapped adressをゲットする、というのがxv6のマルチプロセッサ初期化処理で最初にやってること。」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのAPIC Virtualizationではゲストのlapic 物理アドレスへのアクセスをVMCS経由で予め用意した仮想的なlapicアドレスへリダイレクトする。VMExitが発生しないためオーバーヘッドが小さくなる。」 / Twitter
おしぼりさんはTwitterを使っています 「というのは分かったが、lapic addressにはそもそも何が置かれているのか、その中身もkvmが初期化してくれるのか、書き込み、読み込みのインターフェースはあるのか、みたいな所をさらに調べないといけない。」 / Twitter
おしぼりさんはTwitterを使っています 「ちなみにこれは確保したゲスト用メモリサイズがxv6のメモリレイアウトで必要になるサイズ(4G)よりも小さかったので範囲外のメモリアクセスがMMIOとして認識されてただけというオチ」 / Twitter
おしぼりさんはTwitterを使っています 「ホスト仮想アドレス→ゲスト物理アドレス→ゲスト仮想アドレスと辿る必要がありちょっと混乱するな。ゲストはIdentity Mappingにしてくれというお気持ちになる。(そもそもゲストのメモリ仮想化手法が常に既知とは限らないので、ゲストに割り当てたメモリへの書き込み自体KVMインターフェースを介さずに」 / Twitter
おしぼりさんはTwitterを使っています 「やるべきではないんだろうな。」 / Twitter
おしぼりさんはTwitterを使っています 「とはいえSeaBIOSを動かすのちょっと面倒だしなぁ。でもframeBufferとかまでこちらで仮想化する手間を考えるとちゃんとBIOSから起動させた方が早い気もする。」 / Twitter
おしぼりさんはTwitterを使っています 「KVMのAPIドキュメントが結構overview的な範囲しか網羅してなくて、実際にコード読まないと厳しい気がしてきた。」 / Twitter
おしぼりさんはTwitterを使っています 「SeaBIOSの仕様調べるの重いなぁ LAPICのエミュレート飛ばして動かせるか考えてみるかぁ( ˙-˙ )」 / Twitter
おしぼりさんはTwitterを使っています 「mmioを一旦後回しにしてuartを動かすようにした。 とりあえず外部ファイルに「xv6...」を出力するところまではできた。(qemuみたいに別ウィンドウを出してそこにconsole出力させたいのだけど、やり方がわからない)」 / Twitter
おしぼりさんはTwitterを使っています 「xv6(のmmioを完全に排除してシングルコア前提に書き換えたやつ)が自作VMMが動かすVM上で動いた。 まずは画面出力しないとな…。」 / Twitter
おしぼりさんはTwitterを使っています 「最終的にはちゃんとlsなどのコマンドが実行出来るようにして、かつSeaBIOSから既読させるようにしたい。」 / Twitter
おしぼりさんはTwitterを使っています 「mmioを機能させるには、EBA(一部)を正確にエミュレート or SeaBIOSを動かすのどちらかが必要なんだけど、今のところ前者の方が良さげ。(SeaBIOSの中身を知らなすぎる)」 / Twitter
おしぼりさんはTwitterを使っています 「EBDAの間違い」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずLAPICもI/O APICもBDAから取ってきてることはわかった。 1. モックで動かす 2. BDAにちゃんと置く の順番でいけるだろうか…」 / Twitter
おしぼりさんはTwitterを使っています 「KVMにLAPICの仮想化支援機能があることはわかってるのだけど、VMM側で何をすればいいのかわからん。」 / Twitter
おしぼりさんはTwitterを使っています 「@tenpoku1000 そうですね、情報量はかなり少ない気がします。 以下の記事を読むと、ring0レベル(BitVisorやKVM)ではVMCSを用いたVMExitを発生させない方法 or EPT Violationによる例外フックのどちらかでAPICを仮想化してそうです。 https://t.co/yvN2NkD792」 / Twitter
今週の進捗 - bitvisor-summit-5-3-tomita.pdf
おしぼりさんはTwitterを使っています 「基本的にはKVMは全てのMMIOをフックしてるんかな。(APIの利用者がどこまでフックしたいかを事前に知る術がないため)」 / Twitter
おしぼりさんはTwitterを使っています 「メモ: qemu-kvmのコード読めばなんかヒント得られるのでは?(kvmから見たらqemuはユーザランドのVMMなので、今僕がやっているようにAPIでやり取りしているはずなので)」 / Twitter

histric-1

ぬるぽへさんのツイート: "あとあれですね、ファイル共有とメモリの割り当てだけは鬼門なんだけどwsl2はどうするんだろ、前者は9pで普通にsharedやるってちらっと見たけど後者は?hyper-vと同じhot plugで削除はホストOS側から無理やりスワップ?"
るくすさんのツイート: "単純な興味なんですけど、メモリ割り当てが鬼門になる状況ってどういう時があるんですか? ゲストがOS程行儀よく振る舞ってくれない故ですかね… "
ぬるぽへさんのツイート: "今回はゲストが本物のlinuxカーネルなので、wsl1と違って一度linux側に割り当てたメモリを解放後にホストに返すのがゲストにだいぶ手を加えないと難しいのでは?という… "
るくすさんのツイート: "なるほど。恐らくXenのVMコントロールチャンネルみたいな機構があるのかなと思いますが、いずれにせよ多少の準仮想化は必要になるでしょうね MSがこれからオープンにすると言っているオレオレLinuxパッチはその手のドライバかと… "
ぬるぽへさんのツイート: "ですかねー、まぁやる気とリソースさえあればやればいい話っすからね… "
るくすさんのツイート: "MSのパワー半端ないすね… "
SODA Noriyukiさんのツイート: "これって、linux/drivers/hv/hv_balloon.c にある Hyper-V 用 balloon ドライバでは機能が足りないって意味なんでしょうか?もしそうだとするとどのあたりが足りないんでしょう?… "
ぬるぽへさんのツイート: "実は良いかもしれませんがあまりうまく行った思い出がなく言及し忘れてました... 4年くらい前にhyper-vを使ってた時、バルーニングは全然メモリをホストに返てくれなかった思い出があります(数百MBくらいしか返してくれなかった) 今の状況が改善していればまんま動いてくれるかもしれません… https://t.co/xedpDkniEz"
SODA Noriyukiさんのツイート: "なるほど、ありがとうございます!… "
品川 高廣さんのツイート: "Technion 相変わらず頭のおかしいことやってるなぁ(SMTを使ったNested Virtualizationの高速化: https://t.co/eg0fAMv8Ac)。低レイヤ大好き企業だな。… "
Using SMT to accelerate nested virtualization
hrk先生さんのツイート: "次はイスラエルのテクニオンから。SMTを使ってネストされた仮想マシンを高速化する。Hyperviser+VMon VM of cloud environment, etc. 下から、Host Hypervisor, Guest VM, Nested VM etc. VMどうしのスイッチが増えるOverheadを押さえるためSMTの同時実行を使う。"
hrk先生さんのツイート: "ただアプリが全コアをフルに使うならばコンテクストスイッチの機会が増え、結局オーバーヘッドの減少が限定される。それを解決するため、SVT(実行は1本だがコンテクスト多重をする)を提案。凄くあたらしくはないが、良く考えられている良い結果に見える。ただHWを改造するので現実性はない。"
Takashi KawasakiさんはTwitterを使っています: 「WindowsでほぼHyper-Vが必須コンポーネントになってしまったので、VMwareもVirtualBoxも使えなくなってしまって、実のところ従来よりも不便になっているのは事実なんだよなぁ。金で解決できない不便さ。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「@kthrtty Hyper-V、使いにくい上に機能も足りないですが、仕方がない部分もありますよね。」 / Twitter
だよもんフレンズは転職したいさんはTwitterを使っています: 「@masaru0714 @n12i @BsdHacker 仮想環境はXenとかでも同様に、ユーザドメインのOSがLinuxでも*BSDでも同様に、時刻が狂いますね。倍速で遅れたりするのでntpdで同期が間に合わない。性能測定でtimeコマンドが信用できなくて困る。」 / Twitter
FadisさんはTwitterを使っています 「ハイパーバイザ型のVMでコンソールから電源を落とすだけの為にゲストのlinuxがACPIイベントを正しく処理してユーザ空間のacpidに投げて、ってやるのアホっぽいって事で、電源ボタンのイベントだけを拾ってinitに直接シグナルを投げるtiny power buttonドライバが出来たらしい https://t.co/ooGrKrrhfi」 / Twitter
Linux 5.7 Getting A "Tiny Power Button" Driver - Phoronix
[PATCH 0/2] ACPI: Tiny power button driver - Josh Triplett
retrageさんはTwitterを使っています 「Nabla Containers触ってたときに思ったけどコンテナでもプロセス生成以外にいろんなところが走るので結構遅いんだよね。runncだとコンテナイメージからISO作ったりしてるし」 / Twitter
だんぼーだよさんはTwitterを使っています 「結構誤解されているぽいですが、最近のハードで Windows 10 を動かしている場合、CPU から見た OS は Hyper-V のハイパーバイザーで、Windows 10 は Hyper-V の上にいることが多いです。意識していないと思いますがセキュリティのため仮想化されています。msinfo32 を昇格して実行すると確認できます。 https://t.co/4g1RgKDjID」 / Twitter
まちカドおるみんさんはTwitterを使っています 「1960 年代から 2020 年までの仮想化の歴史と分類と特徴をまとめた最高のサーヴェイ論文が 5 月に出たのでみんな読もう #arm_study &gt;&gt; The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1 https://t.co/2aW7emmj0i」 / Twitter
The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1
suzakiさんはTwitterを使っています 「@kotatsu_mi ACM Computing Surveysは有料ですが、同じ著書によるarXiv版があります。こちらはPDFが無料。 The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers https://t.co/raeoWNkaGK ちゃんとJournal referenceにComputing Surveysが書かれています。」 / Twitter
[1904.12226] The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers
suzakiさんはTwitterを使っています 「「めくるめくLinuxカーネルじゃないLinux実装の世界」 https://t.co/a0ZnkgGUGJ カーネル/マイクロカーネル/ライブラリOSのAPI互換、市スコールエミュレーション、アプリケーションレベル互換の話。 TEEのABIの脆弱性を解析したA tale of two worlds[CCS19]を思い出した。 https://t.co/h6IR1xjRmT」 / Twitter

Shinji KonoさんはTwitterを使っています 「コンテナはプロセスに対するメタ操作として定義されるべき」 / Twitter
mumumuさんはTwitterを使っています 「Directvisor: Virtualization for Bare-metal Cloud [VEE '20] ベアメタルクラウド向けのVMMで,性能とManageabilityの両立をがんばる.高性能化のため,HW(既存手法IOデバイスが主だがこの研究はIPIやTimerも含む)を直接OSに見せる.MigrationはGuest Agentに手伝って貰い仮想HW経由で行う等工夫.」 / Twitter
Shinji KonoさんはTwitterを使っています 「VMの中でVMを上げるのは初期に研究があって、sensitive instructions をすべて実装とか言う条件があれば良い。当たり前だが、それを書くのが論文。実際にはCPUがそれようの機能を持ってるかどうかが大きかった。なくてもなんとかしてたが。」 / Twitter
品川@学生/共同研究募集中さんはTwitterを使っています 「国際会議 OSDI 2020 に Rust で書いた OS の話が2つある。Theseus は全てのコンポーネント間の厳密な隔離を目指した実験的OS(単一アドレス空間、単一特権レベル、no POSIX)、RedLeaf は主にデバイスドライバ等の一部のドメインの隔離を目指した設計(POSIX subset)。https://t.co/iEzuC0zAyP」 / Twitter
OSDI '20 Technical Sessions | USENIX
mumumuさんはTwitterを使っています 「Reducing World Switches in Virtualized Environment with Flexible Cross-world Calls [ISCA '15] 現在のHWはApp-&gt;OS(syscall), VM -&gt; VMM(vmcall)などの遷移のみサポートしているが,アドレス空間と権限を一般化したWorldという単位を導入してVM1'App-&gt;VM2'OS等の遷移もサポートしようという提案」 / Twitter
mumumuさんはTwitterを使っています 「vSlicer: Latency-Aware Virtual Machine Scheduling via Differentiated-Frequency CPU Slicing [HPDC '12] VM環境でIO-boundなApp性能が低い原因の1つがVCPU Sched.であることを指摘し,より短いタイムスライスでより頻繁に動作させることでFairnessを保ちつつ性能向上」 / Twitter

MyIgnite - OS internals: Technical deep-dive into operating system innovations
仮想マシンのメモリを、ネットワーク経由でほかのサーバから拝借して増やせる「VMware Cluster Memory」、VMwareが開発中 - Publickey
英SophosがWindowsサンドボックスの「Sandboxie」を無償化、将来はオープンソースに | OSDN Magazine
Chapter 10. Technical Background
Hideki EIRAKUさんはTwitterを使っています 「センシティブ命令といっても VMEXIT につながらない命令もあるから厄介」 / Twitter
ARM向け自作ハイパーバイザーT-Visorを公開しました | 己の不学を恥じる
AMD CPUに待望の“Nested Virtualization”対応 ~プレビュー版「Windows 10」で - 窓の杜

ページャ/TLB/キャッシュ管理

その他

GIGAZINE

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まだこの手の気休めソフトが存在するのね。 https://t.co/OU7VMY9AZN (再利用が期待されない)バックアップ的なコピー(=ファイルキャッシュ)で他の仮想ページ追い出さない、といった「事前に汚さない」機能にしないと意味がないのだけれども。」 / Twitter
放置しておくだけでメモリの使用を激減させてくれるフリーソフト「Reduce Memory」 - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「4~16KB単位で読んでの比較とか、あまり意味ない。 I/Oサイズ1MB以上で、Direct I/O + Async I/O でユーザバッファに直接DMA転送するのが一番速い。 (Async I/O で重畳できない時は 4MB以上が望ましい) https://t.co/wITXWqQPrF」 / Twitter
rryu🕳さんはTwitterを使っています 「まさかのAVX。mmapの方が速いのはバッファ等への余計なコピーが発生しないとかだと思っていたが… / “プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE” https://t.co/qnNovvTeGU」 / Twitter
プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同じPCIブリッジにぶら下がったNVMe間でダイレクト転送(PCI P2P DMA)という実験的パッチの話。 https://t.co/thzgoKJgCi https://t.co/jOdFaW1kz6」 / Twitter
Experimental Linux Patches Allow User-Space Peer-To-Peer DMA Between NVMe Drives - Phoronix
PCI Peer-to-Peer DMA Support — The Linux Kernel documentation

セキュリティ・キャンプ2016で使用した、熊猫のテキストを公開しました。: 熊猫さくらのブログ
The OOM CTF
Implementing cooperative multitasking in Rust
pmap ソースコードリーディング
pmap でプロセスのメモリマッピングについて調べる
DSAS開発者の部屋:最近のPython-dev(2017-08)
Chapter 10. Linux® Binary Compatibility
2010年10月7日 Linuxバイナリ互換機能の仕組みの紹介:FreeBSD Daily Topics|gihyo.jp … 技術評論社
2012年5月31日 Linuxバイナリ互換機能にDTrace:FreeBSD Daily Topics|gihyo.jp … 技術評論社
フルボッコのリソース制限値(limit)の修正をした話 | Developers.IO
【翻訳】goroutine の仕組み - まるまるこふこふ
FastContainerアーキテクチャ構想 - 人間とウェブの未来
実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャと今後の課題 - 人間とウェブの未来
Rump Kernelのreadが遅くてハゲかけたので調査 - livaの雑記帳
第二回 #wsa研 でHTTPリクエスト単位でコンテナを再配置する仮想化基盤の高速なスケジューリング手法について発表しました - 人間とウェブの未来
次期Windows 10、タスクマネージャーのメモリ報告が変更 - PC Watch
プロセスイメージ (Sun Studio 12: パフォーマンスアナライザ)
セキュリティキャンプと自作Slab allocator SLOBA - 空き地の資料室
atsisy/sloba: Simple and fast slab allocator using slob interface
こんなところに増えたコアが効く ~【2018年度版】マルチコアCPUはこう使え! - PC Watch
詳解xv6 Page tables 2

キャッシュ

false sharing

Livaさんのツイート: "anderson lockの論文実装だとx86の64Bのキャッシュラインに乗ってしまって、false sharingが起こるという話の事 だね! #liva_notebook https://t.co/FL6aqBf1Su"
slankdevさんのツイート: "True/False SharingとC++について https://t.co/JlMlZT4kqg #liva_notebook #slankdev > . @liva_jy 氏の排他制御の話が参考になった"
C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
false sharingの整理 - yoskhdia’s diary
C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
Ryzen1800xでfalse sharing - Qiita
とみながたけひろさんのツイート: "フォールスシェアリングですね。単純に見えるデータ構造ほど、意外なはまりがあってつらい(ポインターのサイズが変わってて違う環境で激しく遅くなった、とか)… "
マルチスレッド開発ガイド: 3.4 スレッド間のフォルス・シェアリングの回避と特定 | iSUS

フラッシュと無効化

Tips IA32(x86)命令一覧 Wから始まる命令 WBINVD命令
Tips IA32(x86)命令一覧 Iから始まる命令 INVD命令
Linuxメモ : キャッシュ操作(Invalidate、clean、flush)の意味
用語の意味を教えてください。 Cache Flushといった時、それによ… - 人力検索はてな
tsujamin/comp3300-cache-disable-kmod: cpu cache disabling kmod for linux ~3.8
[SOLVED] Disabling CPU caches
Linuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ(キャッシュのフラッシュと無効化を追加) - Qiita
先日U-Bootに投稿したARMv7MのLinux起動時にデータキャッシュを無効にするパッチについての備忘録 - /home/tnishinaga/TechMEMO
ストリーミング SIMD 拡張命令 2 のキャッシュ操作
x86 に 3 オペランド論理演算命令と新キャッシュフラッシュ命令が追加 - 教育は参考ブログ

DMA

DMAとキャッシュの関係 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
DMA対応と言われたら(2) | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
夜でもアッサム: [クイズ]DMAをする時に、いつcacheを操作するか

Ryzen

satさんのツイート: "Ryzen1800xは - 8コア16スレッド - 4コアごとにCCXという一塊になってる - L1~L2キャッシュはコアごとに持つ - L3はCCXごとに持つ と、PC用の石としては比較的複雑な構成です。そいつらの性能を事細かに測ってた途中に天使が降りてきて「それ本に要るんか、締め切りいつや」と言われたのでほぼ捨てた"
まさみさんは語りたいさんのツイート: "L3をCCXごとにまとめるところがAMDらしいなあ。IntelだとL3は全部共有が基本だし。… "
satさんのツイート: "こういう構成のおかげで初心者用の本に「CCX」という単語が載ってます。でないとL3なんでこんなところで切れてるの、という説明ができなかったから… "
まさみさんは語りたいさんのツイート: "L3の影響まで測ってるんだ・・・・… "
Fomalhaut Weisszwergさんのツイート: "同人誌として出版というのはいかがでしょうか… "
satさんのツイート: "そのうちやるかもです。一般に売れなさそうなのとか、売れるかわかんないものを、これまで同人誌に投入してます… "

ACPI

まさみさんは語りたいさんのツイート: "ACPIにはPPTTというのが入って、これでキャッシュ階層を定義できるらしいぞ。 https://t.co/NMaZUdHMnd"
[RFC,3/4] ACPI/PPTT: Add Processor Properties Topology Table parsing - Patchwork

blog

キャッシュは諸刃の剣 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
beagleboard を触ろう - CPU キャッシュ:組み込みエンジニアの週記:So-netブログ
Linuxエンジニア日記 ページキャッシュの効率化
ファイルアクセスを高速化する方法を調べてみた - a9bのブログ
CPU とキャッシュのはなし - graphics.hatenablog.com
ADCX, ADOX, PERFETCHW, RDSEED 命令が追加 - 教育は参考ブログ
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
perf statでL1,L2(,L3)キャッシュミス測定 | 俺とお前とlaysakura

Qiita

Linuxのdrop_cachesにwriteした時の動きを追う - Qiita
キャッシュメモリの恩恵をてっとりばやく体感する - Qiita

Wikipedia

キャッシュメモリ - Wikipedia
Windows SuperFetch - Wikipedia
Windows ReadyBoost - Wikipedia

Twitter

電力

とみながたけひろさんはTwitterを使っています: 「最近のタブレットやノートPCは動画再生時間とかで電池の持ちが書かれてるけど、CPUはほぼ負荷なし、限界まで最適化されてしまったHW動画デコーダーの電力はどの製品もほぼ同じ、なのでCPUの最小パワー状態の電力と、画面とWiFiチップの電力ベンチ状態な気がしてならない…」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter
とみながたけひろさんはTwitterを使っています: 「最近のCPUはクロック下げると勝手にL2$のwayがへる(電源オフになる)らしいが、これ、こういうベンチとか向けなんやろな。まあいつでも10並列とかでコンパイルしてるわけちゃうからやるのが当然なんやけど」 / Twitter
とみながたけひろさんはTwitterを使っています: 「なおインテルは「製造ばらつきの関係で電力を多目に使う」wayを優先的に電源オフにするとかいう仕組みをいれてるらしい。工場で電力を測る行程があるんだろうけど、よくやるなあ」 / Twitter
とみながたけひろさんはTwitterを使っています: 「温度とか一定にしてそれなりの時間かけて測定しないといけないはずなので、理論上は動くけど実際にわかるぐらいの成果を出すのは大変そうなんだよねえ」 / Twitter
とみながたけひろさんはTwitterを使っています: 「参考資料(これはAppleのA11,A12プロセッサの比較で出てきたもの) https://t.co/Raza8z0vSy より &gt;The conclusion is here is that Apple is employing partial cache power-down in what seems to be per-bank granularity.」 / Twitter
The Apple A12 - First Commercial 7nm Silicon - The iPhone XS & XS Max Review: Unveiling the Silicon Secrets
中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t ソフト屋さんから見ると一見凄そうに見えるのですが、CPU側からするとN-way cacheってそういうハードがあるわけじゃなくて1-wayつまりdirect cacheがN枚あって、N個の結果をセレクターで選んでるだけなんですよね。2のべき乗でないwayとかも割と簡単に作れます。」 / Twitter
中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t キャッシュ読み込みはN-wayの中でデータを持っている1-way分のdirect cacheがラインを返しているんじゃなくて、N個のdirect cacheが同時にラインを返してセレクターが選ぶので、N-1個のキャッシュは毎回無駄に動作しているんですな。」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュラインを意識すると、処理性能が2~5倍くらい変わることがある話。 カメラ画像90度回転処理で、簡単に例示してみる…「分かり易い」と思ってもらえると嬉しいけれど、さて? https://t.co/X5UIyCl0nH… "
キャッシュラインの意識は大事という話 // Speaker Deck
INADA Naokiさんのツイート: "これで重要なのはキャッシュラインサイズではなくて、何本のキャッシュラインにメモリへのライトバックなしに同時に書き込めるかだと思います。 例えば8wayキャッシュなら下位アドレスが一致するラインを8本しか持てない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "アドバイスありがとうございます。 L1についても考えると、結構この辺に肝がある可能性が高いかもしれません。 ともあれ、もう少し追試してみねば…… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、キャッシュライン+AVX2版だと、8K画像(120MB)の回転 = 合計120MB read + 120MB write を 22msで完了=合計240MB/22ms = 10.65GB/s でメモリアクセスできている計算。なかなかすごいな。 https://t.co/X5UIyCl0nH"
Shirouzu Hiroaki(白水啓章)さんのツイート: "INADAさん(@methane)に n-Wayセットが原因では?という示唆を頂いた。 確かに有りそうと思って、同時アクセスするアドレスを極力被らない形にしたところ、見事に64byte~128byteが最速となった。 最後の疑問は、なぜAVX2 gatherではその影響を受けなかったか、という点。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュライン版は図示した通り、srcを1ライン読み取ってscatter I/O的にdstに分散配置している。だが、AVX2にはgatherしかないため、dst 1ライン分をsrcからgather的にかき集めている点が違う。 だがentryの同一wayへの被り方という意味では、どちらも大差ない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "逆に言えば、キャッシュライン版も gather I/O的な配置に逆転させると、もっと安定して高速化する可能性がある? (entryを極力被らない形にするとAVX2版とキャッシュライン版の差は2倍→1.5倍程度に近づいた)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにエントリが被る場合も、dirtyなentryを無効化するよりも、cleanなentryの無効化するほうがずっと軽いはず。 そっか、ではキャッシュライン版はgather版にしたほうが良さそうだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "あとでスライドも変更しておこう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "やはり、scatter ではなく gather にすることで、エントリが被る場合のペナルティが圧倒的に減った。常にAVX2 gather に肉薄する速度に。(性能差は概ね10%以内)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、個人的には、 「(メモリアクセスで)scatterとgather、どちらでも使えるなら、gatherを使え」 という教訓を得た。(wayが重なった時のペナルティが圧倒的に軽い)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験前の目論見では「64byte単位最速に見えるけど、128byteにするとお隣の先読みも発生してさらに多少高速になるよ」というおまけストーリーを付与するつもりだった。 むしろ32byte最速でおや?となったのだが、ともあれn-Way補正後判明したのは、今回は先読みによる実数値改善はほぼ無かったこと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "いずれにせよ、実験・実測は大事。 (一方で、特定環境・特定条件による一側面結果、ということも忘れずに)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「キャッシュラインの意識は大事」のスライドを更新。 (32byte最速の原因は競合性ミス、その影響をscatter→gather形にすることで改善し、理論通り 64byte/line~128byte/line が最速となった例で説明) https://t.co/X5UIyCl0nH… https://t.co/IwUfDhIBIQ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "githubに置いたテストコードも更新。 https://t.co/0YE3TThEO2 ともあれ、スライドのアップロード&公開は初体験だったが、レベルの高い低レベルな方々?にも見て頂けているようで良かった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「scatterによる競合性ミス」と結論したところ、ヘネパタにi7について、こんな記述があった。本当にラインサイズ未満の書き込みで競合性ミスが出るのか、単に10エントリのwriteバッファ数を超えたためなのか、再調査が必要になった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにscatter版だと、32byte/line扱いで同時8ラインへの追記、64byte/line扱いで同時16ラインへの追記、が発生していて、10エントリのwriteバッファ数の境界となるため、状況証拠としてはこちらが原因である可能性も小さくない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "一方、それだと素数*32などの画素数で改善する話と整合しないところはある。"

@mhiramat

ひらナツさん@散文家さんのツイート: "はー、なる。MSRを使って処理しているからタスクスイッチングのところでマスクをクリアしてやれば、そのタスクが使っていたL2/L3のエントリは別に使うことができるようになるわけか。#linuxcon"
まさみさんは語りたいさんのツイート: "キャッシュラインで配列舐める話はprefetchの使い方まで考えるとバラエティが増えるし、実は2のべき乗単位でないほうがいい時もある、という話を15年ぐらい前のYLUGで聞いた。吉岡さんがPMU使って測ってた気が。"
まさみさんは語りたいさんのツイート: "あれ?だれかNかFの人が発表して、吉岡さんがPMU使うとキャッシュミス測れていいですよ、みたいなコメントしたんだっけ?"
まさみさんは語りたいさんのツイート: "あと当時のintelプロセッサはキャッシュ先読みアルゴリズムが結構複雑でコロコロ変わるので、世代によって最適なやり方が違うとか聞いた気がする。"
まさみさんは語りたいさんのツイート: "「キャッシュメモリからレジスタにアクセスする際のレイテンシ」は、「キャッシュメモリからレジスタに読み出す際のレイテンシ」でいいと思う。。前者だとキャッシュが主体的に動いてるみたい。"

@fadis_

Fadisさんのツイート: "clflushがマニュアルではフラッシュの完了を待たないことになってるけど、Intelさんがフェンス忘れても大丈夫なように実際には完了を待つようにしてたら、不揮発メモリ用に高速なフラッシュが必要になってマニュアル通りの挙動のclflushoptを追加する羽目になる話面白い"
Fadisさんのツイート: "gcc-4.9はskylakeで追加されたCLFLUSHOPT XSAVEC XSAVESが吐けないみたいだけど、ユーザ空間でこれ使って嬉しい状況そうそう無さそうだし4.9でemerge続けるか…"
Fadisさんのツイート: "イマドキのNICはL3キャッシュに直接DMAしてくるからCPUからデータが見えるようになった時点ではまだflushされていない、と #kernelvm"
Fadisさんのツイート: "clflushopt、clflushが同期的に動かないかもしれない事になってるけどみんな同期的に動くことを期待するから、同期的に動くようにしてたけど、NVMMするのにあたってそれでは困る状況になったから作った「本当に同期的に動かないclflush」だっけ #kernelvm"
Fadisさんのツイート: "@uchan_nos x86_64の多くのプロセッサはスヌープ方式でキャッシュ一貫性を保っている。ただスヌープ方式は単一のバスが混雑してスケールしないためコア数が多いプロセッサでは使いにくく、そういったプロセッサではディレクトリ方式が併用される"
Fadisさんのツイート: "キャッシュ一貫性が保たれる複数のCPUのうち1つが書き込みを行うと、一般には他のCPUが持っている同じ位置のキャッシュは破棄される。これはキャッシュラインの長さ単位で行われるため、隣接する2つの値に別々のCPUが読み書きしていると、同じ値を触らなくてもキャッシュの捨て合いが生じることがある"
Fadisさんのツイート: "これはC++ではvectorのように隙間なく並んだ値を複数のCPUで処理する場合L1 cacheの長さ単位で同一CPUに処理させないと性能が落ちる可能性があるという話なので、C++17から同じL1 cacheに乗らない為に十分な幅を表す定数 std::hardware_destructive_interference_sizeが用意されている(n4659 §21.6.5)"
Fadisさんのツイート: "正しく綴ることが難しいstd定数選手権で上位狙える"

@hisak

Hisaki OharaさんはTwitterを使っています: "Intel MPX, Cache Allocation TechnologyにCode and Data Prioritizationを追加、Intel Processor Traceに大幅な追記、あたりがrev.55での差分かな。今回は結構でかいですね。"
Hisaki Oharaさんのツイート: "IntelのCache AllocationってL2も対象になったってマジか #linuxcon"
Hisaki Oharaさんのツイート: "ちなみにcache monitoringはHaswellからで、allocationはBroadwellから。どのSKUが持っているかは知らん。 #linuxcon"
Hisaki Oharaさんのツイート: "Haswell-EPも一部のSKUはCAT持ってるらしい。ガチャだ。 https://t.co/aS0zkAL1No https://t.co/LL8Pqv0twy"
Hisaki Oharaさんのツイート: "LinuxConで聞いたIntel Cache Allocation TechnologyがL2にも適用できる件、調べてみたら今年4月に出たIntel SDMのDocumentation Changeに記載されていた。すっきり。"

@satoru_takeuchi

sat@引退さんのツイート: "端的にいうと(ID,キャッシュの範囲)の組があって、IDはどう使っても良い。タスクでもコンテナでもVMでも。IDごとに独立したキャッシュを割り当てる"
satさんのツイート: "linux豆知識: /sys/devices/system/cpu以下を見ると、各CPUがどのノードに属しているかとか、どのCPUとキャッシュを共有しているかとかがわかるよ"

@KuniSuzaki

suzakiさんのツイート: "CAT:Cache Allocation TechnologyではL3のキャッシュをアプリケーション(CPU?)毎に分け、Noisy applicationからのキャッシュアクセスを封じ込める。L3_QoS_MASKで実現。"
suzakiさんのツイート: "L2 Cache用にもL2_QoS_MASKがMSRにあって、L3と同じことができる。"

@tanakmura

tanakmuraさんはTwitterを使っています: "CLFLUSHOPT の謎がとけた。 http://t.co/xBQA5WkDmI の CLFLUSH と https://t.co/nQS8eDg7Kl の CLFLUSHOPT の挙動を比べても CLFLUSHOPT のほうが改善される理由が不明だったが、"
tanakmuraさんはTwitterを使っています: "「CLFLUSHは実はこれまでの全CPUで順序付けてたから、MFENCEはいらなかったよ。順序が必要ないときは、CLFLUSHOPTを使って、最後にSFENCEしてね。」と、いうようなことが、7.5.6 CLFLUSH Instruction に書いてある。"
tanakmuraさんはTwitterを使っています: "CLFLUSH は、3A, 2A では、「CLFLUSH命令間では順序保証しないから、順序付けるならMFENCE入れろよ」と書いてあるが、最適化マニュアルには、"

Tsukasa #01さんはTwitterを使っています: "【Intel SDM 更新】 Revision 055 での主要な変更点は、Intel MPX と PT にマトモなドキュメントがついたことと、Skylake 以降のアップデートですかね。キャッシ
なかがわがくたろうさんのツイート: "Intelのプロセッサにcache QoS機能があるの知らなかった https://t.co/6xd26SENze"
naoさんのツイート: "挙動のおかしいドライバーが最適化を外すと動く場合、ちゃんとvolatile宣言が入ってるか、キャッシュの一貫性は保たれてるか、100回チェックしてからコンパイラのバグを疑え、というのが家訓。"
Kazuho Okuさんのツイート: "特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス"
InstLatX64さんのツイート: "Useful Prefetch* chart… "
みやた二進いちろうさんのツイート: "webサーバでcpu 1次キャッシユのどのラインがホットかを計測して、Cの構造体の中の順序を変えるnetflixと比べればヌルいのでは。… "
mattnさんはTwitterを使っています 「CPU キャッシュを生かすなら配列インデックスに気を付けろという話。Go に限らないあるあるな話。 #golang https://t.co/9jIYNXkqer」 / Twitter
Go and CPU Caches - Teiva Harsanyi - Medium
satさんはTwitterを使っています 「CPUのキャッシュメモリにおける大きな問題の一つ、スラッシングについて、実際に問題を発生させて凄まじい性能劣化が起きる様を確認した記事です。高級プログラミング言語ではこういうのがいいかんじに隠蔽されてたりします キャッシュのスラッシング|sat https://t.co/J7FFZm252r #zenn」 / Twitter
キャッシュのスラッシング | Zenn
青子守歌さんはTwitterを使っています 「D$とI$って書いて「データキャッシュ」「インストラクションキャッシュ」と読ませるのはまぁ確かに界隈が狭すぎるか…。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Intel64にはキャッシュ予告コマンドがあるのだが、それは計測でちゃんと差が出た。それを出すようなコンパイラがあるのかどうかは知らないのだが。」 / Twitter
x64 - Wikipedia
Shinji KonoさんはTwitterを使っています 「一応、CPU/IO Burstとかはやるわけなんだが、それが何を意味するのかはわからないものだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「キャッシュや仮想メモリの性能の問題、つまり hit率=性能 も、問題は解けても、それが何を意味するのかを理解してるかどうかとは別。自分でも学部生の頃、おんなじようなこと言われた。 この問題はなんのために用意されてるのか ってことね。先生の顔色を読んで欲しいわけじゃない。」 / Twitter

CPUID : キャッシュメモリの大きさ - 研究日誌。
Intel SDM version 049 | Hisak's Tumblr
インテル-CMT-猫マスターで/ README・01org /インテル-CMT-猫
キャッシュ制御組み込み関数
VTune でキャッシュのヒット/ミス回数を取得するには | インテルソフト あるある情報局
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
コンピュータアーキテクチャの話 (184) キャッシュコヒーレンシ | マイナビニュース
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
Dragon protocol - Wikipedia
DMA リソースの管理 - デバイスドライバの記述
バスの仕様 - デバイスドライバの記述
プログラムの動作が異常に遅い原因は「ランダムアクセス」かもしれない - GIGAZINE
Intel 64ビットマシンでキャッシュを有効/無効にする:CDビットは常に設定されていますか?

TLB

コヒーレンシ取られない

VPID

しゅううGXさんはTwitterを使っています: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行
なかみりさんはTwitterを使っています: "“VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful” http://t.co/cAaAHyJxSx"
VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
最近の話題 2008年4月5日
最近の話題 2008年8月23日

Fadisさんのツイート: "TLBはハードウェアがコア間でコヒーレンシをとらない → 1つのコアでEPTエントリを追っていた為よそのコアのTLBで立っていたdirtyページを見逃す → 一部のメモリが古い状態でマイグレーション先が動き出してしまう #kernelvm"
NOKUBI Takatsugu野首貴嗣さんのツイート: "修正 EPTEを読む前に全コアでTLB shootdownをする コードにすると数行 これで2〜3ヶ月を無駄にした #kernelvm"
蟹の赤ちゃんVS蛸の赤ちゃんさんのツイート: "別々のCR3を持っているのでTLBのキャッシュコヒーレンシが維持されない #kernelvm"
_さんのツイート: "一部のdirty bitはTLBからまだメモリに落ちてきてなくて情報が古い #kernelvm"
るくすさんのツイート: "dirty bitまでTLBキャッシュに載るのやばくない... #kernelvm"
_さんのツイート: "EPTはコア間でコヒーレンシーが取られない #kernelvm"
Deep(Ph.D Go player)さんのツイート: "@RKX1209 EPTを全てクリアすれば、次のメモリアクセス必ずViolationします。 もししないなら、TLBに乗ってるマッピングを使われてるか、別コアからアクセスされているかだと思います。"
EPT と TLB でしくじった話
とみながたけひろさんのツイート: "ページテーブル、マルチコアでコヒーレンシとられないほか、投機実行で勝手にTLB載るのも辛いんだよね。超ハマりパターン、、、 https://t.co/4n6S3WeOxZ"

DPDK

NOKUBI Takatsugu野首貴嗣さんのツイート: "DPDKのその他の高速化手段 Hugepages: TLB missを避ける CPU affinity: 特定のCPUにスレッドをはりつける SSE, AVXなど使えるものは全部使う #kernelvm"
NOKUBI Takatsugu野首貴嗣さんのツイート: "Hugepageでのメモリ割付 OSはhugepageが常に有効 #kernelvm"

PCIDs

Hisaki OharaさんはTwitterを使っています: "Haswellで入ったのはinvpcidという命令のことではなかったっけ。それまではただのpcidでTLB selective invlは出来なかったから非常にいまいちだったという。"
なまえだよさんはTwitterを使っています: "FreeBSD 10ではIntel CPUのProcess-context identifiersに対応するパッチにより、コンテキストスイッチの度にTLB全体をフラッシュする必要がなくなったのでコンテキストスイッチのレイテンシも改善されるようですね…"
Tsukasa #01さんはTwitterを使っています: "oO( ってことは、最新の Intel CPU における TLB ってエントリ当たり 24 ビットものタグがついてるのか……。いや、どれほどのオーバーヘッドなのか知らんけど。 )"
Tsukasa #01さんはTwitterを使っています: "@hisak 調べてみると PCID 自体は Westmere (Sandy Bridge の 1 個前) まで遡れました。"
Tsukasa #01さんはTwitterを使っています: "@syuu1228 だいたいそんな感じみたいですね。付け加えて言うと、タグ付き TLB に相当するような機能は Intel 製プロセッサだと VPID と PCID の 2 種類が存在
品川 高廣さんのツイート: "INVPCID命令ですね。CR4の読み書きによるflushよりINVPCID命令の方が217ns速いのでLinux起動時にINVPCID命令を呼ぶようになったけど、BitVisorはINVPCID命令に対応してなかったので落ちたという話だそうです。 https://t.co/oQmyPQXrb4"
凍ってない方のアカウントさんのツイート: "x86、何故にtagged tlb実装(= PCID)したのがめちゃくちゃ最近なんだろう、ないと普通に性能落ちない…? VPIDでどうせtaggedになるから載せるか、みたいな話なんかしら(正確な登場時期も含めよく分かってない"
Ryou Ezoeさんのツイート: "@syuu1228 Linuxカーネルが対応したのが4.14で多くのVMがゲスト側に見せてないので現状だと割と使用不可(AWSだと半々)という実情と書いてあって不思議な気持ちになっている。 https://t.co/5dPE6uZbaM"
中村 実さんのツイート: "@syuu1228 PCIDがSDMに登場したのが2011年10月の040版からですな。 https://t.co/pC1mrC8s33 もともとi386がコンシューマ向けでサーバー向けにこんなにガリガリ使われることを想定してなかったからコンテキストスイッチでTLBフラッシュでOKOKのお気楽仕様に… https://t.co/K0OfETdyvC"
Hisaki Oharaさんのツイート: "PCIDはWestmereからで、invpcid命令はHaswellからだった気がする"
Hisaki Oharaさんのツイート: "VPIDとPCIDは異なるもので、PCIDのOS enablingはめちゃ遅れていたことは知っておいて良いと思う"
Hisaki Oharaさんのツイート: "そもそもbit長が違う。VPIDは16-bitだけどPCIDは12-bitだ。たったの12-bit !?と驚くと思う。自分は驚いた。。"
suzakiさんのツイート: "@hisak 確かに。意味を考えると、VPID(Virtual-processor ID)が16-bitで、PCID(Process-Context Identifiers)が12-bitと変な気がしますが、PCIDはCR3 registerなのに対して、VPIDはメモリ上のVMCS fiel… https://t.co/13C2tsw2hF"
Gil Teneさんのツイート: "PCID is now a critical performance/security feature on x86 - Google Groups https://t.co/NuL7UXGHNG"
PCID is now a critical performance/security feature on x86 - Google グループ
Vladimir Danylevskiyさんのツイート: "lshw -C cpu | grep -oiw pcid for Linux users. If you a regular user, don't panic, the patch will be shipped with a new update for your OS/… https://t.co/PgidcInc7M"
Dan Guidoさんのツイート: "If you have an Intel CPU with the "PCID" feature, then the security fix for Spectre/Meltdown will have less performance overhead. On macOS,… https://t.co/XlAgqQne1z"
Nasir Zubairさんのツイート: "@msgeekuk @epakskape Seeing the same thing on Dell systems with microcode update as well as MSFT patches. All green except for PCID Optimization. Can someone she… https://t.co/s5BqVGSwpb"
Martijn Brantさんのツイート: "Good to hear the PCID is not related to security. Was seeing a lot of results with false. Be sure to patch microcode though! https://t.co/oyasPYiRs6"
Hisaki Oharaさんのツイート: "PCIDについてはこの記述が気になるんだよな "To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups."… https://t.co/5oavpdYYut"
Linux_4.14 - Linux Kernel Newbies
Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ

INVLPG

TLB · oraccha/omicron Wiki
Tips IA32(x86)命令一覧 Iから始まる命令 INVLPG命令
悪魔のツール“ルートキット”最前線 - 第7回 メモリー上のデータを見えなくする(後編):ITpro
Linux カーネル 3.8 では i386 がサポート外に | スラド Linux

TLB shootdown

るくすさんのツイート: "linuxのTLB shootdownは割り込みベクタに専用の関数追加して中でflush_tlbしてるみたいだ"
SMP Implementation on *BSD/MIPS
無視できないフラグメンテーション問題への解答は?(2/2) - @IT
/proc/interruptsに関するメモ - お菓子食べる部
SMP環境下でのTLB Consistencyについて - syuu1228's blog
BitVisorの仮想メモリーマップ - Qiita
EuroSys 2020さんはTwitterを使っています 「#EuroSys20 Best Paper Award: “Don’t shoot down TLB shootdowns!” by Nadav Amit, Amy Tai and Michael Wei (VMware Research Group) — congratulations! https://t.co/fGsBrN8cAj https://t.co/6wky5sCZ2V」 / Twitter
Don't shoot down TLB shootdowns! | Proceedings of the Fifteenth European Conference on Computer Systems

Twitter

Deep(Ph.D Go player)さんのツイート: "Ryzen 案件、BIOSの設定でコア数一つにして試してみてほしい"
Deep(Ph.D Go player)さんのツイート: "TLB周りならそれで発生しなくなるから一つの切り分けになりそう"
EPT と TLB でしくじった話
NAKAMURA Minoru's Diary (2013年2月)
x86-64-128さんのツイート: "QEMUで自作OSを動かし、そこでページングの実験をしているんだけど、ページディレクトリエントリのPresentビットを0にしてアクセスしてもPage Faultが発生しないように見える。"
x86-64-128さんのツイート: "ページディレクトリエントリを更新したら何かCPUに教える必要あるのかな。メモリを書き換えるだけで行ける?"
Fadisさんのツイート: "本題の前にまずFacebookの人が「バイナリ内の実行頻度が高い関数8MB分を1箇所に集めてHugePageに乗せる事でTLBミスを回避して5~10%の性能向上」とかやってて、Webサービスの性能向上の努力が極まりすぎている事に定評のあるFacebookが平常運転で安心した(リンク先有料記事) https://t.co/4fi5TzNv91"
ロボ太さんはTwitterを使っています: 「malloc動画といえば、「京」でハイブリッドとflat-MPIで等価な計算してるはずなのにハイブリッドの方がが有意に遅いのに悩んでて、後で直接の原因がTLBスラッシングとわかるんだけど、その理由がわかんなくて、malloc動画で勉強したら、アリーナの大きさが違うのが原因とわかってなるほどな、と。」 / Twitter
ロボ太さんはTwitterを使っています: 「これ、最初は完全にスレッドまわりが原因と思って調べてて、でもプロファイル見てもそうは見えなくて、ある日ポスターで話したら筑波大の朴先生が「TLBじゃないかな」って言って、その時は「まさか」って思ったんだけど、その数年後にTLBスラッシングが原因とわかって、プロってすごいなと。」 / Twitter

トランスレーション・ルックアサイド・バッファ - Wikipedia
HPC性能が大幅に強化されたHaswell(中編) - TLBミスによる性能低下を減少 | マイナビニュース
本の虫: Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDはジャンプする
0から作るOS開発 ページングその1 ページとPTEとPDE
ハードウェアキャッシュとTLBの制御 - 詳解Linuxカーネル Wiki*
ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)|ロードマップでわかる!当世プロセッサー事情
仮想メモリ方式の分類
イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog
スケジューラの挙動は三巨頭会談で決まるのだ?(1/2) - @IT
2章 Linuxカーネル - メモリ管理1
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第2回 Intel VT-xの概要とメモリ仮想化
[BitVisor-devel:88] Re: [PATCH] Re: Ubuntu 16.10 beta2 (linux 4.8.0-17) が BitVisor 上で動作しない
インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) プログラミングの注意事項
ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)

メモリ保護

その他

特権分離 (Privilege Separated) OpenSSH
ラージページについての考察 | iSUS
メモリーリマッピング
「実在には存在しない情報」をメモリキャッシュに埋め込むというセキュリティ対策 | スラド セキュリティ
Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
Linuxなどのスタック管理機構において権限昇格が可能な脆弱性が発見される。多くのLinuxディストリビューションに影響 | スラド オープンソース
glibcにStack Guard Page迂回の脆弱性(CVE-2017-1000366) — | サイオスOSS | サイオステクノロジー
linux kernelにStack Guard Page迂回の脆弱性( CVE-2017-1000364 ) — | サイオスOSS | サイオステクノロジー
続・サンドボックスの透明性 | 一生あとで読んでろ
サンドボックスの透明性 | 一生あとで読んでろ
はりぼてosにページング機能を追加する - Qiita
MIT、プロセッサ性能を犠牲にせず「Meltdown/Spectre」脆弱性を解決する新手法 - PC Watch
418.pdf
suzakiさんのツイート: "NDSSソフトウェアセキュリティ5つ目。User After Freeなど本来存在してはいけないメモリへの攻撃を検出するRedzone-based memory error detectionのMEDSの発表。MEDSではpage aliasing を使い、物理メモリを割り当てずにvirtual memory の空間を見るmemory allocation mechanism (MEDSALLOC)で管理"
デダルスユメノ 技術書典6・う38さんのツイート: "ページサイズは伝統的に4KBが使われてきたけど64ビットシステムでは2MBページでいいんじゃね?と一瞬思うけど、遅いストレージを考慮するならダーディページの書き戻しが2MBだときついかも。HDDを対象にするならページキャッシュの部分は4KBのままがいいか。"
mumumuさんはTwitterを使っています 「Thwarting Memory Disclosure with Efficient Hypervisor-enforced Intra-domain Isolation [CCS '15] OSやAppを乗っ取られてメモリDiscloseされる脅威のMitigationとして,予めユーザが定義したメモリ領域secretと動的・静的解析で検出したそれを操作する関数をVMFUNCでIsolationするSeCageを提案.」 / Twitter

Intel

EPT-Based Sub-Page Permissions

品川 高廣さんのツイート: "EPT-Based Sub-Page Permissions が消えてる… https://t.co/k9qDDRAHEb"
品川 高廣さんのツイート: "と思ったら SDM 本体の方に入ったのか。ということはもうすぐ実装が出てくる?"
VT-x に128バイトサブページ単位の書込み保護が導入される予定 - 教育は参考ブログ

5-Level Paging

5-Level Paging and 5-Level EPT white paper
5-level paging [LWN.net]
Fadisさんのツイート: "5 level paging: x86_64の既存の4段のページングでは扱いきれない巨大なメモリを持つマシンの為に将来的にIntelプロセッサで採用されることになっている拡張。Linuxの場合4段ページングでは64TiBを超えるメモリを扱えないが、5段ページングでは4PiBまで対応することができる"
Fadisさんのツイート: "Linuxの5 level pagingは実装されたばかりで、ドキュメントには「将来的にはブート時に4段と5段を切り替えられるようにしたい」と書かれているが今のところそうした仕組みは無い為、5段を有効にしてビルドしたカーネルは4段しか扱えないプロセッサで実行するとコケる"
Fadisさんのツイート: "LKMLに投げられているのパッチの説明によると、既に一部のサーバが64TiBのメモリを実際に積んでおり、この問題は喫緊の課題になっているらしい… "
FadisさんはTwitterを使っています: 「@d_kami こういう巨大なメモリを持つマシンって大体小分けにしてクラウドサービスを提供するためのマシンだったりして、今日クラウドサービスが無くてはならない物になっていることを考えると、どちらが特殊なのかな感はある」 / Twitter
ちくわさんのツイート: "以前にそれについての記事を書いたのでよろしければどうぞ https://t.co/uhEkuOHv9J… "
Linux kernelの5-Level Paging有効化部分を読んでみる - めもちょー

CET(Control-flow Enforcement Technology)

インテル、ROP攻撃をチップレベルで阻止する新技術を発表 - ZDNet Japan
新しいオプション
qcf-protection、Qcf-protection
20160611
品川 高廣さんのツイート: "CPUレベルで shadow stack と control flow integrity を入れるのか。https://t.co/NuHzLftmFe"
Control-flow Enforcement Technology Preview
品川 高廣さんのツイート: "VMX, SMM, TXT, SGX にも影響を与える複雑な変更だな。"
品川 高廣さんのツイート: "shadow stack は call 時に shadow stack pointer (SSP) が指すところにリターンアドレスだけを積んで、ret 時にスタックの値と一致してなかったら exception が発生するという感じか。"
品川 高廣さんのツイート: "indirect branch tracking は jmp 先が ENDBRANCH 命令(未対応プロセッサではNOP相当)でなかったら exception ということでいいのかな。命令列の真ん中に jmp するような ROP chain は組み立てられなくなるわけか。"
品川 高廣さんのツイート: "AMD も EPYC でメモリ暗号化とか入れてるし、アーキテクチャの拡張競争みたいにもなってる。AMD と Intel のアーキテクチャがズレていくのはシステムソフトウェア屋的にはつらそうだけど。"
Intel Releases New Technology Specifications to Protect Against ROP attacks | Intel® Software
るくすさんのツイート: "Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc https://t.co/fjIJnqPpxt"
Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc - Phoronix
まさみさんは語りたいさんのツイート: "https://t.co/341S8w5ovM うーむ、これROPとかJOP対策だと思うけどkprobes jump optimizationの存続に関わる問題っぽいぞ・・・。"
Control-flow Enforcement Technology Preview
まさみさんは語りたいさんのツイート: "ARM pointer authentication https://t.co/lZ87vSuU9t ARMはポインタとして使われるアドレスを符号化して検証する命令を追加してROP対策しているというわけか。このあたり、明示的に機能を使わせるARMと、バックグラウンドで検証するIntelの思想の違いか・・・?"
ARM pointer authentication [LWN.net]
まさみさんは語りたいさんのツイート: "多分Intel CETは(Spectre v2の時にも言及したが)投機的実行の効率化のために用意したシャドウスタックをセキュリティに転用しました、ということなんだろうなあ。つまり投機的分岐実行の失敗=脅威発見とみなす、という。"
Fadisさんのツイート: "glibcにIntel CETのサポートが入った模様。 CET対応のプロセッサではSHSTK(一部の命令だけが書ける第二のスタックにリターンアドレスを積んでROPを検知)とIBT(着地命令以外のアドレスにジャンプ出来なくしてジャンプ先の書き換えを検知)をユーザ空間のプロセスで使えるように https://t.co/247IN0psYI"
Intel CETをサポートした「GNU C Library 2.28」公開 | OSDN Magazine
Fadisさんのツイート: "LLVM、リターンアドレスだけが積まれる第2のスタックでROPを検知するShadow Call Stackを廃止。x86_64用の実装が遅くてinsecureだったのが理由。最近のIntel CPUには同様の事をハードウェアで行うCETが備わっているが、LLVMの実装はソフトウェアでそれとは無関係 https://t.co/RnKlqj2wey"
LLVM Drops Its Shadow Call Stack Support For x86_64 - Phoronix
Intelがマルウェア攻撃をチップレベルで防御する新技術「CET」を次世代モバイルプロセッサ「Tiger Lake」に搭載 - GIGAZINE
実に15年ぶり、インテルがCPUへ追加するマルウエア対策機能の実力 | 日経クロステック(xTECH)
WhitepaperCSME - intel-csme-security-white-paper.pdf

UMIP

Intel User-Mode Instruction Prevention Support Revised For The Linux Kernel - Phoronix
るくす(Ren Kimura)さんのツイート: "Intelの次のプロセッサからSMEPならぬUMIP(User-Mode Instruction Prevention)という、ユーザーモードで実行できる命令をさらに制限するセキュリティ機構が追加されるらしい。 これはカーネルエクスプロイトかなりしんどくなるぞ… https://t.co/aLr5CtSr3P"
ka0ruさんのツイート: "@RKX1209 これそんなに強いですかね〜"
るくす(Ren Kimura)さんのツイート: "@infvhj まあ理屈としてはそんなに強くないんですが、肌感覚でしんどくなりそうな気はします。というのも、AAWでカーネル内の関数ポインタを書き換えてユーザー空間からの操作でそいつをtriggerする流れで、このtriggerはなるべく他に副作用を与える操作であってほしくないんですよね。"
るくす(Ren Kimura)さんのツイート: "@infvhj 余計な操作が多い複雑なシステムコールとかをtriggerにすると、RIP奪う前にカーネルクラッシュしたりとか。で、このパターンが少ないのがGDT/LDTみたいなユーザー空間から参照できてかつprivmitiveな物をtriggerにした時なので結構重宝するんですよ。これができない… https://t.co/JlBLhxcqVX"
ka0ruさんのツイート: "@RKX1209 Linuxは余り詳しくないのでアレですが、カーネルのwriteプリミティブ持ってるならそのSMEPとかで使うaddr_limit的なのも同時にいじれるかなぁっていうのとret2usrは楽というのは最もですがPTE弄ってカーネルにシェルコードをいれるーとかでもありなんじゃないすかね"
るくす(Ren Kimura)さんのツイート: "@infvhj あいや、というかRIPをそもそも奪う前にクラッシュする事があって、例えばfops->iops->openを何かのコードの先に書き換えるためにfake iopsとか作ってopenシステムコール呼ぶと、関係ない別の所でiopsの他のメンバ触られてクラッシュとか"
るくす(Ren Kimura)さんのツイート: "@infvhj 要するにシステムを正常に動かしつつ、特定の関数ポインタだけexploit codeに飛ばすというが難しくて、この両立がしやすいのがGDT/LDT書き換えとかですね。メモリアクセスなんて他に邪魔されずすぐに発生してくれるのでスッとtriggerしてくれる"
るくす(Ren Kimura)さんのツイート: "@infvhj あとSMEPのONOFFはレジスタが管理してるので、OFFにするには直接writeプリミティブでは難しくて、レジスタいじるROP gadgetみたいなコード実行に一度飛ばしてやる必要がありますね"
るくす(Ren Kimura)さんのツイート: "@infvhj ring0のアドレス範囲addr_limitを書き換えるというのはGDT書き換えにあたると思います。"
イトー君さんのツイート: "@RKX1209 一般ユーザーにとってこれはgoodなの?badなの?"
るくす(Ren Kimura)さんのツイート: "@TaKeZo_I 一般ユーザー的にはおそらく良い方向だと思いますねー これを追加して何か不具合が起きるというのはそんなに無さそう"
イトー君さんのツイート: "@RKX1209 待つほど価値があるもの?"
るくす(Ren Kimura)さんのツイート: "@TaKeZo_I あー そこまでではないと思います。比較的高度な攻撃に対する対策技術なので、そもそも一般ユーザーで特にWindows環境以外をお使いならそんなに遭遇しないかなぁと"
イトー君さんのツイート: "@RKX1209 了解です、ありがとう"
2018年1月29日 Linux 4.15が正式リリース, Meltdown/Spectreにフルパッチ対応:Linux Daily Topics|gihyo.jp … 技術評論社
x86: enable User-Mode Instruction Prevention [LWN.net]
Linuxカーネル4.15リリース、Meltdown/Spectreへの対処が組み込まれる | OSDN Magazine
InstLatX64さんのツイート: "QuadCore #Intel Celeron J4105 (#GoldmontPlus) 706A1 CPUID dump added - according to this, Goldmont+ supports SGX, SGX_LC, UMIP, RDPID features, and also the 3 #Spectre/#Meltdown mitigation features (#IBPB/#IBRS, #STIBP, IA32_ARCH_CAPABILITIES) in: https://t.co/37mJQ4r9bT… https://t.co/y8zSIn9c80"
セキュリティとARMサポート改良に重点を置いたXen Hypervisor 4.10
Intel 80286 - Wikipedia

Memory Protection Keys

Memory Protection Keys (MPK) Submitted For Linux 4.6 - Phoronix
Memory Protection Keys Support Finished Up In Linux 4.9 - Phoronix
LLVM Begins Looking At PKU Memory Protection Keys Support - Phoronix
[RFC] x86: Memory Protection Keys [LWN.net]
Linuxカーネル4.6が登場 | OSDN Magazine
Linuxカーネル4.9リリース、Greybusのサポートや各種ドライバの強化などが行われる | OSDN Magazine
x86 の仮想ページに Protection Key が付いた - 教育は参考ブログ
品川 高廣さんのツイート: "Intel MPK 流行ってるな。VMFUNC も良く見かける。保護ドメイン系は永遠のテーマだな。"
retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
mumumuさんはTwitterを使っています 「Hodor: Intra-Process Isolation for High-Throughput Data Plane Libraries [ATC '19] Kernel BypassなIOを提供する等重要なライブラリの安全性を担保するためにPKUを用いてIsolation(Appの制御が奪われる脅威を想定).ローダがバイナリを走査しデバッグレジスタを用いて意図しないpkruの変更を検出」 / Twitter

SMEP

【仮想化道場】IDF北京から、2013年のIntelサーバープロセッサのロードマップを見る - クラウド Watch
Tsukasa #01さんはTwitterを使っています: "@yuzuhara x86 の PAE にあるような NX ビット (ARM での XN ビット) に加えて、ページ毎に Ivy Bridge の SMEP ができる PXN ビットというのがページテーブルに存在
本の虫: カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題
Windows カーネルモードの脆弱性「CVE-2014-4113」を検証 | トレンドマイクロ セキュリティブログ

SMAP

x86 の新しいメモリ保護機能 Supervisor Mode Access Prevention(SMAP) - 教育は参考ブログ

MPX

技術者見習いの独り言: Intel Memory Protection Extensions (MPX)
るくすさんのツイート: "Intel MPXというポインタの値をランタイムにチェックするskylake以降のセキュリティ用拡張命令があるんだけど、GCCが次のバージョンからサポートを打ち切るそうな。 https://t.co/gH1sQz0EmT"
GCC Developers Potentially Deprecating Intel MPX - Phoronix
Richard Biener - Re: [PATCH][www] Deprecate MPX for GCC 7
www.ffri.jp/assets/files/monthly_research/MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
るくすさんのツイート: "うわー ついにIntel MPX(Memory Protection Extensions)のサポートがLinuxからも消えるってよ... 結局gccもサポート切ったし、セキュリティ支援機構なんて使われなきゃ意味ないよなぁ https://t.co/Vl4ZUoxbvK"
The Linux Kernel Might Drop Memory Protection Extensions Support - Phoronix
x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
suzakiさんのツイート: "3E4-1: ヒープ領域に対するソースコード不要のIntel MPX命令適用手法  ◎ 加藤 周良(名古屋工業大学) メモリの領域チェックを行うIntel Memory Protection Extensions(MPX)命令はコンパイラで適用されるのが一般的だが、PINによる動的バイナリ解析からヒープにも適用する。"

SGX

MSDN

InitializeEnclave function (Windows)
CreateEnclave function (Windows)
IsEnclaveTypeSupported function (Windows)
LoadEnclaveData function (Windows)
ENCLAVE_INIT_INFO_SGX structure (Windows)
ENCLAVE_CREATE_INFO_SGX structure (Windows)

Twitter

Leon Anaviさんのツイート: "#Intel SGX can leak #crypto keys tested on #Thinkpad T460S with #Ubuntu 16.10 https://t.co/Zxl0ySkj9H"
NOKUBI Takatsugu野首貴嗣さんのツイート: "これはACCS 2.0もアカンのでは…"
Tsukasa #01 [要出典]さんのツイート: "えーっと、サイドチャネル攻撃か。Intel は元々 SGX におけるサイドチャネルは注意事項として挙げてあったような、と思って検索してみたら、もっと直接的な言及をしているページを発見。 SGX and Side-Channels https://t.co/JlBBQiJ1BZ"
NOKUBI Takatsugu野首貴嗣さんのツイート: "UHD-BD対応のソフトウェアプレイヤーがSGX必須になってるけど、結局それだけじゃ意味ないんだな"
Takekazu OmiさんはTwitterを使っています: "Haven は、Windows 版Dockerなのかと思ったら、「SGX を使うと、hypervisor ではなくてコンテナでも高いisolation を実装できるぜ」って話しらしい、面白い。intel頑張るなあ"
品川 高廣さんはTwitterを使っています: "OSDI 2014 の Best Paper 3つ目は Haven. Intel SGX を活用して既存のWindowsアプリをクラウド上で安全に実行する。クラウド業者やVMM、物理層による攻撃にも耐えられる(CPU=Intelさえ信用すれば良い)。"
DJ MISONIKOMIUDONさんはTwitterを使っています: "Intel SGX拡張を使うマルウェアの可能性について。へー / Virus Bulletin : SGX: the good, the bad and the downright ugly https://t.co/11GXY6TtQ5"
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています: "Intel SGX Enclave Page Cache Mem 暗号化されて外部からメモリ空間が見られない機構 #kernelvm"
royさんはTwitterを使っています: "ていうかその界隈の人はもう考えてるんだろうけどIntel SGXがまともに使われ始めたらメモリフォレンジック非常に困難では。プロセスごとに同じ空間で動くエージェント挿入するとかしないと解析できないのでは。"
suzakiさんのツイート: "ハードウェアⅡ三つ目。クラッシュやリブートしてもIntel SGXが提供するProtected Module Architectureを保証するために不揮発メモリを用意して状態保存するAriadneの発表。No Rollback, Continuous, Livenessを保証。"
suzakiさんのツイート: "OSDI OS-I四つ目。Forkでプロセスを作る代わりに、rollbackやreference monitorを考慮し、且つ効率的に処理を可能にする新しい抽象LwC: Light-Weight Contextsを導入する話。"
suzakiさんのツイート: "LwC論文ではIntel SGXで再設計する話が出てきている。こちらにも興味あり。"
suzakiさんのツイート: "質問にもあったけど、プロセスのisolationではキャッシュの攻撃やマルチスレッドを使った攻撃も考慮する必要がありますね。その意味でもSGXは重要か。"
suzakiさんのツイート: "明日のOSDIで発表される”SCONE: Secure Linux Containers with Intel SGX”の方がIntel Clear Container https://t.co/5OJRSIVzEi よりセキュアと思うのは気のせい?"
suzakiさんのツイート: "NDSS TEE五つ目。TEEは小さくと言われているがハイパーバイザーもカーネルも大きい。SGX にLibOSの技術を使い、Systcall,スレッド,イベントハンドラ, Forkなどのサポートしつつ小さいTEE(20K行)を保つPanopyの発表。Multi-Enclaveあり"
suzakiさんのツイート: "ハードウェアⅡ一つ目。Intel’s Software Guard Extensions (SGX)と同じ機能を提供するハードウェア拡張Sanctum (RISC-V上で実装) の発表。セキュアなサンドボックス(ここではSecure containerと呼んでいる)を提供する。"
suzakiさんのツイート: "security一つ目。ベストペーパ。Intel SGXを使ったサンドボックスのRyoan。SGXのenclave内のmoduleが用意され、秘密情報を管理。秘密情報はサンドボックス化による出ることはない。moduleは処理が終われば廃棄。"
suzakiさんのツイート: "ASPLOS メモリ2セッション3つ目。Intel SGXが使えるメモリEPC:Enclave Page Cache は128 MBに制限されているため、これ以上をつかうためにはnon-EPCにSwap-out/inする必要がある。しかし、MAC Integrityなどのオーバーヘッドのために40K サイクルかかる。(続く)"
suzakiさんのツイート: "SGXのメモリ拡張のオーバーヘッド問題を解決するためにUnified SGXで使われるデータ管理木を可変にしたVAULT: variable arity unified treeの提案。"
suzakiさんのツイート: "EuroSysストレージ2つ目。SGXにKVS: Key-Value Storageを作るとEPC (Enclave Page Cache 128MB)でSGXのPage Outが起こるので遅い。この性能低下を防ぐため、Sematic Aware Protectionを提案。独自に暗号してEnclave外のProtected Memory に保存するShieldStore。Enclave内にはKVSのSubTreeのRootのみ。"
suzakiさんのツイート: "ハードウェアセキュリティ4つ目。Intel SGXを実際に使い、その経験の発表 by 富士通。Trust領域とNonTrustの領域の通信が遅いのが問題。"
suzakiさんのツイート: "Dark ROPの肝は暗号化されているEnclave内でpop命令を見つける方法。コードのある領域はわざとPage faultを起こして見つける。次にENCLU命令(Enclaveで暗号化された命令を復号する命令)を見つけ、(EEXIT命令も使って?)popが使うレジスタを推定。"
suzakiさんのツイート: "これは知らなかった。 PC Watch 2017/03/07『Ultra HD Blu-rayの著作権保護機能である「AACS2.0」は従来のBDよりもはるかに強固なセキュリティを実現するため、PCでの再生においてはプロテクト解除のために「SGX対応」が必須とされているのだ。』 https://t.co/yWt59i8u4n… https://t.co/dK9pwD3Guy"
PCで4K&HDRなUltra HD Blu-rayを観るにはどうすればいい? 世界初の対応ドライブ パイオニア「BDR-S11J」の動作環境などをチェック!
suzakiさんのツイート: "【緩募】WindowsあるいはLinuxでAACS2.0対応のUltra HD Blu-ray再生アプリって何があるのでしょうか。"
suzakiさんのツイート: "裏が取れないのだけど、「DVDFabがAACS2.0の解除機能を実装」https://t.co/bhaHfQx8C6 ってIntel SGXを突破したってこと?"
DVDFabがAACS2.0の解除機能を実装 | E.i.Z
Intel SGXをコアとしたコンフィデンシャルコンピューティングの実現 - ITmedia エンタープライズ
Intel CPUの「Plundervolt」の欠陥が電圧操作を介して秘密を流出 - 自作ユーザーが解説するゲーミングPCガイド
retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
suzakiさんはTwitterを使っています 「メモ。 ざっとしか見てないがSGXの解説が良さそう。 Trust is in the Keys of the Beholder: Extending SGX Autonomy and Anonymity [Master Thesis 2017] https://t.co/4hkOFnQASV」 / Twitter
Trust is in the Keys of the Beholder — Extending SGX Autonomy and Anonymity - jackson-msc-thesis.pdf
suzakiさんはTwitterを使っています 「RAID 2020の採択論文には色々興味深いものがある。 https://t.co/eUWLwO0RiK SGX関連が2件、 A Framework for Software Diversification with ISA Heterogeneity や Dark Firmware: A Systematic Approach to Exploring Application Security Risks in the Presence of Untrusted Firmware も惹かれる」 / Twitter
Accepted Papers – RAID 2020
suzakiさんはTwitterを使っています 「AnonifyのTEEが気になった調べた。 ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&amp;D部門が公開 https://t.co/A4sP3lLhg6 TEEにはIntel SGXを想定しているようだ。 ホワイトペーパもよく書けていそう。 https://t.co/QmdJmA8BCF」 / Twitter
ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 | LayerX
anonify.pdf

インテル® SGX 命令とデータ構造の概要 | iSUS
ダウンロード Windows* 用インテル®ソフトウェア・ガード・エクステンションズ (インテル® SGX) ドライバー
Intel CPUのセキュリティ機構「SGX」にマルウェアを隠すことでセキュリティソフトで検出できない危険性、概念実証用のプログラムも公開済み - GIGAZINE
sgxrop/sgxrop: The code to the SGX-ROP paper
Intel SGXからのデータ奪取手法が開発 - ごった日記
Intel SGX のアップデート、および認証キーのリカバリー
wolfSSL FIPSのIntel® SGX対応 – wolfSSL:Blog
WolfSSLとWolfCryptのベンチマーク | wolfSSL
本当の進化とはこういうこと:質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (2/2) - ITmedia PC USER
Intel SGX - セキュリティ
マイクロソフト、クラウド上のアプリを隔離する新技術「Haven」を開発 - CNET Japan
北森瓦版 - 【Intel】“Skylake”でSoftware Guard Extensions (SGX) を有効化へ
Intel® Software Guard Extensions SDK | Intel® Developer Zone
WebHelp
ISCA 2015 tutorial slides for Intel® SGX
204.pdf
ISA Extensions Intel SGX | Intel® Developer Zone
跳ね橋を叩いて渡る An introduction to DrawBridge まとめ #kernelvm - by shigemk2
www.dell.com/support/manuals/us/en/19/latitude-e5570-laptop/LatitudeE5570_OM/Intel-Software-Guard-Extensions-画面オプション?guid=GUID-5D0F897B-F35D-45E9-8B65-F4B2CF32F5E7&lang=ja-jp
インテルSkylakeプロセッサのリビジョン!I7 / I5 / E3フルリニューアル@goodchinabrand.com
2016年2月24日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
48146462.pdf
Teechanの決済プロトコル - Develop with pleasure!
Signal use of Intel SGX | Firmware Security
Introducing the Intel® Software Guard Extensions Tutorial Series | Intel® Software
電力管理システムを悪用してARM系CPUのTrustZoneをハックする手法が報告される | スラド セキュリティ
Monotonic Counter in Intel SGX and ME | Firmware Security
EnclaveDB: A Secure Database using SGX | Firmware Security
Upcoming Intel SGX Features Explained: Improved Virtualization, Configuration Management, and Key Sharing | Firmware Security
Intel SGX Homepage | Intel® Software
Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記
Intel Software Guard Extensionのチュートリアルを読む(2. Application Design) - FPGA開発日記
Intel Software Guard Extensionのチュートリアルを読む(2. Design an Application) - FPGA開発日記
Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記

TME

Shirouzu Hiroaki(白水啓章)さんのツイート: "ディスクやメモリの暗号化では、XTSというブロック暗号モードが最近の定番、という点を初めて知った。 https://t.co/AlgOrzHujH… "
Disk encryption theory - Wikipedia
Fomalhaut Weisszwergさんのツイート: "Intel 製 CPU にもメモリ暗号化機能。Intel TME (Total Memory Encryption) なる機能が追加されました https://t.co/Z5orBwxmY2"
Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linu… · torvalds/linux@9e1909b
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔、サーバで暗号化してのファイル保存が必要になった際、CBCだとランダム書込みができず、CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性発生で、解決に頭を悩ませた記憶。 XTSという手を知らなかったので、別途NONCE配列(1ブロック=1NONCE)を設ける手しか浮かばなかった。… https://t.co/x76fuJuhga"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性というのは、「ある時点でのスナップショットを取り、変更後にもう一度スナップショットを取る」という操作で、スナップショット差分=元内容と上書き内容のビットパターン差分が見えてしまう、という意味。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、XEX/XTSの後段のXORは、どういう効果があるのか良く判らない…気休め程度にも見えるのだけど。"

TDX

Intel® Trust Domain Extensions - tdx-whitepaper-v4.pdf
InstLatX64さんはTwitterを使っています 「This #Intel #TDX pdf has a comprehensive list of CPUID bits on p.116-123. It mentions a few new one (at least for me): FZM, MPRR, SGX_TEM, SGX_KEYS, ULI, DEDUP, HRESET, Fast REP*s, and - according to the XFAM bits - #AVX512-related #FP16 and #ADL_VNNI https://t.co/cRvQtcgU2A https://t.co/WeXCJgWl5m」 / Twitter
Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module - intel-tdx-module-1eas.pdf
https://twitter.com/InstLatX64/status/1306525230379290627
https://twitter.com/InstLatX64/status/1306530044584644609

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
Hisaki Oharaさんのツイート: "よくまとまってる。最後のCETっての知らなかった。。Intel CPU security features https://t.co/zKazJKnSY5"
Intel CPU security features · huku-/research Wiki
x86におけるメモリアクセス権のルール - 睡分不足
社会人でもOSを作りたいさんはTwitterを使っています: 「きっとx86-64のOSを自作してる人なら誰もが持ってる思うけど,4階層ページングの仮想アドレスを各部分(PML4,PDP,PD,PT)に分割する,または逆に各部分の値から仮想アドレスを作るツールを作ってみた。 https://t.co/aaAXYAS1lz」 / Twitter
x86-64 Virtual Address Composer
NT カーネルのページング基礎 - Qiita

ページキャッシュ

Linuxのメモリキャッシュを削除する | 俺的備忘録 〜なんかいろいろ〜
OSキャッシュの便利な利用方法|サイバーエージェント 公式エンジニアブログ
Linuxでページキャッシュを確認・解放してみた - Qiita
Windowsカスタマイズ - キャッシュを極める

メモリ管理

Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)(Kodama's tips page)
6. システムがパフォーマンスを維持するためのメモリ管理について
4.メモリ使用率(第5章 パフォーマンス管理~上級:基本管理コースII)
Windows OS入門:第4回 メモリ管理 - @IT
freeコマンドで確認するOSのメモリ情報 - SHOYAN BLOG
【RHEL】linuxのメモリ使用率(利用率)の計算方法 - のぴぴのメモ
linuxにおけるメモリと関連コマンド(free, vmstat, top, sar) - 銀色うつ時間
Linuxにおけるメモリ管理 - MogLog
どうしてメモリはスワップするのか!? - インフラエンジニアway - Powered by HEARTBEATS
Rui Ueyamaさんのツイート: "このミニOSにページングを実装する課題かなり目処がついて来た。最初は若干途方に暮れていたけど少しずつ作れば難しくはなかった。まずmmap()をやっつけで実装、そのあとスタック拡張も実装、そのあとページアウトも実装、みたいな。"

Meltdown:Variant 3: rogue data cache load (CVE-2017-5754)対策:Kernel page-table isolation

meltdown.pdf
kaiser.pdf
Kernel page-table isolation - Wikipedia
python sweetness — The mysterious case of the Linux Page Table...
The mysterious case of the Linux Page Table Isolation patches : linux
The mysterious case of the Linux Page Table Isolation patches | Hacker News
Linux page table isolation is not needed on AMD processors | Hacker News
The mysterious case of the Linux Page Table Isolation patches | Hacker News
Kernel page-table isolation merged [LWN.net]
The current state of kernel page-table isolation [LWN.net]
The current state of kernel page-table isolation [LWN.net]
The current state of kernel page-table isolation [LWN.net]
「Intelの脆弱性情報の開示が遅すぎた」ことでLinux開発者が大変な目に遭っていたことが発覚 - GIGAZINE
CPU脆弱性Meltdownのパッチ適用でベンチマークスコアが25%低下した - Qiita
Meltdown cpu脆弱性カーネルアップデートでほんとに性能ダウンした - Qiita
Meltdown - Wikipedia
Meltdown (security vulnerability) - Wikipedia
satさんのツイート: "Meltdownを使った攻撃のいろんな派生 https://t.co/7eZjlerhKN"
meltdown/libkdump.c at master · IAIK/meltdown
Microsoft Windows: Kernel Virtual Address (KVA) Shadow: mitigating Meltdown | Firmware Security
Windows 7のMeltdown対策パッチに脆弱性 ~セキュリティパッチがより深刻な問題を生む結果に、3月で修正済み - PC Watch
Hideyuki Tanakaさんのツイート: "インテル去年だけで16ビットレジスタを分割して使うときの不具合とか、中で変なOSが動いてる問題が発覚するとかいろいろあったのに、これはそれとは比べ問にならないぐらいまずそうだけど(´・_・`)"
KVA Shadow: Mitigating Meltdown on Windows - Microsoft Security Response Center
Rogue System Register Read
Instructions Affected by Rogue System Register Read

Foreshadow(L1 Terminal Fault(L1TF)) - CVE-2018-3615, CVE-2018-3620, CVE-2018-3624

その他

Intel CPUの投機実行にサイドチャネル攻撃による新たな脆弱性が発見 - PC Watch
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - CNET Japan
Intel製CPUのセキュリティ機能“SGX”に情報漏洩の脆弱性 ~“Foreshadow”が発表 - 窓の杜
Intelが発表、キャッシュタイミングを利用したサイドチャネル攻撃の脆弱性「L1TF」:仮想化利用時に課題あり - @IT
Microsoft、2018年8月のセキュリティ更新プログラムを公開 ~OSの最大深刻度は“緊急” - 窓の杜
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - ZDNet Japan
HW由来の脆弱性 (L1 Terminal Fault (L1TF) / Foreshadow: CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) – 脆弱性情報ブログ(仮)
L1 端末の障害から保護するための Windows Server ガイダンス
インテルCPU脆弱性「Foreshadow」の影響をまとめる - orangeitems’s diary
“L1TF”脆弱性への対策を盛り込んだ「VMware Workstation」「VMware Fusion」最新版 - 窓の杜
IntelのCPUで新たに発見された脆弱性「Foreshadow」の解説ムービーをRedHatが公開中 - GIGAZINE
【CPU】 Intel CPUに新たな脆弱性『L1 Terminal Fault(L1TF)』。2018年8月度のWUで緩和策を実装 : ニッチなPCゲーマーの環境構築
herumiさんのツイート: "社内勉強会用のメモ Foreshadow L1FT https://t.co/43HbIRyzv3 TLBleed https://t.co/RZ8wHm7IDl LazyFP https://t.co/er6rVg2V7F"
misc/security/L1FT at master · herumi/misc
Microsoft、Spectre V3a/4とL1TF脆弱性対策のIntel CPU向けマイクロコード更新を公開 - 窓の杜
2018年8月24日号 LXDの.deb→snapパッケージ移行,続Spectre・“L1TF”(Foreshadow/Foreshadow-NG)への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
2018年8月27日 Linux 4.19-rc1が登場,「L1TF」脆弱性にも対応:Linux Daily Topics|gihyo.jp … 技術評論社
MS、インテルのマイクロコード更新プログラム公開--「Spectre」「Foreshadow」対策 - CNET Japan
【セキュリティ ニュース】MS、「Foreshadow」対策でアドバイザリ - アップデートや追加対応策の実施を(1ページ目 / 全3ページ):Security NEXT
Intelが新たな投機的実行脆弱性"L1 Terminal Fault"を公表

@mhiramat

まさみさんは語りたいさんのツイート: "L1Dから読めちゃう問題というか仕様、昔からlock prefix付けないとL2が変わってもL1から読めるだけ読んじゃうって動作だったように思うんだけども。"
まさみさんは語りたいさんのツイート: "なんかbusy waitのバグを再現しようとして、フラグをatomicにするのを忘れてループ回したら、片方のCPUの演算結果が受け取れなくてL1Dは更新されないんだー、へーっていくのを実際にやった覚えがある。"
まさみさんは語りたいさんのツイート: "L1TF問題、armではどうなるんだっけか。"
まさみさんは語りたいさんのツイート: "L1TFって実際に書き込み出来るバグなの?"
Tsukasa #01 [要出典]さんのツイート: "No. Spectre 類似攻撃で、投機実行パスでメモリ保護機能の一部が無効になっていることを悪用して情報を "読む" ことがメイン。概要だけ抜き出したら Spectre や Meltdown と違う部分がなくなってしまいましたが、変種ということで……。… "
まさみさんは語りたいさんのツイート: "やはり読むだけですよね。いくら投機実行できるとは言え、投機的に書き込む場合コミットできるかどうか確認してからでないとメモリに書き込みは出来ないですよね。… "
Tsukasa #01 [要出典]さんのツイート: "はい。逆説的に言えば、その点さえ守ってれば投機的実行パスで何してもいいだろ的に色々やり過ぎたのが最悪の形で暴かれてしまってるのではないかと。… "
まさみさんは語りたいさんのツイート: "なんかこう、投機的実行とか先読みとかのせいで、Intel CPUを使うメリットだった強い一貫性のあるメモリモデルが一転して信じられなくなってる上、ISA上確認できないしコントロールも出来ないので最悪だなーっていう話になってきているな。"
まさみさんは語りたいさんのツイート: "そもそもメモリモデルがある程度弱い一貫性とかキャッシュを自前である程度制御しないといけない、という話だと、それに対応する命令ややり方があるんだけど、ソフトウェアの外側にある投機的実行や先読みが勝手にキャッシュしたりすると、制御する術がないか、あるけど牛刀になるという・・・。"
まさみさんは語りたいさんのツイート: "うーん、非常に嫌な話が出ていて、ページテーブルを共有する複数のコアで、1つのコアが一部のPTEを変えた場合、他のコアで勝手にそれがTLBにロードされているかもしれないっていう話。そしてそれを明示的にshootdownできない(他のコアなので)ので危険かもと。"
まさみさんは語りたいさんのツイート: "もはやTLB shootdownとは()という話だな。これどうしようもないなら、全部のコアでページテーブルを共有してはいけないっていう話にならないか?"
beepcap@HTTPSの強制には反対さんのツイート: "最近「まさかそんな実装になってるんけないやろwwww」みたいなのが、サイドチャネル攻撃のお陰で次々あらわになって笑えるし、MIPSの正しさが示される"
Fadisさんのツイート: "nanoMIPSという 一段と美しくなくなった最新のMIPSアーキテクチャ が存在する事を知った"
syuu1228さんのツイート: "MIPSのくせに可変長命令はいいぞ!してるやつね…"
まさみさんは語りたいさんのツイート: "現状の予想 ・とりあえずカーネルのページテーブルは共有 ・微妙な操作をする場合に専用スレッドを立て、専用ページテーブルを利用する(カーネルスレッドだけど少し違うメモリ空間になる)"
まさみさんは語りたいさんのツイート: "これが他のspectreと違って厄介なのは、TLBエントリが勝手に追加されてしまった場合、その後のメモリアクセスは投機実行だけでなく、実際にコミットされうるところだな。つまりRWマップしていたら、書き込みも可能になると。"
まさみさんは語りたいさんのツイート: "このTLBのspeculative read-ahead(というのが適切に思う)の問題は、本質的には他のプロセッサでも起きる可能性がありそうなんだけど、どうなんだろう?"
まさみさんは語りたいさんのツイート: "処理の途中でswitch_mmしちゃう(専用スレッドは作らない)方向になった。まあ、その方が簡単だけども。"

@utshina2

品川 高廣さんのツイート: "10秒で分かるForeshadow: まずenclave内の秘密のデータをL1に乗せさせてアクセスするコードのout-of-order実行を可能にしつつ、pageを読み書き禁止にしてpage faultを発生させてダミー値への置き換えを防ぎ、page walk中にMeltdown的なside-channel攻撃でL1上の秘密のデータを読み出すって感じかな。"
品川 高廣さんのツイート: "page walk には時間がかかるのだけど、その間に同じページのデータが既にL1キャッシュに乗っていたら、次の命令が out-of-order で投機的に読めてしまうのが問題らしい。インテルが L1 Terminal Fault と呼ぶのはそういうことかな。"
品川 高廣さんのツイート: "page table entry の present bit が 0 (存在しない)の場合、本来残りのビットはOSが自由に使っていい領域なのだけれど、物理アドレス部分が(たまたま)キャッシュされている内容と一致していれば、次の命令で投機的に読めてしまうらしい。えーっ"
品川 高廣さんのツイート: "page table entry の物理アドレス部分がたまたま有効な値であれば、ユーザ空間から本来アクセス権がないOSや他プロセスのデータを読めてしまう可能性がある。キャッシュを共有しているVM間であれば、ゲストOSで適当に page table entry を設定すれば他VMのデータを読めてしまう可能性がある。"

@kazuho

Kazuho Okuさんのツイート: "PTEのPresentビットが立ってなくても、格納されている物理アドレスをspeculativeに利用しちゃうから副作用があるのかー / “deep-dive-intel-analysis-l1-terminal-fault” https://t.co/qKY8UK7vcv"
Kazuho Okuさんのツイート: "L1TF はゲストOSが信頼できないとなると hyper-threading をオフにする必要があって、それってつまり vps とかそういう系にはとても大きなパフォーマンスインパクトがあるってことになるからなぁ https://t.co/sgvOGMIqnv"
Intel Side Channel Vulnerability L1TF
https://software.intel.com/security-software-guidance/insights/deep-dive-intel-analysis-l1-terminal-fault

@jovi0608

Shigeki Ohtsuさんのツイート: "今度は Intel SGX を狙った L1 Terminal Fault か。 / “Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-…” https://t.co/aPzuaSE1j1"
Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution

@KuniSuzaki

suzakiさんのツイート: "新たな投機的実行の脆弱性 "Foreshadow"(Intelでの命名はL1TF: L1 Terminal Fault)はIntel SGX、SMM、VMMまで影響を及ぼす。これはUSENIX Sec18で発表される。 https://t.co/2isrd8lko8 USENIX SecのHP https://t.co/uylwnCo89D"
Intel CPUの「SGX」機能に新たな脆弱性、仮想マシンなどにも影響 - ITmedia エンタープライズ
suzakiさんのツイート: ""Foreshadow"論文はまだUSENIX Sec18のHPからは公開されていないが、著者らのHPからダインロードできる。 https://t.co/0wpfRoXaXx"
foreshadow.pdf
suzakiさんのツイート: "投機的実行の脆弱性 "Foreshadow"脆弱性は、 SGX関連 CVE-2018-3615(CVSS 10.0) OS/SMM関連 CVE-2018-3620(CVSS 7.1) VMM関連 CVE-2018-3646(CVSS 7.1) だそうだ。 共通脆弱性評価システム(CVSS)最高値は10.0なので影響が心配。 https://t.co/2isrd8lko8"

@masami256

このコード、オシャカルトっ!さんのツイート: "PTEからPFNを調べるところでprotnone_mask()って関数が追加されてPビットのチェックが入ったり。https://t.co/eNCpazBHtG"
kernel/git/torvalds/linux.git - Linux kernel source tree
このコード、オシャカルトっ!さんのツイート: "記事にも書いてあるけど、実際のpatchを見るとkvmの方が対応がめんどくさいな"
このコード、オシャカルトっ!さんのツイート: "https://t.co/6MfwZRO9gaのMeltdown strikes back: the L1 terminal fault vulnerabilityってまた新しい手法か?まだ読んでない。"
このコード、オシャカルトっ!さんのツイート: "Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution https://t.co/qBXFHNqfL1"
Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
このコード、オシャカルトっ!さんのツイート: "PTEのPビットが0ならページが存在しないんだから、ページフォルトが起きた時にPTEのPFNは読む必要ないんだけど、Intel CPUは先読みしちゃうのでL1キャッシュにデータがあると読み出せてしまうって感じかな。"
このコード、オシャカルトっ!さんのツイート: "データがL1に存在する必要があるとか条件は面倒そうだ。"
このコード、オシャカルトっ!さんのツイート: "コメントが細く書かれてるな https://t.co/eNCpazBHtG"
kernel/git/torvalds/linux.git - Linux kernel source tree
このコード、オシャカルトっ!さんのツイート: "(´-`).oO(カーネルも脆弱性対応で変数にアクセスするにもちょっとひと手間加える必要があったりするし、セキュリティはそこまで気にしないシンプルな実装の学習用のカーネルというものの需要はあるだろうな。"
satさんのツイート: "これよいですよ https://t.co/yd2t2H5LpE… "
このコード、オシャカルトっ!さんのツイート: "Meltdown strikes back: the L1 terminal fault vulnerability のpteの説明でpfnに46bit使ってるところはSDM Vol3のTable 4-19. Format of a 4-Level Page-Table Entry that Maps a 4-KByte Pageだと物理アドレスとなってるので違いがあるのか。 https://t.co/qO6Fm4kZpy"
Meltdown strikes back: the L1 terminal fault vulnerability [LWN.net]

Foreshadow (security vulnerability) - Wikipedia
Analysis and mitigation of L1 Terminal Fault (L1TF) - Microsoft Security Response Center
L1 Terminal Fault
INTEL-SA-00161
Processors Affected: L1 Terminal Fault
Deep Dive: Intel Analysis of L1 Terminal Fault | 01.org API

MDS

Microarchitectural Data Sampling - Wikipedia
Fadisさんのツイート: "MDS: 一部のIntelプロセッサ内のStore Buffer(メモリ書き込み予定表)、Fill Buffer(L1 cacheへのロード待ち表)、Load Port(メモリからの読み出し待ち表)が完了後にクリアされておらず、これらを踏む命令で見えない位置にあるはずの値の存在を確認できるサイドチャネル脆弱性 https://t.co/10QjZh7YJC"
【CPU】 Intel CPUに新たな脆弱性『Microarchitectural Data Sampling (MDS)』。AMD CPUは影響なし : ニッチなPCゲーマーの環境構築
Intel CPUの投機実行機能に新たな脆弱性「MDS」 ~サーバーは緩和策によるストレージ性能への影響あり - PC Watch
2011年以降のほぼすべてのIntel製プロセッサに影響する脆弱性「MDS」の存在が明らかに - GIGAZINE
Intel製CPUに新たな脆弱性「ZombieLoad v2」が発見される、Cascade Lakeにも影響あり - GIGAZINE
2019年5月17日号 Meltdown/Spectre/Foreshadowの後の世界:“MDS”攻撃への対応,WSL2のFAQ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
2019年11月22日号 Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
ZombieLoad: Cross-Privilege-Boundary Data Sampling
New ZombieLoad v2 Attack Affects Intel's Latest Cascade Lake CPUs
Microarchitectural Data Sampling
Processors Affected: Microarchitectural Data Sampling
Intel Side Channel Vulnerabilities: MDS and TAA
Deep Dive: Intel Analysis of Microarchitectural Data Sampling
Deep Dive: Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort

Rowhammer

shinichiro hamajiさんのツイート: "#misreading https://t.co/m82S1poS4x Rowhammerは仕事のタイミング的にすごく困った。clflush禁止→無くても、ARMとかでもできた→JSからでもできた(https://t.co/nuwXNhlHqZ)と案の定悪化していった。基本ハードウェア上の処置(頻繁にリフレッシュとか)しかないという理解で、そのへんは面白みが無い"
Episode 18 – Exploiting the DRAM Rowhammer Bug to Gain Kernel Privileges – Misreading Chat
1507.06955.pdf
Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
kim-isca14.pdf

Page Cache Attacks

ハードウェア非依存の新たなサイドチャネル攻撃“Page Cache Attacks”が発表 - 窓の杜
[1901.01161] Page Cache Attacks

Google

米Google、WebKitベースの新レンダリングエンジン「Blink」を発表、Chromeでの導入を視野に | OSDN Magazine
Google Developers Japan: プロセス外 iframe で Chrome 拡張機能のセキュリティを向上
Rockridgeさんのツイート: "Chrome 56以降、エクスプロイト攻撃への対策として、拡張機能の設定ページなどで用いられるiframeを拡張機能のプロセスから分離し、セキュリティを強化した。 / “Chromium Blog: Improving exte…” https://t.co/45P64PWoZj"
Chromium Sandbox を用いた保護モード - NyaRuRuが地球にいたころ

Mozilla

WebExtensions

Rockridgeさんのツイート: "WebExtensions拡張機能の別プロセス化は、contentプロセスの複数化とは別の話である。contentプロセスが4つ埋まっていても、拡張機能向けのプロセスは別途設けられる。 / “Out-of-process Web…” https://t.co/q6gGS6PDPX"
Rockridgeさんのツイート: "WebExtensionsの別プロセス化とサンドボックス化について、実装時期は未定だが開発は進行しているとのこと。参照:https://t.co/8DrgHzDhHy / “WebExtensions in Firefox 51…” https://t.co/uJICsXuEIU"
Rockridgeさんのツイート: "WebExtensionsからSpiderNodeを別プロセスで起動させる実験が行われている。このプロセスはサンドボックス化されることが想定されている。参照:https://t.co/u7RAcFgA7Z / “Node and…” https://t.co/5MhRCjTwro"
Rockridgeさんのツイート: "ローカルファイルを読み書きするシステムをWebExtensions向けにどのように実装するか検討中。サンドボックス化されたプロセスと整合性のある実装が求められる。参照:https://t.co/yYPsAl35af / “Web…” https://t.co/t0U4WcPAI4"

5x

52

Rockridgeさんのツイート: "Fx52:Linux版におけるプロセスのサンドボックス化が強化され、原則としてcontentプロセスにおいてファイルシステムへの書き込みは禁止されるようになった。参照:https://t.co/lkLuRqHfsI / “Gar…” https://t.co/fqlvHTovZc"

55

Rockridgeさんのツイート: "Fx55:Windows/macOS版でcontentプロセスのサンドボックス化が常時有効化。最低限のサンドボックスが偶然に無効化されることを防ぐ。 / “1358223 - Hard code the lowest allow…” https://t.co/AGCUlQaEJA"
Rockridgeさんのツイート: "Fx55:GPUプロセスにも最低限のサンドボックスが適用されるようになった。 / “1347710 - Enable sandbox protections for the Windows GPU process” https://t.co/JP5oODpbBj"
Rockridgeさんのツイート: "Fx55:サンドボックス機能を実装するために使うChromiumのコードが、Chromium 56ベースのものにアップデートされた。前回はFx51でChromium 49ベースのコードが導入されていた。 / “1337331 -…” https://t.co/nzmPvITBKo"

56

Rockridgeさんのツイート: "Fx56:Windows版Nightlyで、contentプロセスのサンドボックス化が従来よりも強化された。 / “1366694 - Enable Windows level 3 content process sandbox…” https://t.co/lU3hKqxwNh"
Rockridgeさんのツイート: "Fx56:Mac版でcontentプロセスのサンドボックス化が強化され、そのままデフォルト有効で投入される。参照:https://t.co/OKJU6oOYr9 / “1377522 - Let the Level 3 cont…” https://t.co/WJQReMCVn2"

57

Rockridgeさんのツイート: "デスクトップ版Firefox 57はプラットフォームを問わずファイルシステムのアクセスがプロセスサンドボックス内に限定されるようになった。Windows向けFx58ではサンドボックスがさらに強化されるという。 / “Firefo…” https://t.co/kUV49pletZ"

59

Rockridgeさんのツイート: "Fx59:Chromiumから取り込んでいる、プロセスのサンドボックス化に関するコードがアップデートされた。Chrome 62と同等か。参照:https://t.co/kz6ENgKo7p / “1366701 - Update…” https://t.co/FjTyMfiFby"
Rockridgeさんのツイート: "Firefoxはプロセスのサンドボックス機能を実装するにあたりChromiumのコードを利用している。ところがChromiumがWindows XP/Vistaのサポートを打ち切ったため、Chromium 50以降の新しいものを使… https://t.co/a1lsFDKzck"
Rockridgeさんのツイート: "Windows版Firefoxのビルドにおいて、Windows 10 SDKのバージョン10.0.10586以降が必須となる。プロセスのサンドボックス化に関するChromiumのコードを取り込むのに必要な措置だという。 / “P…” https://t.co/Zq1gPwfZrW"
PSA: Making Windows 10 SDK version 10.0.10586 the minimum for building Firefox - Google グループ

Rockridgeさんのツイート: "Fx58:contentプロセスにおけるサンドボックスのセキュリティ水準を強化した。 / “1415250 - Let level 4 for the Windows content sandbox ride again.” https://t.co/PUIKKXCNJr"

6x

60

Rockridgeさんのツイート: "Fx60:macOS版で、contentプロセスのサンドボックスが強化され、ディスクの書き込みに例外なく制約がかかるようになった。今後はWindows版やLinuxにもこの措置を適用していく。参照:… https://t.co/mwZ8F8D5Kr"

Rockridgeさんのツイート: "サンドボックス化の対象となるFirefoxの各種プロセスについて。 / “Security/Sandbox/Process model - MozillaWiki” https://t.co/QxYBng4ADa"
Rockridgeさんのツイート: "近日中にWindows/macOS版Nightlyでcontentプロセスのサンドボックスが強化される予定。 / “Enabling filesystem read-restrictions for content proces…” https://t.co/hTx048KnbY"
Rockridgeさんのツイート: "Firefoxに実装され、あるいは将来実装予定のサンドボックス機能について、概要を説明した文書。Compositorプロセスの導入がFirefox 53になりそうだという話も。 / “Security/Sandbox/Archi…” https://t.co/GGOo0nXJhE"
Rockridgeさんのツイート: "MozillaはFirefoxのサンドボックス化されたプロセスが破られた場合に、被害を最小化する仕組みについても検討している。参照:https://t.co/nKOqk4k2rm / “Hardening the Firefox…” https://t.co/oQAY9QD8x4"
Rockridgeさんのツイート: "MozillaはWindows版Firefoxのサンドボックスを強化する"win32k lockdown"について検討中だが、2019年3月以降の導入になりそうだ。Chromeは導入済み。参照:… https://t.co/otgOjeezZK"
Security/Sandbox/2018-04-12 - MozillaWiki
Rockridgeさんのツイート: "Mozillaは、将来的にサイト単位のプロセス分離を導入するため、1つのプロセスが消費するメモリを減らす取り組みを続けている。2018年11月現在、7~8か月前と比べて3分の2以下になっている模様。 / “Project Fis…” https://t.co/3mHR3xsA81"

Linux

eBPF

睡分不足

SpectreとeBPF - 睡分不足
LinuxのBPF : (1) パケットフィルタ - 睡分不足
LinuxのBPF : (2) seccompでの利用 - 睡分不足
LinuxのBPF : (3) eBPFの基礎 - 睡分不足
LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足

blog

ブログ: Linux Enhanced BPF (eBPF)トレース・ツール
Berkeley Packet Filterの基礎と応用 - Part 1
LinuxのBPFとbccでデバッグする - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
eBPF命令セット - Packets are too Fast
ubpfで遊んでみる - livaの雑記帳
Linux eBPF Tracing Tools
eBPF: One Small Step
How to send/receive raw packets on Linux
Persistent eBPF map object with bcc - yunazuno.log
eBPF tail call 使い方メモ - yunazuno.log

スライド

BPFの現在 - SSSSLIDE
eBPF関連用語メモ - Speaker Deck
eBPFをFreeBSDにポーティングしようとしている話 - Speaker Deck
eBPF verifier - Speaker Deck

GitHub

susanow/bpf: BPF Implementation using Xbyak JIT Assembler in Userland
bpf-docs/eBPF.md at master · iovisor/bpf-docs
IO Visor Project
eBPF – IO Visor Project

Twitter

Kentaro Ebisawaさんのツイート: "Linux 4.10 に IPv6 Segment Routing 入ったんだ。VRFもいろいろ拡張されてる。あとは BPF for lightweight tunnel encap か。 https://t.co/N4EmE5IcmI"
Yojiro UOさんのツイート: "「イマドキのBPF復習しとかなきゃ」っていろいろみてたら、見つけた。更新されてるし網羅性も高い? Dive into BPF: a list of reading material https://t.co/C0PDApgWGZ"
Dive into BPF: a list of reading material
るくすさんのツイート: "まあ普通の使い方じゃなくて、各ソケット一つに付随してるBPF JITコードを延々と増やしてJIT sprayするためという、明らかに攻撃者始点の使い方。"
まさみさんは語りたいさんのツイート: "あー、これはBPFとフレームワークを共有しているからか。"
まさみさんは語りたいさんのツイート: "netmapはNICのパケットバッファをユーザ空間にmmapする。VALEはカーネル空間にmmapして、スイッチングロジックをカーネルモジュールで書ける。ただしこのモジュールを書くのは非常に難しい。"
まさみさんは語りたいさんのツイート: "VALE-BPFということでBPFでVALEモジュールを書けるとのこと。"
まさみさんは語りたいさんのツイート: "VALE-BPFはXDPよりも2%ほどパフォーマンスが良くなる"
まさみさんは語りたいさんのツイート: "個人的にはeBPFを勘違いしていて、バイトコードをある程度自由にカーネル内から構成できると思っていたんだけど、実際にはユーザ空間から渡されたコードをVerifyしたりする結構面倒な手続きを飛ばせないと言われたのが最近のeBPFの記憶のハイライト。"
品川 高廣さんのツイート: "Spectre は Intel だけでなく AMD や ARM の CPU でも実行できるけど、読み取りたいメモリへのアクセス権限をもったある種のコードが必要。Google は eBPF を使ってるし、この論文では ROP 的な手法を使っている。攻撃は簡単じゃないけど防御も一筋縄… https://t.co/nwCuRhOvnr"
品川 高廣さんのツイート: "とりあえず、eBPF は無効にした方がいいんじゃないか。"
るくすさんのツイート: "bpf JITと言うと、grsecurityが昔bpf JITでJIT sprayして権限昇格やるkernel exploitやってた気がする(SMEP bypass可"
shinichiro hamajiさんのツイート: "#misreading ep.6 は完全に俺得回でした。依存関係解析はAndroidでやったことがあって、straceをseccomp-bpf使って改造高速化して入出力全部調べるという一般的な手法だった https://t.co/Kkg9qXGo5R 実際これでかなりたくさんのぶっこわれてる依存見つけて、修正の例としては https://t.co/rFVCOdqVFZ"

https://www.kernel.org/doc/Documentation/networking/filter.txt
Berkeley Packet Filter - Wikipedia
BPF for lightweight tunnel infrastructureについて調べてみた - Qiita
2018年8月14日 Linux 4.18がリリース ―AMDGPUサポートの拡充,BPFILERフレームワークなど:Linux Daily Topics|gihyo.jp … 技術評論社
「LLVM 3.7」リリース、eBPFサポートがマージされターゲットとして選択可能に | OSDN Magazine

seccomp

mode 2 seccompの話 - yuzuharaの日記
Linuxカーネル3.5リリース、ファイルシステムやネットワーク、ドライバ関連で多くの強化が行われる | OSDN Magazine
Berkeley Packet Filterの基礎と応用 - Part 3
seccompめも( ..)φカキカキ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux 3.19はkernelからX.509証明書をロード(IMA)するらしい - つれづれ日記2015年05月
本の虫: ChromiumがLinuxカーネル3.17より前のサポートを打ち切り
Rockridgeさんのツイート: "Linux版Firefoxにおけるプロセスのサンドボックス化にはSeccomp-bpfを利用しており、Linux 3.5(2012年7月21日リリース)以降がその動作環境となる。 / “Security/Sandbox - Mo…” https://t.co/NJBc9k8kRI"
OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来

SELinux

SELinuxの現在の動向 — | サイオスOSS | サイオステクノロジー
SELinuxのCIL (Part1) — | サイオスOSS | サイオステクノロジー

Firejail

Firejail - ArchWiki

Linuxカーネルモジュールでret2usrによる権限昇格をやってみる - ももいろテクノロジー
LinuxカーネルモジュールでStackjackingによるSMEP+SMAP+KADR回避をやってみる - ももいろテクノロジー
wiki/linux-boot-process.md at master · hfm/wiki
Linuxカーネルの基本機能 - 第5回 カーネル・メモリー管理:ITpro
kmem_cacheさんはTwitterを使っています: "linuxのpage allocatorでcompactinoの実行を管理するのはcompact_zone()か。実際にpageを移動させたりはmigrate_pages()とかになる。 http://t.co/ilEruADd0M"
平田豊ひらたゆたか🐬さんのツイート: "Linuxのカーネル空間では、ヌルポアクセスすると、ページフォルト処理の延長でOopsに遷移します。下記メッセージ(ARMの場合)が表示されます。 "Unable to handle kernel %s at virtual address %08lx\n" https://t.co/Qxae8BVGut"
るくすさんのツイート: "SMAF(Secure Memory Allocation Framework)がLinux4.10から入りそう。 Webカメラって案外IOMMUがないらしく外部のIPからDMA attackができるらしいがそれの防止もできるとか https://t.co/moS8t8y7Fy"
NsJail
google/nsjail: A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters (with help of the kafel bpf language)
革命の日々! transparent hugepage considered harmful
www.ffri.jp/assets/files/monthly_research/MR201404_Building secure Linux application with privilege separation_JPN.pdf
2016年5月13日 ヤバめのアプリはまず"火の檻"で ―サンドボックス「Firejail」がX11に対応へ:Linux Daily Topics|gihyo.jp … 技術評論社
2017年9月25日 AppArmorをDebianでもデフォルトに!? ―Tails開発者が提言:Linux Daily Topics|gihyo.jp … 技術評論社
Linuxカーネル4.16リリース | OSDN Magazine
2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
第40回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[4]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
KOSAKI Motohiroさんのツイート: "Turing Complete FM #31 聞いてる。Linuxだとsuper pageからnormal pageからのdemoteは行っていない。なぜならfreebsdに入れたときよりだいぶあとに入ったので、デスクトップPCの平均メモリ量がかわってしまい、ふつう全部2Mページでも困らないぐらいだし、いらない、という意思決定をした"
KOSAKI Motohiroさんのツイート: "transparent hugepageで面白かったのは、いらなくなったときに2M単位でスワップアウトするか、その時点で4kに分解して、ちょびちょびスワップアウトするかで議論して、平均性能よりも性能劣化を最小化するほうがリアルワールドで受け入れてもらうために重要だろうという話をして、4kに分解することに"
suzakiさんのツイート: "1998年か。「スタックを非実行領域にするLinux向けのパッチ(修正差分)は,1998年には既にOpenwallプロジェクトなどが提供していた。しかし,Torvalds氏はこれを無意味だとしてパッチの取り込みを拒否している」https://t.co/1GyILfaHq8"
Windows XP SP2の新セキュリティ機能,Linuxでも標準装備を(2ページ目) | 日経 xTECH(クロステック)
Fadisさんのツイート: "Linux 5.0までのページ管理はページの参照数を32bit符号付整数のatomic値で保持していて0になるとページを捨てるようになっており、多くのコンパイラは符号付整数が最大値を超えた時最小値からカウントするコードを吐く為、約42億箇所から参照されるページの参照が減るとページが消えてしまうらしい"
Fadisさんのツイート: "ただし、リソースを大食いせずに、ulimitの制限も回避しながらユーザ空間で1つのページに対して42億もの参照を作るのは容易ではなく、この不具合が悪用される可能性は極めて低いとされている"
Fadisさんのツイート: "32bit整数が一周するほど参照する方法とか、Linux 5.1でどうしたのかとかの詳細はLWN(リンク先有料記事) https://t.co/q6MImoJmMs"
Subscription required [LWN.net]
suzakiさんのツイート: "セキュアメモリ二つ目。同じアドレスを複数回t叩くRowHammerをPTE に適用し、権限昇格を行う攻撃がある。 これに対して現在のDRAMでは01のロジックが逆のCell (True-Cells, Anti-Cells)を組み合わせいる。 True-Cellのみが使われるようにするCell Type Aware (CTA) memory Allocationの提案。"
suzakiさんのツイート: "LinuxではPage Tableの割り当てにZONE_PTPを使つっているので、これを活用。"
suzakiさんのツイート: "Security I 二つ目。 すべてのメモリアクセスにCapabilityが付く命令セットCHERI: Capability Hardware Enhanced RISC InstructionsでPointer Provenanceを保証する仕組みを導入した話(Best paper, SRI)。 (論文ではProvenanceの意味をcorrect operationと定義している)"
suzakiさんのツイート: "ライブラリはソースコード(sbrk, mmap, and shmat? )の変更が必要だが、通常のアプリは大抵不要。 元々入っていたFAT PointerをProvenance更に付加した?"
複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足

FreeBSD

はっきり見えてきたFreeBSD 10の行方(2/3) - @IT
CAPSICUM(4) - 特殊ファイル - YOS OPENSONAR
【レビュー】新しいセキュリティモデル「Capsicum (キャプシカム)」を知る | マイナビニュース
FreeBSDのCapsicumとは(その1) - Qiita
2011年11月8日 新セキュリティ「Capsicum」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
第9回 カーネル内部のセキュリティを強化,ネストカーネルでメモリ区画化:BSD界隈四方山話|gihyo.jp … 技術評論社
第10回 セキュリティを大幅に強化するCheriBSD:BSD界隈四方山話|gihyo.jp … 技術評論社

OpenBSD

OpenSSLのフォーク「LibreSSL」を含んだ「OpenBSD 5.6」がリリース | OSDN Magazine
20周年を迎えたOpenBSD、「OpenBSD 5.8」を公開 | OSDN Magazine
「OpenBSD 6.0」が公開 | OSDN Magazine
「OpenBSD 6.1」リリース、arm64もサポート | OSDN Magazine
「OpenBSD 6.2」リリース、カーネル保護機構などを強化 | OSDN Magazine
第25回 OpenBSD 5.8登場 - sudo(8)を廃止してdoas(1)を導入:BSD界隈四方山話|gihyo.jp … 技術評論社
第29回 OpenBSD 5.9の新しいセキュリティ機能pledge(2):BSD界隈四方山話|gihyo.jp … 技術評論社
第35回 OpenBSD pledge(2)システムコール,5.9で正式登場:BSD界隈四方山話|gihyo.jp … 技術評論社
第108回 OpenBSD,KARLセキュリティ機能を開発:BSD界隈四方山話|gihyo.jp … 技術評論社
第111回 BSDカーネル脆弱性調査:BSD界隈四方山話|gihyo.jp … 技術評論社
第112回 OpenBSDに新しいセキュリティ機能「RETGUARD」:BSD界隈四方山話|gihyo.jp … 技術評論社
第120回 OpenBSD 6.2登場:BSD界隈四方山話|gihyo.jp … 技術評論社
第122回 OpenBSD新セキュリティ機能KARL:BSD界隈四方山話|gihyo.jp … 技術評論社
第128回 OpenBSD pledge(2)システムコール進捗報告:BSD界隈四方山話|gihyo.jp … 技術評論社

NetBSD

このコード、オシャカルトっ!さんのツイート: "設計の内容が説明されてるので良い感じ( ̄ー ̄)bグッ! GSoC 2018 Reports: Kernel Address Sanitizer, Part 3 NetBSD Blog https://t.co/cRb87HEGnx"
NetBSD Blog
このコード、オシャカルトっ!さんのツイート: "NetBSDのKASANの説明記事はLinuxはこんな感じでNetBSDではこうしたよって形の説明の仕方なのでちょっとお得 😊"

ASLR

Yamamoto, Hirotakaさんのツイート: "ASLR が性能にこんなにインパクト与えることあるのか。 https://t.co/qpep0x0CaX"
Øystein on MySQL Optimizer: Improving the Stability of MySQL Single-Threaded Benchmarks
ASLR回避技術とChromeのsandboxの突破exploit | Scene Research Station
Address Space Layout Randomization in Windows Vista – Michael Howard's Web Log
Address Space Layout Randomization - NyaRuRuが地球にいたころ
Tsukasa #01 [要出典]さんのツイート: "ところで、セキュリティキャンプ 2018 の本番中に (参加者のフィードバックに応じて) ファイルやデータのエントロピー計算をやるのを (講師として) 突貫で勉強して突貫で実装したわけですが、あれって凄くシンプル (かつ条件によっては騙しやすい) ものだったんですね。"
Tsukasa #01 [要出典]さんのツイート: "早い話が 0x00 - 0xff の頻度表を作ってそこからエントロピーを計算するもの (実装の違いとしては "どこから" データを取るか、くらいか) で、00 01 02 03 .. FE FF な超規則的なバイナリデータでもエントロピー 8 (最大) になるよね、という話をしていました。"
OSセキュリティチュートリアル
ASLR – 研究室の裏庭 – Medium
Windows 10: 強化された脆弱性緩和技術で攻撃のコストを上げる – 日本のセキュリティチーム
JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
「Windows 8」以降のセキュリティ機能に脆弱性 - CNET Japan

ページング方式 - Wikipedia
メモリ保護 - Wikipedia
chroot - Wikipedia

ページテーブルのランダム化

suzakiさんのツイート: "システムセキュリティ1。4つ目。Page Tableはpermissionもあり、変更されるとデータがコードになる。これを防ぐためにPage TableをランダムにするPT-Randの提案。ランダマイゼーション情報はLeakage resilientなDebugレジスタに隠す。"
まさみさんは語りたいさんのツイート: "Page Tableをランダムにするにはハードウェアの補助が必要な気がしますが、ソフトウェアだけで処理ですか?(Page tableに割り付けるページをランダムに選ぶ?)… "
suzakiさんのツイート: "発表を聞いていた範囲ではpage walk中にはソフト割り込みを禁止するなど説明しており、特別なハードウェア機能を使わないようでした。… "

サンドボックス

サンドボックスとは?標的型攻撃への定番対策の仕組みと課題
巧妙なマルウェアに対抗する最先端のサンドボックス技術 | トレンドマイクロ セキュリティブログ
合法マルウェアで実感「リアルとサンドボックスの違い」 (1/3):マルウェアの視点で見るサンドボックス - @IT
ASCII.jp:検知を回避するマルウェアが使用するメカニズムを徹底解説
今更聞けない!サンドボックスの基本を徹底解説! | CodeCampus
ASCII.jp:サンドボックス型製品すらも回避、最新の標的型攻撃事情
ウォッチガード、次世代サンドボックスによるマルウェア検知・自動レスポンスを機能拡張 – UTM/NGFWでマルウェア・標的型攻撃対策|ウォッチガード・テクノロジー
サンドボックス機能|機能紹介(FortiSandbox)|日立ソリューションズがお届けするFortinet Products
「サンドボックスだけでは標的型攻撃を防げない」――フォーティネットが提唱する3つのステップとは? | ビジネスネットワーク.jp
Project Zero: You Won't Believe what this One Line Change Did to the Chrome Sandbox
Project Zero: FF Sandbox Escape (CVE-2020-12388)
Site Isolation 及び Web のセキュリティモデルの更新 | blog.jxck.io
オリジン全体にポリシーを適応するOrigin PolicyをChromeで試す - ASnoKaze blog
品川 高廣さんはTwitterを使っています 「iOS の sandbox はパス名ベース。TOCTTOU 攻撃には弱そうだな。#arm_study」 / Twitter

セキュリティ

Intel

サービス拒否攻撃

ページサイズ変更によるマシンチェックエラー: CVE-2018-12207 - Red Hat Customer Portal
Deep Dive: Machine Check Error Avoidance on Page Size Change
Processors Affected: Machine Check Error Avoidance on Page Size Change

SPOILER

Intel製CPUに見つかった新たな脆弱性「SPOILER」はまたもシリコンレベルでの再設計による修正が必要 - GIGAZINE
まさみさんは語りたいさんのツイート: "CPUのOut of Order実行をしている時にストア命令とロード命令の実行順序が投機的に入れ替わるのを利用。ロードはストアを追い越すが、実行後に直前のストアが終わっていないことが分かったらやり直す。これを利用するとロードにかかる時間が変わることを利用してどこをアクセスしてるか推測できる。"
まさみさんは語りたいさんのツイート: "問題はこのロードとストアの衝突の検知のため物理アドレスを比較するときに、アドレスのごく一部のビットだけ利用しているということ(またリソースケチったのかよ・・)。このため、全く違うアドレスをストアでスキャンするとロード命令に影響が出るらしい。"
まさみさんは語りたいさんのツイート: "これだけだとASLR破りに使えそうだなという印象。ロード命令はどこにでもあるから・・・。"
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
More Information on Spoiler

L1D Eviction Sampling

Intel製CPUの新たな脆弱性「L1Dエビクションサンプリング」を利用してデータを引き出す攻撃「CacheOut」が報告される - GIGAZINE
L1D Eviction Sampling
Processors Affected: L1D Eviction Sampling

Vector Register Sampling

Vector Register Sampling
Processors Affected: Vector Register Sampling

HT

TLBleed

Intel CPUの脆弱性「TLBleed」は修正困難 - OpenBSD開発者 | マイナビニュース
TLBleed - Wikipedia
iTWire - OpenBSD chief de Raadt says no easy fix for new Intel CPU bug
suzakiさんのツイート: "マイナビ『SperctreやMeltdownを根本から防ぐSafeSpec』https://t.co/MFqNVS83Tw 投機実行で見えてしまう情報をシャドウキャッシュやシャドウTLBで隠す提案。 オリジナル論文はhttps://t.co/Pq7yQ1jjc8 ツイートしたTLBleedにも関連しそうだが、BlackHat、USENIX Secで発表なので待たないといけない。"
SperctreやMeltdownを根本から防ぐSafeSpec(2) Spectre/Meltdownを防ぎ、安全な投機実行を可能にするSafeSpecの考え方 | マイナビニュース
[1806.05179] SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation
suzakiさんのツイート: "ちなみにオリジナルのarXiv論文のタイトルは SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation https://t.co/Pq7yQ1jjc8 PDFを確認したところ、さすがにTLBleedは論文で言及されていない。"
まさみさんは語りたいさんのツイート: "インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 https://t.co/2xZrIOECow @zdnet_japanから crypto処理をhugepage上で実行するだけで防げたりして…。"
インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 - ZDNet Japan
Shigeki Ohtsuさんのツイート: "さんざん噂になってた TLBleed ですが、ようやく発表者からのアブストとpaperが出てきましたね。17秒で256bit EdDSAを98%の確率で秘密鍵を取得できるのか。こりゃすごい。 HTをdisableするしか対策がない… https://t.co/KgtRGrODUQ"
TLBleed - VUSec
Fadisさんのツイート: "EdDSAの特定の実装に対するローカルからのサイドチャネル攻撃で鍵を特定できました、と。よかった、Curve25519も信用ならねぇとかぞういう話ではなかった"
Fadisさんのツイート: "Intel CPUのHyperthreadで1つのプロセッサを共有する複数のスレッドが同じTLBキャッシュを見ているのを利用して、同じプロセッサ上で動く別のスレッドの動きを覗く話っぽい。EdDSAの署名をするサーバで隣でそれを覗くプロセスを動かすことで、EdDSAの秘密鍵を短時間で特定できる程度まで絞り込めた、と"
まさみさんは語りたいさんのツイート: "TLBleed、intelのSMT実装ミスみたいなものなんじゃなかろうか。リソースはたしかに減らせるんだけども。他のSMTプロセッサではどうなってるのか気になる。"
Kazuho Okuさんのツイート: "TLBleed が定数時間アルゴリズムのバグの指摘でないという論拠がわからんというか、秘密鍵の値によって TLB の触り方が変わるプログラムは定数時間アルゴリズムとは呼べないよね?"
Shigeki Ohtsuさんのツイート: "Intelはこれを脆弱性と認めてないんだよね。Intel IPPライブラリはconstant timeだからそれを使えと。 / “TLBleed : Trasnlation Leak-aside Buffer の論文を読む - …” https://t.co/LclZUq4PNA"
TLBleed : Trasnlation Leak-aside Buffer の論文を読む - FPGA開発日記
TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる
misc/tlbleed.md at master · herumi/misc

PortSmash

20181103
PortSmash attack punches hole in Intel's Hyper-Thread CPUs, leaves with crypto keys • The Register
IntelのCPUで新たな脆弱性「Portsmash」が発見される、ハイパースレッディングに関する2つ目の脆弱性 - GIGAZINE
Hyper-Threading搭載のIntel CPUに新たな脆弱性 ~“PortSmash”が明らかに - 窓の杜
Hyper-Threading有効時にスレッド上の情報が盗まれる「PortSmash」 ~Intel製品のほかRyzenにも影響か - PC Watch
Hiromichi Itouさんのツイート: "締切に追われているけど、気分転換で、PortSmashのPoCコードを動かしてみた。ちゃんと動いてタイミンググラフも取得できた。タイミング情報から秘密鍵を探すのは、過去の手法と同じなのかなー https://t.co/K8Kj96Nqe4"
bbbrumley/portsmash
まさみさんは語りたいさんのツイート: "Portsmash、解決する方法としてはsensitive sectionを開始したらsiblingの他のスレッドの動作を一定時間停止するシステムコールかなにかを使うしか無いのでは(SMT_lockみたいな)。それか運用で逃げる。"
CVE-2018-5407 - Red Hat Customer Portal
まさみさんは語りたいさんのツイート: "今年はIntelにとっては厄年だなあ。PortsmashのコードがWebブラウザから実行できたら、影響は個人レベルに及ぶので、もうHTは完全に廃れていくのではないか。"
PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記
「Linux 4.20」性能問題、原因はSpectre v2対策STIBPの有効化--トーバルズ氏が変更を要求 - ZDNet Japan
More Information on PortSmash

IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
Major Hyper-Threading Flaw Destabilizes Intel Kaby Lake, Skylake CPUs - ExtremeTech
ハイパースレッディングに深刻な脆弱性が報告される | スラド
OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化 | マイナビニュース
Hiromichi Itouさんのツイート: "OpenBSDがIntel Hyper-threadingをデフォルトで無効にするそうだ。脆弱性が見つかった訳ではなく予防的に行う措置の模様 https://t.co/qXlwlB0lXg"
CVS: cvs.openbsd.org: src
Makoto Kato ︎︎さんのツイート: "HyperThreadの実行効率の向上って、初期実装時(Pentium 4)は10%から20%くらいなので、今のCPUでHyperThreadが無効になっても、クロックを10%上げられれば、まぁ実行時間は変わらなくなるのではとは思うだけど"
一つのCPUで複数のスレッドを実行する技術「SMT」が合理的でなくなってきているとの指摘 - GIGAZINE
More information on SMoTherSpectre

デバッグ

本の虫: Intelの古いマニュアルを誤読したために生じた脆弱性
WindowsやmacOSなど主要OSに共通する深刻な脆弱性が発覚、原因はOSベンダーによるCPUアーキテクチャの仕様解釈ミスか - GIGAZINE
Ryou Ezoeさんのツイート: "信じられん。OpenBSDではユーザースペースにハードウェアブレイクポイントの利用を許可していないため今回のIntelのスタックレジスタ書き換え時の割り込み遅延の脆弱性の影響は受けない。 https://t.co/edGk31XuQg"
'Re: CVE-2018-8897' - MARC
本の虫: OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避
日記 (2018 年 5 月下旬)
Shiro Kawaiさんのツイート: "#tcfm 第20回。ハードウェアブレークポイントって、メモリアクセスを捕まえたい時は有用と思うけど、実行を捕まえるのにソフトウェアより有利な点て何があるんだろう?(デバッグレジスタ直接使ったこと無い人。) 既にROMに焼かれてるプログラムを調べなきゃならない時とか? https://t.co/Oc3IpHPSCE"
Miura Hidekiさんのツイート: "H/W開発とか初期のファームウエアを開発するときはデバッガの実装が簡単になるので嬉しそうです… "
Shiro Kawaiさんのツイート: "textエリアの書き換えが面倒な実機上では確かに便利だと思います。普通の汎用マシンのデバッガでもそれ使ってたのはなんでかなあと。最近はOSも共通だし区別しない方が普通なんでしょうか。… "
Miura Hidekiさんのツイート: "すみません、頓珍漢なリプライをしてしまったようです。gdbにあるH/WブレークポイントはやはりROMのデバッグ用って書いてあります https://t.co/VdTNhIBGrw… "
Debugging with GDB: 5.1.1 ブレイクポイントの設定
Shiro Kawaiさんのツイート: "pop ssの脆弱性の話は、別に普通にデバッガが利用するからじゃなくて、アーキテクチャによって有用だからと用意されたシステムコールが予想外に利用されたと理解すればいいんでしょうかね。… "
Shiro Kawaiさんのツイート: "アーキテクチャによって、というより、使われるシステムによって、ですね。… "
Miura Hidekiさんのツイート: "ちょっと調べてみましたらMSでdllのデバッグに便利という記述がありました。確かにこれはH/Wじゃないと無理だと思います https://t.co/13x27QnxzO… "
ブレークポイント
Shiro Kawaiさんのツイート: "「読み込み時に通知を送る~」のくだりがわからないんですが、dllを実際にマップする以前に(アドレスが判明した時点で)BPを仕掛けたいというシナリオがあるんでしょうか。… "
Miura Hidekiさんのツイート: "dll中で落ちるソフトウエアのデバッグで、ソフトウエアの実行前にブレークポイントを仕掛けておけるのではないかと思います。ソフトウエアブレークポイントでは命令列を書き変えてもdllロードで無効になってしまいます。… "
Miura Hidekiさんのツイート: "dll中のどこかにブレークポイントを仕掛けたいシナリオです… "
Shiro Kawaiさんのツイート: "あ、なるほど。gdbだとmain実行前にdso内の関数にBPしかけようとするとpending on future shared library loadになりますね。… "
Miura Hidekiさんのツイート: "確かにgdbだとそんなメッセージが出ますね。Cygwinだと確かうまく動かないので無視していましたけど…… "

I/O bitmap

高梨陣平さんのツイート: "これはカーネルハッカーで386以来のx86の機構に詳しい方なら爆笑できそう。30年物のセキュリティホールがOpenBSDに発見された。切っ掛けは32bit版のOSのみがクラッシュする問題。調べる内に一般ユーザがI/Oポートを読み書き可能なセキュリティホールが発見された。ここから怒涛の懇切丁寧な説明が続く… https://t.co/KhB6rWVVwH"
Hacker Newsさんのツイート: "The History of a Security Hole: https://t.co/EDUYnJ7sW3 Comments: https://t.co/3djgXHwKPD"
The History of a Security Hole | OS/2 Museum
The History of a Security Hole | Hacker News
Hideki EIRAKUさんのツイート: "I/O bitmap はそもそもアクセスサイズ分取らなきゃいけない仕様が変だよね。CF8h の 32bit アクセス (PCI configuration) を許したかったら CF9h のバイトアクセス (システムリセットなど) も許さないといけないなんて。"

未定義命令

x86 アーキテクチャに潜む脆弱性、未定義命令実行後の挙動 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
Black Hat USA 2017 | Briefings
まさみさんは語りたいさんのツイート: "x86の未定義命令(UD以外の定義されていない命令)がたくさんあるのは、opcode mapを書いたことがある人なら誰でも知ってる公然の秘密(笑)。 arch/x86/lib/x86-opcode-map.txt に詳しい。(そして最近でも新しいのが見つかる)"

TXT

インテルTXTによるトラステッド・コンピューティング:第1回 インテルTXTが実現する真のセキュアなプラットフォーム - ITmedia エンタープライズ
仮想化の技術&製品トレンド - 仮想環境のセキュリティを高めるインテルTXT:ITpro
invisiblethingslab.com/resources/2011/Attacking_Intel_TXT_via_SINIT_hijacking.pdf
Intel TXT and vSphere
Intel、vProをアップデート | スラド
Windows adds TXT-supported MLE to boot security | Firmware Security

ME

Firmware Security

Finnbarr on state of Intel ME hacking tools | Firmware Security
PTSecurity on Intel ME | Firmware Security
coreboot and Intel ME | Firmware Security
More on INTEL_SA-00086 (Intel ME update) | Firmware Security
a bit more on INTEL-SA-00068 (Intel ME) | Firmware Security
more on Intel-SA-00068 (Intel ME) | Firmware Security
System76 to disable Intel ME (Dell as well) | Firmware Security
Intel ME coverage from BHEU | Firmware Security
BHEU slides on Intel ME vuln uploaded | Firmware Security
Tanenbaum: more comments regarding Intel ME | Firmware Security
more on Intel-SA-00068 (Intel ME) vuln | Firmware Security
AMI response to Intel-SA-0068 (Intel ME vuln) | Firmware Security
Matthew’s 2nd blog on Intel ME vuln | Firmware Security
Pepijn on Apple use of Intel ME | Firmware Security
more on Intel-SA-00068 (Intel ME) | Firmware Security
Intel ME research paper | Firmware Security
Intel ME at CCC | Firmware Security
ME Analyzer 1.42.0 released | Firmware Security
PTSecurity: how to run code in Intel ME | Firmware Security
Intel-SA-00068 updated (Intel ME) | Firmware Security

mjg59

mjg59 | The Intel ME vulnerabilities are a big deal for some people, harmless for most
mjg59 | Potential impact of the Intel ME vulnerability

Skylake・Kaby Lake・Coffee Lake

Download Intel-SA-00086 Detection Tool
Intel製CPUに特権の昇格の脆弱性、公式チェックツールがWindows/Linux向けに公開 - 窓の杜
Intelプロセッサの重大な脆弱性(SA-00086)に対処してみた話 – 内向型人間の知恵ブログ
インテル®マネジメント・エンジンの重要なファームウェア・アップデート (intel-sa-00086)
第6〜8世代Coreプロセッサなどに脆弱性、Intelがチェックツールを公開 | スラド セキュリティ
Intel,第6~第8世代Coreプロセッサ搭載システムに関する重要な脆弱性情報を公開。脆弱性の有無を調べる検出ツールもリリース - 4Gamer.net
Intel Management Engineなどに8個の脆弱性が発見 ~第6世代Core以降が影響、ThinkPadなどがすでに対策開始 - PC Watch
Intel、第6~第8世代Coreなどの脆弱性情報公開、対策はファームウエア更新 | マイナビニュース
OS停止時でも攻撃可能?Intel マネジメント・エンジンの脆弱性への対策 | トレンドマイクロ セキュリティブログ
インテルの「Management Engine」などに複数の脆弱性--ファームウェアを修正 - CNET Japan

MINIX

インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
Google、ユーザーの知らないところで動くUEFIの脆弱性に警鐘 ~オープンソース化で回避を提唱 - PC Watch
Hiromichi Itouさんのツイート: "Intel Management EngineでMINIXが動くようになったのは、Intel ME 11を搭載しているIntel 100 Series Chipsets(2015年)以降なので、世界で一番の稼動OSではないと思われる。(とマジレス)"
Minixを使用していると言われているIntel ME、BSDライセンス違反の疑い | スラド

企業向けのみに存在する脆弱性

Download INTEL-SA-00075 Detection and Mitigation Tool
Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
IntelのCPUのセキュリティ問題について電子フロンティア財団が指摘 - GIGAZINE

回避困難な脆弱性?

Intel x86プロセッサに含まれている遠隔管理システムに危険性? | スラド セキュリティ
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor…
Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
Intel製CPUの「修正済み」脆弱性が実は修正不可能であったことが判明、特権によるコード実行やDRMの回避などが可能 - GIGAZINE
インテルのCSMEバグは当初の予想より深刻の可能性--セキュリティ専門家が指摘 - ZDNet Japan
INTEL-SA-00213

無効化

Intel ME 11を無効化する方法が公開される - GIGAZINE
Intel MEの脆弱性を発見し保護システムを無効化した方法をセキュリティ研究者がBlack Hat Europe 2017で発表すると告知 - GIGAZINE
NSAが開発した隠し機能でIntel MEを無効化する動きがPCメーカーに広がる - PC Watch

platomav/MEAnalyzer: Intel Engine Firmware Analysis Tool
【やじうまPC Watch】米国ではじめてATM遠隔攻撃が確認 ~Intel MEの脆弱性が利用される可能性も - PC Watch
Intel® Product Security Center
デュアルソケット・ザ・ワールド ME-HECI ME Subsystem とは何か?
Introduction to the Intel Management Engine OS (Part 1) | Peter Bosch’s website
Introduction to the Intel Management Engine OS (Part 2) | Peter Bosch’s website
高梨陣平さんはTwitterを使っています 「Google Working To Remove MINIX-Based ME From Intel Platforms https://t.co/lajfCP20m6 Intelがほぼ全てのCPUの中でMinixを動かしているのは有名になったがGoogleがそれを削除させる方向で動いているとの記事。IntelのMEはclosedなMinixだがHWに完全なアクセスが可能で攻撃の入口として最適との話」 / Twitter
Google Working To Remove MINIX-Based ME From Intel Platforms | Tom's Hardware

AMT

mjg59/mei-amt-check: Check whether AMT is enabled and provisioned under Linux
Intel AMT Checker for Linux | Hacker News
インテルが開発したリモートコントロール技術 - 第三の謎 インテル® アクティブ・マネジメント・テクノロジーとは?のレビュー | レビューメディア「ジグソー」
mjg59 | Intel AMT on wireless networks
mjg59 | Intel's remote AMT vulnerablity
Embedi on Intel AMT vulnerability | Firmware Security
Intel AMT Upgradable to Vulnerable Firmware | Firmware Security
new Windows UEFI security protections deciphered | Firmware Security
Intel AMT developer documentation updated | Firmware Security
NVD - CVE-2017-5698
Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
インテルの「AMT」や「ISM」に脆弱性--緩和策など公開 - ZDNet Japan
リモート管理機能「Intel AMT」、リモートから任意のコードが実行可能な権限昇格の脆弱性 -INTERNET Watch
笠原一輝のユビキタス情報局
シリアルオーバー LAN(SOL) ホワイトペーパーインテル®サーバーボードシステム
Intel vPro テクノロジを使用するコンピューターには、Windows 7 のデバイス マネージャーで認識されないデバイスが搭載されていることがある
AMTを利用した全盲ユーザのBIOS操作について(DQ45CB編)
Intel AMT (5)PC: リモートから情報取得、遠隔操作する方法(Intel AMT 10編)
Intel MeshCommander (AMT tool): now available for Mac and Linux (not just Windows) | Firmware Security
F-Secure: new Intel AMT security issue | Firmware Security
パスワード「admin」で簡単にIntel AMTに入れ、リモートアクセスできる問題が発覚 - PC Watch
Lenovo: Intel AMT MEBx Access Control Bypass | Firmware Security
Intel製品に複数の脆弱性、修正版が一斉公開 ~最大深刻度は“CRITICAL” - 窓の杜
20180721

DCI

Intelの新型CPUにUSBポート経由でシステムのフルコントロールが奪われるデバッグの仕組みがあることが判明 - GIGAZINE
そうだ、Intel DCIをしよう! | J’s Lab
そうだ、Intel DCIをしよう! | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab
Intel® System Studio | Intel® Software
RU.EXE + RU.EFI
Enable DCI debugging on Gigabyte-BKi5HA-7200
blog/section.txt at master · JP3BGY/blog
USB View - Google 検索
Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually - Windows drivers | Microsoft Docs
Publications/2018/DEFCON26 at master · eclypsium/Publications

SMM

1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
1997年から2010年までのインテル製CPUに脆弱性、ルートキット埋め込み可能で対策はほとんどなし - Engadget Japanese
https://www.blackhat.com/docs/us-15/materials/us-15-Domas-The-Memory-Sinkhole-Unleashing-An-x86-Design-Flaw-Allowing-Universal-Privilege-Escalation-wp.pdf
My aimful life: Building reliable SMM backdoor for UEFI based platforms
Cr4sh/SmmBackdoor: System Management Mode backdoor for UEFI
My aimful life: February 2016
1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
Embedi SMM_USBRT_POC: CVE-2017-5721 UsbRt SMM EoP | Firmware Security
Intel Sytem Debugger on debugging UEFI and SMM | Firmware Security
SMM rootkits: a new breed of malware | Firmware Security
mjg59 | Creating hardware where no hardware exists

Intelのプロセッサの脆弱性を利用したNetCAT攻撃はSSHセッションの入力内容や通信内容の窃取が可能 - GIGAZINE
Intelのプロセッサ内蔵GPUに脆弱性、ドライバ/カーネル更新を推奨 - PC Watch
INTEL-SA-00314
Side Channel Methods – Analysis, News, and Updates
Software Guidance for Security Advisories
Host Firmware Speculative Execution Side Channel Mitigation
Refined Speculative Execution Terminology

MS

その他

Windows 10のシステム呼び出しとカーネル内部セキュリティー対策
Windows 10 1703/1709、セキュリティー、CPU問題
Windows 8 Enterprise Flexible Workstyle Full Deck RP (To Customer)
Windows10とコルタナのデフォルト設定の脆弱性を報告
ランサムウェア対策が「Windows 10 Fall Creators Update」に追加! さっそくトライ - やじうまの杜 - 窓の杜
なかのん DAYS''さんのツイート: "Windowsはいい加減、管理者権限が必要なexe以外を、管理者以外が書き込めるフォルダからは実行できないようにするオプションを提供して欲しい。"
「C:\Temp」「C:\Intel」フォルダーは不正ツールが設置されやすい? 標的型攻撃に類似点~J-CRAT報告 - INTERNET Watch
「Windows 10」に新たなセキュリティ機能「InPrivate Desktop」が追加か - CNET Japan
Microsoft、「Windows Defender」をサンドボックスで実行する機能を追加 - 窓の杜
未認証のワクチンですけど試してみませんか?――Windows Defenderのサンドボックス化の話 (1/2):山市良のうぃんどうず日記(140) - @IT
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~Arbitrary Code Guard~ « 他人の空似
Heap spraying攻撃の手順と原理解説 – 他人の空似
YurikaさんはTwitterを使っています: 「数々のMS製品の0Dayを発表しまくってましたSandbox Escaperさんが、MSに入る前に(NDAにサインする前に)その手法を世に公開しまくるということでブログが公開されてますよ。https://t.co/ZFeRteMcHp」 / Twitter
Place where polar bears dwell: Chasing polar bears: part one
Windows 10の脆弱性を諜報機関の「NSA」が報告したことを専門家が重視する理由とは? - GIGAZINE
楠 正憲さんはTwitterを使っています: 「だいぶヤバい脆弱性では?→ ECDSA署名と曲線領域パラメーターの制御を考えると、元の署名秘密鍵を知らなくても、元の公開鍵と一致する2番目の秘密鍵を作成するのは簡単 / “From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker…” https://t.co/huOVOpL8ww」 / Twitter
From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker News
Shigeki OhtsuさんはTwitterを使っています: 「WindowsのECDSAの脆弱性 CVE-2020-0601 の証明ってこんな感じでいいんですかね? 間違いあればどなたかご指摘ください。 https://t.co/hNkOqt7lyw」 / Twitter
Windows 8やWindows 10でウェブサイトのライブタイル提供に使われていたサブドメインが放棄された状態に - ZDNet Japan
ファイルレス攻撃を阻止するエクスプロイト防止機能の概要
the-backdoor-factory – シェルコード付きPE、ELF、Mach-Oバイナリパッチ(未サポート) – GitHubじゃ!Pythonじゃ!

Vulnerability & Exploit Database

Vulnerability & Exploit Database | Rapid7
Microsoft Windows - Assembly Execution (MS12-005)
Exploiting a 64-bit buffer overflow – bytes > bombs
Windows x64 Shellcode | McDermott Cybersecurity
TeamViewer 11 < 13 (Windows 10 x86) - Inline Hooking / Direct Memory Modification Permission Change
Exploit Development-Everything You Need to Know « Null Byte :: WonderHowTo
Pentest Tips and Tricks – EK
gynvael/asmloader: Simplified Assembly Loader - a small tool to run (headerless) machine code.
Windows x64 and x86 kernel shellcode for eternalblue exploit
m4ll0k/Awesome-Hacking-Tools: Awesome Hacking Tools
0xAX/asm: Learning assembly for linux-x64
GDSSecurity/Windows-Exploit-Suggester: This tool compares a targets patch levels against the Microsoft vulnerability database in order to detect potential missing patches on the target. It also notifies the user if there are public exploits and Metasploit modules available for the missing bulletins.
Infosec_Reference/Exploit Development.md at master · rmusser01/Infosec_Reference

TechNet

「Emotet」の大規模感染を阻止した人工知能のしくみ – 日本のセキュリティチーム
挙動監視と機械学習で大規模な「Dofoil」によるコイン マイニング攻撃を阻止 – 日本のセキュリティチーム
Windows Administration: Inside the Windows Vista Kernel: Part 3

Windows Blog

Windows 10 のエンドツーエンドのセキュリティ機能を紹介 - Windows Blog for JapanWindows Blog for Japan
次世代型のマルウェア対策機能を提供する Windows Defender ウイルス対策の本当の実力とは? - Windows Blog for JapanWindows Blog for Japan
Windows Defender ウイルス対策が企業で最も採用されている理由 - Windows Blog for JapanWindows Blog for Japan
マイクロソフトのセキュリティ エクスペリエンスを共有 - Windows Blog for JapanWindows Blog for Japan

@IT

Windows 10はEMETに頼らずとも安全?:山市良のうぃんどうず日記(58) - @IT
Windows 10に組み込まれた多層かつ高度なマルウェア対策機能:企業ユーザーに贈るWindows 10への乗り換え案内(10) - @IT
ユーザーアカウント制御(UAC)の奇妙な体験――デスクトップは暗転しない?:その知識、ホントに正しい? Windowsにまつわる都市伝説(101) - @IT
Windows 10の新しい「電卓」と「ビルトインAdministrator」に見る“セキュリティの落とし穴”:山市良のうぃんどうず日記(72) - @IT
本当は怪しくない(?)Windows 10の“不明なアカウント”の正体は……:その知識、ホントに正しい? Windowsにまつわる都市伝説(99) - @IT
システム監査対決! Windowsコマンドライン監査 vs. Sysmon:山市良のうぃんどうず日記(27) - @IT
EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能 (2/3):企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
パスワード時代の終わりはくるのか? Microsoftが新しいセキュリティやAIのサービスを発表:「Microsoft Ignite 2018」で発表された新サービスとは - @IT

サンドボックス

Windows XP/7/8/10のプロセス間親子関係とサンドボックス
AppContainer 導入による Windows 開発への影響 - NyaRuRuが地球にいたころ
整合性レベルに基づく保護モード - NyaRuRuが地球にいたころ
Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeはプロセスのサンドボックス機能も強化されている。なお、拡張機能やFlashはそれぞれ独立したプロセスを割り当てられてサンドボックス化されている。 / “Stre…” https://t.co/KGw32AYYMd"
Windows 10 Creators Updateで強化されるEdgeのサンドボックス機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
Strengthening the Microsoft Edge Sandbox - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
次期Windows 10ではアンチウイルスソフトは保護されたプロセスでの実行が必須に - PC Watch
山市良のえぬなんとかわーるど: 保護されたプロセス(Protected Process)か否かの確認方法
Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
Windows 10プレビューに“サンドボックス”機能。隔離環境でEXEファイルを実行可能に - PC Watch
AppContainerでデスクトップアプリを起動してみた « 他人の空似
AppContainer関連API情報まとめ « 他人の空似
AppContainer関連サンプル紹介 « 他人の空似
PrivateNamespaceを使ったAppContainerとのプロセス間通信 « 他人の空似

権限

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのsymlinkは、パス読み取りに特権が必要だったり、symlink自体のアクセス権も必要、という謎仕様。 前者は開発者モードで解除できるようになったものの、何を懸念してその仕様にしたのか理解不能…junctionと違い、symlinkはユーザの手打ちと等価(=クライアント側再解釈)のはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Edgeでリンク実行を選ぶと AppData\Local\Packages\Microsoft.MicrosoftEdge_xxx¥TempState\Downloads で実行されるが、このフォルダは、管理者昇格のためのShellExecute(verb=runas)がコケる縛りがある様子。 (ファイル移動すればコケないので、副次Streamによる信頼リージョンの話ではなさそう)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コケるフォルダは、Edge配下のTempState, LocalCache, LocalState の3つ。 このフォルダに置くと(Edge非経由)一般権限でもコケるので、VirtualStoreのような何らかの特殊フォルダ登録でもあるのかしらん? ただ、右クリックで初手からの管理権限起動は可能という謎。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これらのフォルダには Low Mandatory Level という整合性レベルがSASLに設定されていた。この場合、ShellExecute(verb=runas) がコケる動作をする様子。 (低整合性レベル=IE等のsandbox動作でアクセス可能なので、この挙動自体は理解できる。一般権限実行でも拒否は厳しめだけど)… https://t.co/LW0BSRLz4u"
Shirouzu Hiroaki(白水啓章)さんのツイート: "低整合性レベルなディレクトリ(EdgeのDownloadフォルダ等)から起動したプロセスは、一般フォルダへの書き込み権限がなくなる+昇格リクエスト(verb=runas)もリジェクトされる。 低整合性レベルから起動された場合、「別フォルダに移動して起動する」ようにユーザに促すしか手がない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「Integrity Level」の訳が「整合性レベル」。 低整合性=矛盾がある、みたいな語感があると思うのだが。 なお、integrity の一般的な訳は「高潔、誠実、清廉、完全な状態、無傷」らしい。"

マルウェア対策ソフトウェア

Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスソフトのヒューリスティックでの誤検出されやすさ経験。 シマンテック >> カスペルスキー > ESET > Windows Defender (シマンテックは何度ホワイトリスト登録しても、次のバージョンで誤検出されるという…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "その後、シマンテックはホワイトリスト申請制度自体を止めてしまったが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーとESETさんは、ホワイトリスト申請用FTPサイトがあって、そこに載せれば自動的に検査される仕組み。 (前者の場合、最初に物理的な契約書を取り交わした後、FTPサイトのアカウントが通知される流れ) ちなみにどちらのFTP転送も、モデム接続なみに遅い(笑)"

MIC

必須整合性コントロール - Wikipedia
Mandatory Integrity Control - Wikipedia
Mandatory Integrity Control (Windows)
What is the Windows Integrity Mechanism?
MIC
Mandatory Integrity Control in Windows 10/8/7
Windows Server:システム管理者の視点 - 正式に認められた「Whoami」コマンド:ITpro
Windowsコラム - 【TechEd】悪意のある攻撃に強くなるWindows Vista:ITpro
【レビュー】ファイルやフォルダーの“整合性レベル”をチェックできるGUIツール「MicEnum」 - 窓の杜
管理者でも削除できないフォルダ・ファイルを作る - イグトランスの頭の中
Windows版FireFox、MICを利用したセキュリティ対策 - Qiita
Windows用インストーラのセキュリティ問題 - Qiita
情報セキュリティ技術動向調査(2009 年下期):IPA 独立行政法人 情報処理推進機構
アプリケーションを管理者に昇格させながらのAllowDrop: DOBON.NETプログラミング掲示板過去ログ
Vistaのセキュリティ対策が抜け穴に――Symantec、2つ目の報告書 - ITmedia NEWS
管理者権限での実行を制限するユーザー・アカウント制御UAC(後編)(3/3) - @IT
漢(オトコ)のコンピュータ道: 新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?

Arbitrary Code Guard

Microsoft Edge での任意のネイティブコード実行の影響の緩和 | Microsoft Edge Japan
Microsoft Edge概要 物江氏
変わるWindows、変わる情シス:第4回 「Windows 10」は情報漏えいをどう防ぐ? (2/2) - ITmedia エンタープライズ
Microsoft Edgeのセキュリティ機能「ACG」の未修正脆弱性、Googleが公表、 - INTERNET Watch
高梨陣平さんのツイート: "GoogleのProject Zeroが再びMicrosoftのEdgeブラウザの脆弱性を修正前に公開。JITの使用するメモリ空間の位置が事前に予測可能なためリモートからの任意コード実行が可能に。GoogleはIntelのSpectreとMeltdownに関しては90日ルールを自ら破っている。… https://t.co/ZGAyZswisg"
1435 - Microsoft Edge: ACG bypass using UnmapViewOfFile - project-zero - Monorail
2018-02-18 セキュリティニュースまとめ: Microsoft Edge にメモリ保護機能 ACG (Arbitrary Code Guard) をバイパス可能な脆弱性 - 拡張頭蓋 | Extended Cranium

HeapEnableTerminationOnCorruption

Rockridgeさんのツイート: "Fx55:Windows版で、chromeプロセスにおいてHeapEnableTerminationOnCorruptionを有効化し、エクスプロイト攻撃に対するセキュリティを強化した。 / “805173 - Consider…” https://t.co/5EIJuBWrzl"
805173 - Consider enabling Windows' HeapEnableTerminationOnCorruption for browser and plugin-container
HeapSetInformation function (Windows)
Direct2D SDK コーディング規則 (Windows)
HeapSetInformation function (Windows)
HEAP_INFORMATION_CLASS enumeration (Windows)
Brief Q&A on the HeapEnableTerminationOnCorruption heap information flag – The Old New Thing
Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
Windows-classic-samples/CustomLayout.cpp at master · Microsoft/Windows-classic-samples
Windows-classic-samples/UiaCleanShutdownHost.cpp at master · Microsoft/Windows-classic-samples

Windows Sandbox

品川 高廣さんのツイート: "こういうのずっと欲しかった。Windows 全体を fork して sandbox しているようなイメージかな。https://t.co/881nADf623"
Windows Sandbox - Microsoft Tech Community - 301849
マイクロソフト、Windows Sandbox発表。デスクトップアプリを分離した環境で安全に実行可能に - Publickey
“使い捨て”のアプリ実験環境「Windows Sandbox」を追加 ~「Windows 10 19H1」Build 18305 - 窓の杜

Windows Information Protection

Microsoft Intune での Windows Information Protection 設定 - | Microsoft Docs
Windows Information Protectionを簡単に使い始める方法 | Always on the clock
2つの情報保護技術、クラウドのAIPとWindows 10のWIP(その3):企業ユーザーに贈るWindows 10への乗り換え案内(13) - @IT
情報を保護するWindows 10の「BitLocker」と「WIP」 (1/2):Windows 10が備えるセキュリティ機能(4) - @IT
第11回 新機能「Windows Information Protection」の登場で、BYODを安心して活用できるように - 中堅・中小企業のためのWindows 10講座:日経 xTECH Active
Dropbox Business と Windows Information Protection – Dropbox
Windows Information Protection - YouTube
Windows Information Protectionのデバイスポリシー
【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [6] OSレベルで個人/企業データを切り分け「Windows Information Protection」|セキュリティ|IT製品の事例・解説記事
Windows Information Protection(WIP) | MobiConnect(モビコネクト)

Windows Defender Advanced Threat Protection

Windows Defender Advanced Threat Protection の機械学習: 未知の侵入アクティビティの検出 – 日本のセキュリティチーム
Creators Updateを控え、大幅強化されるWindows Defender ATP - PC Watch
Windows Defender ATP の新機能でエンドポイントのセキュリティの有効性と堅牢性をさらに強化 - Windows Blog for JapanWindows Blog for Japan
Windows Defender ATP Advanced Hunting の概要 - Windows Blog for JapanWindows Blog for Japan

Windows Defender Application Guard

Windows Defender Application Guard で Microsoft Edge を最もセキュアなブラウザーに – 日本のセキュリティチーム
Microsoft Edge のための Windows Defender Application Guard の紹介 | Microsoft Edge Japan
Microsoft Edge向けのセキュリティ保護機能「Windows Defender Application Guard」 -INTERNET Watch
【マイクロソフト研究所】Windows 10 Creators Updateの企業向け機能 - クラウド Watch
Windows Defender Application Guardで実現するセキュアなブラウジング環境――Windows 10の新しいセキュリティ機能(その2):企業ユーザーに贈るWindows 10への乗り換え案内(15) - @IT
山市良のえぬなんとかわーるど: Windows Defender Application Guard を VM と日本語環境で使う
次期Windows 10“RS4”が更新、“Windows Defender Application Guard”を強化 - 窓の杜
Windows 10のキオスクモードとWDAGの導入がより簡単に、より柔軟に:企業ユーザーに贈るWindows 10への乗り換え案内(39) - @IT

Windows Defender Exploit Guard

Windows Defender Exploit Guard: 攻撃表面を縮小して次世代型マルウェアに対抗する – 日本のセキュリティチーム
EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能:企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT

Windows Defender Application Control

Windows Defender Application Control の紹介 – 日本のセキュリティチーム
山市良のえぬなんとかわーるど: Device Guard = Windows Defender アプリケーション制御?
脅威からPCを守るWindows 10の「Device Guard」と「Edge」:Windows 10が備えるセキュリティ機能(2) - @IT
「Device Guard」はWindows 10 Enterpriseの“限定”機能か、否か?:その知識、ホントに正しい? Windowsにまつわる都市伝説(91) - @IT
【特別企画】Windows 10 November Update 2015のエンタープライズ向け機能 - クラウド Watch
デバイス ガードの概要 (Windows)
デバイス ガード: 進化してきた脅威に対抗、Windows 10 のセキュリティ機能 – 日本のセキュリティチーム
Device Guardで保護されているデバイスでのアプリの実行 (Windows)
Device Guard の署名を使ったコード整合性ポリシーへの署名 (Windows 10) | Microsoft Docs
Windows Defender Application Control (WDAC) (Windows 10) | Microsoft Docs

EMET

エメット(EMET)、していますか?:山市良のうぃんどうず日記(3) - @IT
お手柄、エメット(EMET)さん!:山市良のうぃんどうず日記(5) - @IT
新しいエメット(EMET)さんにご用心!:山市良のうぃんどうず日記(14) - @IT
エメット(EMET)さん、破れたり:山市良のうぃんどうず日記(17) - @IT
さらに新しいエメット(EMET)さんにもご用心!:山市良のうぃんどうず日記(20) - @IT
もっと新しいエメット(EMET 5.2)さん、リ・リリース:山市良のうぃんどうず日記(29) - @IT
現行エメット(EMET)さんはWindows 10非対応、最新版はまだベータ――導入する、しないはあなた次第:山市良のうぃんどうず日記(50) - @IT
EMET サポート終了 – Windows Defender Exploitation Guard へ移行を – 日本のセキュリティチーム
お疲れさま、そしてサヨウナラ、エメット(EMET)さん:山市良のうぃんどうず日記(133) - @IT
山市良のえぬなんとかわーるど: あすたらびすたエメットさん

FFRI

www.ffri.jp/assets/files/monthly_research/MR201207_browser_treat.pdf
www.ffri.jp/assets/files/monthly_research/MR201208_Windows8Security_Overview.pdf
Black Hat 技術報告 前編│セキュリティ・リサーチのFFRI(エフエフアールアイ)
www.ffri.jp/assets/files/monthly_research/MR201209_Windows8_Exploit_Mitigation.pdf
www.ffri.jp/assets/files/monthly_research/MR201210_Window 8_AppContainer_Sandbox.pdf
www.ffri.jp/assets/files/monthly_research/MR201308_Understanding bypassing ASLR by a pointer at a fixed address_JPN.pdf
www.ffri.jp/assets/files/monthly_research/MR201312_History and Current State of Heap Exploit_JPN.pdf
http://www.ffri.jp/assets/files/monthly_research/MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
スライド 1
Monthly Research 「Microsoft Threat Modeling Toolの利用例」│セキュリティ・リサーチのFFRI(エフエフアールアイ)
www.ffri.jp/assets/files/research/research_papers/SystemCall.pdf
windows10_security_ja.pdf
windows10_セキュリティ評価支援報告Phase2

Log.i53

デバッガ検出技術:Debugger Process - Log.i53
Anti-Debug カテゴリーの記事一覧 - Log.i53
Unpack カテゴリーの記事一覧 - Log.i53
Art-of-Unpacking カテゴリーの記事一覧 - Log.i53

Project Zero

Project Zero: Using Binary Diffing to Discover Windows Kernel Memory Disclosure Bugs
Project Zero: Injecting Code into Windows Protected Processes using COM - Part 1
Project Zero: Injecting Code into Windows Protected Processes using COM - Part 2
Project Zero: Windows 10^H^H Symbolic Link Mitigations
Project Zero: Windows‌ ‌Exploitation‌ ‌Tricks:‌ ‌Spoofing‌ ‌Named‌ ‌Pipe‌ ‌Client‌ ‌PID‌
Project Zero: A year of Windows kernel font fuzzing #1: the results
Project Zero: Windows Drivers are True’ly Tricky
Project Zero: One font vulnerability to rule them all #4: Windows 8.1 64-bit sandbox escape exploitation
Project Zero: One font vulnerability to rule them all #3: Windows 8.1 32-bit sandbox escape exploitation
Project Zero: Notes on Windows Uniscribe Fuzzing
Project Zero: A year of Windows kernel font fuzzing #2: the techniques
Project Zero: Windows Exploitation Tricks: Arbitrary Directory Creation to Arbitrary File Read
Project Zero: Windows Exploitation Tricks: Exploiting Arbitrary Object Directory Creation for Local Elevation of Privilege
Project Zero: Windows Sandbox Attack Surface Analysis
Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
Project Zero: Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege
Project Zero: Windows Kernel Logic Bug Class: Access Mode Mismatch in IO Manager
Project Zero: Exploiting a Leaked Thread Handle
Project Zero: Taming the wild copy: Parallel Thread Corruption
Project Zero: Between a Rock and a Hard Link
Project Zero: The Definitive Guide on Win32 to NT Path Conversion
Project Zero: Taking a page from the kernel's book: A TLB issue in mremap()
Project Zero: Detecting Kernel Memory Disclosure – Whitepaper
Project Zero: One font vulnerability to rule them all #1: Introducing the BLEND vulnerability
Project Zero: A Shadow of our Former Self
Project Zero: Exploiting .NET Managed DCOM
Project Zero: Raising the Dead

DKOM

Direct kernel object manipulation - Wikipedia
tfairane/DKOM: Direct Kernel Object Manipulation _EPROCESS
DKOM - おなかすいたWiki!
bh-us-04-butler-jamie 1.ppt
Final_WP_BalanceRiskManagement.pdf
悪魔のツール“ルートキット”最前線 - 第5回 ルートキット実装の2大手口(その2):ITpro

Wikipedia

ユーザーインターフェイス特権の分離 - Wikipedia
ユーザーアカウント制御 - Wikipedia
データ実行防止 - Wikipedia
Kernel Patch Protection - Wikipedia

@shirouzu

偽装

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsだと偽装(impersonate)APIがあり、特権プロセスは(例えばnamed pipe経由で)一般プロセスと通信で、その接続元(権限)に成りすます仕組みがあって、 (例えばユーザモード・プリンタサービス(特権)がPDF生成の際、ユーザ側権限の範囲でファイル作成など) https://t.co/lrlbxFpmB9 https://t.co/UEuGMJTkN2」 / Twitter
Impersonating a Named Pipe Client - Win32 apps | Microsoft Docs
Ryosuke Matsumoto / まつもとりーさんはTwitterを使っています 「新しい研究ネタについて書いた / クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来 https://t.co/sragt1m9vZ」 / Twitter
クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(続)偽装の分散システム版イメージっぽい印象。ただ偽装はNT3.1時代からあるが、サービス系の一部で使われているだけの地味な存在…TCP/IP&amp;分散システム拡張だと違ってくるのかよくわからない。 (コンテナ云々はまあそうなんだろうけど、プロセスから見たシームレス度みたいな部分も大事そう)」 / Twitter
🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu webサーバーでも管理プロセスだけ特権ポート開いて起動したら、権限降格して稼働するみたいなの有りましたね… suexecでしたか。」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのグローバルフック、64bit環境+64bitDLLで実行すると、32bitプロセスでは、SetWindowsHookExを発行したプロセス内のコールバックで実行される。 なので、32bitプロセス内へのDLL注入を前提にしたコードの場合は、別途、32bit版DLL+32bitフック実行が必要となる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、SetWindowsHookExとかCreateRemoteThread等、能動的な他プロセス侵入の枠組みを公式に用意とは豪快だなぁ、といつも思う。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、署名を入れてもProgram Files下に入れても、EdgeにSetWindowsHookExが効かないな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Injection自体は出来るようになっていた。(要署名、manifest、ProgramFiles) UWPとWin32Appとの通信をどうするかという話に。 https://t.co/prPu53VXxK"
App-to-app communication - Windows UWP applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "整合性レベルは6種類。 (なお、AppContainerは独立した整合性レベルではなく、Lowに含まれる、という話) Windows Internals 7th から。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そもそも、AppContainerの開発コード名は「LowBox」だったという話。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "PSECURITY_DESCRIPTORは、SECURITY_DESCRIPTOR * と思いきや void * なので、それをメンバに持つ SECURITY_ATTRIBUTES.lpSecurityDescriptor への代入には型チェックが働かない。(そのため1時間無駄にしてしまった)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPとデスクトッププロセス間でmutexやmmapを共有できることを確認できた。 ただしかなり面倒。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPはアプリ毎にSIDを持つが、それはUWPパッケージ名をSHA-2ハッシュにしたものがベースらしい。へぇ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPをWin32でフックして確認。 ・カーネルオブジェクト(mutex等)の名前空間は、UWPアプリ毎のサブ名前空間に変換。 (chroot的イメージ) ・Win32からはUWP名前空間はサブ空間に過ぎないが、普通アクセス権が無い。  しかし、プライベート名前空間を作ると(+要権限設定)、両者から参照できる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) ・UWPはIE保護モードと同じ低整合性で動作。  (多くのアクセス権限が無い) ・UWPマニフェストに応じて、一部API/アクセス権の有効/無効を切り替え。  (当然だが、フック側から生API発行しても無効) まさに AppContainer で動作、という印象。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) Windows Internals 7版での、UWP と Win32アプリの比較表はこんな感じ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWP、たしかに(基本的にはライトなコンテナで)安全度が高いのはわかった。 マニフェストで許可された範囲以外では抜け穴は少なそう。 (ただ、例えばエディタだとマニフェストでの許可範囲自体が広い類は大丈夫かな。あとアプリ間は(名前分離はあるが)若干壁が弱い感じも)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用に、IME ON状態をカーソルの緑色の丸で表示する「IME Cursor」という Win10用ソフトを作ったので、ご興味のある方はどうぞ。 (Program Files配下に置けば、アプリや管理者動作のソフトでも動きます) https://t.co/pHtbIkeDZ1"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、Program Files に置いた署名付きソフトは、UAC下で起動しても(昇格不要で)特権プロセスにフック可能、というのは中々豪快な仕様。 (同様に、UWPアプリにもフック可能になるが、こちらはまだわかる)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用ソフトながら、「もし使いたい人が居ればどうぞ」という位置づけです。 (今のところ、これ以上、大きな改良はしないと思います)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "下記の2つを満たせば、ストアアプリにもhookできます。 ・マニフェストで uiAccess=true ・Program Files配下にコード署名付きのバイナリを置く ただ、ストアアプリはsandbox動作なので、アプリ外にデータを吐き出す方が苦労します(笑)… https://t.co/xxZNrCGopA"
uNagiさんのツイート: "そういえば、キーリマッパーの「のどか」が、ストアアプリの IME 状態が取れずに難儀していて、今もできなかったと思うんだけど、解決方法はあるんだなあ。… "
窓の杜さんのツイート: "IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開/「FastCopy」「IP Messenger」の作者が開発 https://t.co/d2L6tMazcc… "
IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開 - 窓の杜

@t_toyota

Takashi ToyotaさんはTwitterを使っています 「米Microsoft社はAI(とアルゴリズム)を前面に出している。アプリの「振る舞い」をモニターするにはデータが必要だ。どのデータだ?あるカーネル内部のデータを利用すると、「異様な動き」を効率良く検出できる。これは事実だ。驚いた! https://t.co/7JtMmmc5Ck」 / Twitter
Windowsセキュリティーメカニズム
Windows XP/7/8/10のセッションとプロセス
Windowsシステム分析(3/4)
Takashi ToyotaさんはTwitterを使っています 「何をどのようにモニターしているのか?モニター済みデータにはある固定値が加算されることがある。その固定値を減算すれば、元のデータに辿り着ける。」 / Twitter

Windows 10 のセキュリティ機能を使用して脅威を軽減する (Windows 10) | Microsoft Docs
SetProcessMitigationPolicy function (Windows)
AppLocker (Windows 10) | Microsoft Docs
セキュリティエンジニア向けツール(Windows編) - Qiita

カーネル

カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
カーネル空間からのセキュリティ - SSSSLIDE
カーネルエクスプロイトによるシステム権限奪取 // Speaker Deck
カーネル空間からのセキュリティ - Speaker Deck
品川 高廣さんはTwitterを使っています: 「Linux カーネルは過去7年で基本性能がどんどん遅くなっているらしい。select() は2年前と比べて最大100%の性能低下。要因はセキュリティ強化、新機能、設定ミス。今年の SOSP で一番 OS っぽい話。https://t.co/zZjuALAkS6」 / Twitter
An analysis of performance evolution of Linux's core operations
品川 高廣さんはTwitterを使っています: 「セキュリティ対策による性能低下は、Meltdown 対策の KPTI で recv() が最大63%、Spectre v2 対策の Retpoline でpoll() が最大89%、SLAB freelist dandomization で epoll() が最大41%、usercopy の強化で select() が最大18%。」 / Twitter
品川 高廣さんはTwitterを使っています: 「新機能による性能低下は、fault around(page fault 発生時に周辺ページもついでにマップする)で page fault が最大54%、cgroup で munmap が最大81%、transparent huge table デフォルト無効化で read() が最大83%、userspace page fault handling でfork()が4%。」 / Twitter
品川 高廣さんはTwitterを使っています: 「設定ミスによる性能低下は、forced context tracking(reduced scheduling-clock ticks 開発のためのデバック機能)無効化し忘れで最大100%、TLB layout change で munmap() が最大50%。CPU idle power-state support はHaswell上の select() で31%の性能向上があるが、LTS に backport されていない。」 / Twitter
品川 高廣さんはTwitterを使っています: 「上記の11個の要因中8つはカーネルの reconfiguration で、残り3つは簡単なパッチで回避可能。その結果、Redis, Apache, Nginx benchmark の性能がそれぞれ 56%, 33%, 34% まで改善した。」 / Twitter
品川 高廣さんはTwitterを使っています: 「パッチ1: Spectre 対策の retpoline は indirect jump を予測不能にするので、indirect jump をよく使う select や poll が著しく性能低下する。対策は、セキュリティに問題のない if文+ direct jump への置き換え。」 / Twitter
品川 高廣さんはTwitterを使っています: 「パッチ2: KPTI は TLB flush のコストが重い。PCID を使って最適化可能だが、それでも切り替えに 400-500 サイクルはかかる。PCID は CR3 に格納されており、CR3 の書き込み自体 200 サイクルかかる。」 / Twitter
Linux Kernel CVE-2019-9857 の PoC を書いて検証・観察した - hibomaの日記
Linux Kernel CVE-2018-5390 SegmentSmack の PoC を書いて分析・検証した - hibomaの日記
Linux Kernel CVE-2017-18017 の Poc を書いて検証した - hibomaの日記
Linux Kernel CVE-2018-12232 の Poc を書いて検証・観察した - hibomaの日記
Linux Kernel CVE-2018-6554 の PoC を書いて検証・観察した - hibomaの日記
Linux Rootkit Internalsという題でLTをしてきた - 脱力系日記
2019年11月26日 Linux 5.4がリリース,カーネルロックダウン,exFATサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
「Linuxカーネル5.4」公開、exFATサポートやハードウェアサポートの改善などが特徴 | OSDN Magazine
Linuxカーネルのロックダウン機構を試してみる - Qiita
DECAF meets The Sleuth Kit(TSK) - Speaker Deck

サイドチャネル攻撃

サイドチャネル攻撃 - Wikipedia
サイドチャネル攻撃(side-channel attack) | IoT
1011…L†[…‘†[…h
サイドチャネル攻撃に対する安全性評価の研究動向とEMVカード固有の留意点
サイドチャネル攻撃への耐性を備えた超低消費電力プロセッサ - 日本シノプシスホームページ - Synopsys
科学10月独立論文_崎山ほか.indd
dwm009901050.pdf
サイドチャネル攻撃とは - Weblio辞書
PCの電位変化から暗号化データを復号する新手のハッキング手法が登場 - GIGAZINE
サイドチャネル攻撃とは - IT用語辞典
平成28年秋期問10 タイミング攻撃の対策|情報処理安全確保支援士.com
SCIS2013_1E2-5.pdf
Work_5.pdf
Microsoft Word - iokibe_ict-innovation-forum_2014.doc
ir.c.chuo-u.ac.jp/repository/search/binary/p/5121/s/2510/
スライド 1
timing attack (タイミング攻撃、タイミングアタック) とは - 木木木
icchyさんはTwitterを使っています: 「今日の #BitVisorSummit8 のスライドです 1: https://t.co/BIMzw9cMsc 2: https://t.co/El2O2qRqVQ」 / Twitter
how to port * to BitVisor (2)
icchyさんはTwitterを使っています: 「今回のポスター(?)です VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策 https://t.co/1GwSOI4lIv @SlideShareさんから」 / Twitter
VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策
icchy/tscjammer
サイドチャネル攻撃に対して脆弱なGPU

脆弱性情報

CVE

CVE - Common Vulnerabilities and Exposures (CVE)
ASCII.jp:脆弱性情報のサイトでよく目にする「CVE」とは?
CVE採番機関CNAの今/ウェブプライバシー保護技術の比較【海外セキュリティ】 - INTERNET Watch
2017年のサイバー攻撃に悪用された脆弱性トップ10/中CNNVDが脆弱性情報の公開日を改ざん?【海外セキュリティ】 - INTERNET Watch
KasperskyがCVE採番機関として認定 ~脆弱性にIDを付与 - 窓の杜
【セキュリティ ニュース】「Bluetooth」に暗号化強度下げる「KNOB攻撃」が判明(1ページ目 / 全2ページ):Security NEXT
Linuxの「sudo」コマンドに脆弱性 - PC Watch
Big Sky :: sudo の特権昇格バグはなぜ起こったのか
GitHubが脆弱性ワークフローを改善してCVE採番機関に

JVN

Japan Vulnerability Notes
JVN iPedia - 脆弱性対策情報データベース
MyJVN API
MyJVN APIを利用した脆弱性情報収集 | Developers.IO
10個のツールで学ぶ、備える!情報セキュリティの脅威と対策:「JVN iPedia」で公開の脆弱性対策情報を取得するWeb APIを活用せよ - ITmedia エンタープライズ
連絡不能開発者一覧

IPA

NOKUBI Takatsugu野首貴嗣さんのツイート: "IPAの脆弱性ハンドリング、始まった初期は割と普通に2週間程度で自分は処理されていたので、だんだんおかしくなっていったんだと思う。まあ日本ではよく見る光景"
ストラトさんのツイート: "「脆弱性を見つけたらまずIPAに通報すべき」とかいう脳内お花畑が一定数いる。彼らはIPAの通報手順がひどく煩雑で時代遅れで役人根性丸出しなクソっぷりであることを知っているのだろうか? もう通報前にグッタリするよこれ。 https://t.co/sXtzDH4tFp https://t.co/mOW0NHyD5K"
AoiMoeさんのツイート: "そういえば、大昔IPAからお金もらってCodeBlogってのをやってて、そこでXサーバのコードを読んでたのだが、脆弱性見つけたのでIPAに報告したら、それがacceptされたの1年後でしたね"

Qiita

セキュリティ脆弱性情報を最速でチーム共有する方法 - Qiita
脆弱性情報の収集→slack通知→backlog登録を自動化してみた - Qiita
あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita

Twitter

なかのん&マジックさんのツイート: "Mozillaでは、悪用が容易かもしれない場合はQAとかに必要な期間を考慮して(多分)、ギリギリまでツリーへの投入を待たされる。 / Microsoft、Google Chromeのパッチ提供方針を批判 | スラド セキュリティ https://t.co/qPvvKCevbu"
なかのん&マジックさんのツイート: "前提条件が複雑な場合(特定の事をやってるアドオンがインストールされてるとか)や、ユーザに特定の操作を強いる場合は即時投入されるけど。"
ひらナツさん@散文家さんのツイート: "Reactive とProactiveがある。CVEとかを調べたり、ログをとったりAuditしたりするのがReactive。Proactiveな方は強制アクセス制御などをつかって閉じ込める。SELinuxを使うのがいい(Montavista方式か?)#linuxcon"
Fadisさんのツイート: "CVSS v3からAttack Vectorに「攻撃者が物理的にアクセスできる必要がある」タイプの脆弱性が表現できるようになってる。これで「攻撃者が物理的にシステムにアクセスできる場合にハンマーで可用性を損ねる事ができる脆弱性」とかも正しく分類する事ができるな"
suzakiさんのツイート: "この一覧は有用!脆弱性が発見された順に並び、それらが実際に使われたか分かって有益な情報になっています。 Vulnerabilities and Attacks https://t.co/6Anrbzkitc Heartbleed、Shellshockが実際に使われていて、Rowhammer、VENOM、Meltdown、Spectre、Bleichenbacher's CATは使われていない。… https://t.co/HW4D6WtpVn"
hannob/vulns: Named vulnerabilities and their practical impact

オープンソースコンポーネントの積極的管理による大幅な改善の実現をSonatypeが報告
第44回 2018年3月~修正できない脆弱性対応,繰り返される歴史,そして「あたりまえ」を実践すること:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
ほぼ全ての最新ノートPCに脆弱性、コールドブート攻撃で情報盗まれるおそれ - CNET Japan
エフセキュア、スリープ状態のPCの脆弱性に警鐘。盗まれたノートから情報を抜き出される可能性 - PC Watch
Broadcom Wi-Fiの脆弱性「Broadpwn」詳細。ワームの悪夢再び ~Wi-Fiをオンにしているだけで突かれる可能性、Galaxy/Nexus/iPhoneなどが標的に - PC Watch
今度はMarvellのWi-Fiに脆弱性、オンにしているだけで攻撃可能 - PC Watch

ディレクトリトラバーサル - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "「セキュリティ目的のchrootは意味がない」 古い記事だけど知らなかった。 chrootした後、namei が mount point 跨りの ".." を特別扱いするのに似た処理はしてくれないね。 https://t.co/KXuoq7WImB"
仙石浩明の日記: chroot されたディレクトリから脱出してみる
Trusted Execution Environmentの実装とそれを支える技術

オーバーコミット

プラットフォーム特有の覚書
Redisで発生したメモリ不足エラーの調査メモ | ソシャゲの作り方
Linux プログラムのメモリ消費量を測る - Qiita
Memory Overcommit | Siguniang's Blog
IBM Knowledge Center - Solaris でのプロセス・フォークの失敗のために DataStage パラレル・ジョブを開始できない
E.2.7 オーバーコミット
mallocの落とし穴 - 組み込みLinuxでのmemory overcommit - 職業としてのプログラミング
Linuxにおけるメモリ管理機構の利用に関する覚え書き · うさぎ小屋
Bug #8711: 最近NoMemoryErrorが多い - Ruby trunk - Ruby Issue Tracking System

Linux

その他

カーネルプリエンプション - Linuxの備忘録とか・・・(目次へ)
あなたの知らない time(1) の世界 - kuenishi's blog
Kernel memory randomization and trampoline page tables – Medium
Kazuho's Weblog: mmapを使ってファイルベースの巨大なバッファを確保する話
ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
2016年12月21日 スワップパーティションはもういらない ―Ubuntu,Zapusでは"Swapfiles"に:Linux Daily Topics|gihyo.jp … 技術評論社
実行中プログラムのイメージを得る - @tmtms のメモ
Linuxカーネル4.14リリース、x86_64環境でのメモリ上限が拡大される | OSDN Magazine
2017年11月14日 Linux 4.14がリリース,仮想メモリの上限が128PiBに:Linux Daily Topics|gihyo.jp … 技術評論社
The mysterious case of the Linux Page Table Isolation patches | Firmware Security
ASLRとKASLRの概要 - Qiita
【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社
FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
Life with open mind: x86 Linux上で sysenter 命令を使ってシステムコールを呼び出す方法
cgroup v2とgVisor - Speaker Deck
open+fork+exitで無限ループすることがあるという話 - Qiita
kslr linux - Google 検索
2019年10月2日 Linux 5.4-rc1がリリース,議論となった「ロックダウン」機能も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する - hibomaの日記
Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する (2) - hibomaの日記
per cpu data シンボルのアドレス - 睡分不足
/proc/pid/pagemapの話 - 睡分不足
仮想アドレスから物理アドレスを求める - 睡分不足
x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
2020年1月8日 Fedora 32がEarlyOOMをデフォルト実装へ,メモリ不足によるフリーズを回避:Linux Daily Topics|gihyo.jp … 技術評論社
A fork() in the road
A fork() in the road を読んで.md
UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
2020年5月1日 NVIDIA Jetson,GNOME 3.36,EarlyOOM ―Fedora 32が正式リリース:Linux Daily Topics|gihyo.jp … 技術評論社

φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

memory cgroupとpageのLRUめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux4.14.12(x86_64)のPage Global Directoryの設定を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
ページングでメモリを割り当てる処理の動きを確認できるものを作ってみた - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
EPTの設定をbhyveで調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

cgroup

Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward
Linux Kernel: cgroup v1 の制限下で slab_out_of_memory を発生させて観察する - hibomaの日記
第41回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[5]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第42回 Linuxカーネルのケーパビリティ[1]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第43回 Linuxカーネルのケーパビリティ[2]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第44回 Linuxカーネルのケーパビリティ[3]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
2020年4月7日 Linux 5.7の新機能 ―親プロセスとは異なるcgroupへのプロセス生成が可能に:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「Systemd 247からsystemd-oomdが追加されるらしい。systemd-oomdは指定されたcgroups内のプロセスのメモリの使用状況を監視し、システムのメモリが逼迫したらカーネルより先にcgroups内のプロセスを潰す。カーネルのoomkillerがあまりにも公平に何でも潰す問題を解決する https://t.co/OHH5VJmTl7」 / Twitter
systemd-oomd Looks Like It Will Come Together For systemd 247 - Phoronix
第45回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[6]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社

SysRq

汎用kumAGIさんのツイート: "windowsが辛い理由、自分がそもそもLinuxの上で走る物を最小の労力で作りたかったからLinuxに引っ越したわけだから、逆の立場ならWindowsに引っ越したと思う。でも何かプロセスを強制終了したくなった時にAlt+Ctrl+Delですら不可能な事がザラにある一方Linuxはkill -9がまず効くのがいい。"
リベラル.3goさんのツイート: "LinuxでもSysRqが効かないことなんてしょっちゅうでしょ"
実は使いどころがわからないWindowsのキー、1位は「SysRq」 -INTERNET Watch Watch
システムリクエスト - Wikipedia
マジックSysRqキー - Wikipedia
SysRqキー ‐ 通信用語の基礎知識
第5回「 SysRq ノススメ」 | NTTデータ先端技術株式会社
magic SysRq keyについて | Miracle Linux Support
SysRqキー(System Request key)とは - IT用語辞典
マジック SysRq キー
一体何に使うのかわからないキーボードのキートップ10 - GIGAZINE
sysrqキーでlinuxを再起動させたりcrashさせたり - うまいぼうぶろぐ

Stack Guard Page迂回

[重要] Linux kernel、glibc および Apache httpd サーバーの脆弱性対応について | Movable Type ニュース
Stack Guard Page迂回の脆弱性 : アジャイル株式会社
【注意喚起】glibcにStack Guard Page迂回の脆弱性について
【セキュリティ ニュース】Linuxにroot権限を取得される脆弱性「Stack Clash」(1ページ目 / 全1ページ):Security NEXT
複数のパッケージに影響するスタックガードページの回避 - Red Hat Customer Portal

KSM

第8章 KSM
7.3. KSM (Kernel Same-page Merging)
IBM Knowledge Center - Kernel Same-page Merge (KSM) を有効にする
mrwk update: KVMで複数VMを起動してVM間の相互作用を減らしたいときに考えること

Zswap

Zswap - ArchWiki
【Linux】zswap は本当に速いのか - 解き放たれしソフトウェア
本の虫: Zswap: Linuxカーネルに圧縮付き仮想swap機能のパッチが提出される
Linux カーネル 3.11 で性能と効率を強化

Wikipedia

Security-Enhanced Linux - Wikipedia
TOMOYO Linux - Wikipedia
AppArmor - Wikipedia
Linux Security Modules - Wikipedia
grsecurity - Wikipedia
PaX - Wikipedia
Exec Shield - Wikipedia

posix_spawn

Kazuho Okuさんのツイート: "posix_spawn、linuxだとエラー処理がまともにできなくて自分で再実装するハメになるからオススメできない https://t.co/H4uiG1BIXH"
ケケモコソカメニハさんのツイート: "Linuxですとposix_spawnが失敗したかどうかはwaitpidしてみるまでわからないのに対し、BSDが即座にerrnoを返してくれるのはなぜでしょうどちらもvfork/execのはず、と思ったら、volatile変数経由してました https://t.co/shzoLYQ4Ek"
ケケモコソカメニハさんのツイート: "https://t.co/piAAKLKVv1 いやしかしglibcでもパイプを使ってエラーコードを返してますね?手元ですとwaitpidするまでわからないんですが…… https://t.co/FMbT52rAo5 どうやら2017年06月に改善されたらしい"
ケケモコソカメニハさんのツイート: "手元のUbuntuはglibcがまだ2.23ですのでこの変更が取り込まれていないようです"
ケケモコソカメニハさんのツイート: "というわけでglibc2.26以降ですとちゃんとerrno返してくれるようですので、それまでどうするか……"
ケケモコソカメニハさんのツイート: "https://t.co/pEWCQ6Nqb4 これがglibc 2.26から不要になるようです"

Twitter

yoh2さんのツイート: "直接のメモリ確保じゃないけど、メモリ不足により fork() 失敗という現象を踏んだことがある。あれは悩んだけど面白かった。 環境内の半分以上のメモリを確保済のプロセスをfork()しようとするとたとえCoWが有効でもダメ出しくらうという。 https://t.co/Wga3xBQ9Qm"
linux - 大量のメモリを使用するプログラムからコマンドを実行する方法 - スタック・オーバーフロー
Fadisさんのツイート: "x86_64のLinuxのユーザ空間、実行したバイナリは先頭の方に置かれていて、ヒープを猛烈に使わない限りそれ以外の多くの物はユーザ空間のアドレスの後ろの方に連なってるから、ライブラリではなく実行可能バイナリ本体を実行している時、そのスタックの境界はeasy 目grepableであるという知見を得た"
Fadisさんのツイート: "試しにDirty COW(CVE-2016-5195)の対策が入る前のカーネル引っ張ってきてexploit動かしてみたら本当に一般ユーザでrootのファイルの書き換えが出来てウヒョーってなってる… "
Fadisさんのツイート: "書き込み権限の無いファイルをMAP_PRIVATEでmmapして、MADV_DONTNEEDで「しばらく触らないから実メモリから剥がして良い」しながらこの領域に書き込みを行うと、本来変更内容はCoWでメモリに置かれてオリジナルを書き換えないはずが、オリジナルの方に書きにいってしまう不具合らしい"
Fadisさんのツイート: "あ、これずっと昔に修正がカーネルに入っている不具合なんできちんとアップデートしてる各位は何も恐る必要は無いやつでござい。(アップデートしないで放置しているとどういう状態になるか、という話をする資料作るのに引っ張ってきた)"
LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
shinichiro hamajiさんのツイート: "#tcfm linux kernelがenvpより深いスタックにauxvというkey/valueを送ってくれてて、その中のAT_RANDOMの2つ目が任意アドレス書き換えが即IP奪取にならないmitigationとして使われてるというトリビア https://t.co/1DcRYpG7p0 ちなみに1つ目はstack protector https://t.co/Ingenm5bbw"
test/mangled_syms.c at master · shinh/test
Fadisさんのツイート: "CONFIG_MULTIUSER: Linuxカーネルでマルチユーザをサポートするコンフィグ。普通は有効になっていて、切るとあらゆるプロセスはuid0(root)で実行されるようになり、UIDとGIDに関する全てのシステムコールはカーネルから削除されて使用できなくなる… https://t.co/PCcQdwSdcb"
まさみさんは語りたいさんのツイート: "そもそもLinuxでも高性能出すならできるだけアプリには仮想ではないナマのメモリを与えるのが良さげだけど。"
まさみさんは語りたいさんのツイート: "自動検出してくれないかなーという気にもなってる。… "
Kazuo Moriwakaさんのツイート: "systemdは競合するサービスをConflict=で明示的に定義できるからntpd動いてるのにchrony動かそうとすると実際に競合する前に検出して失敗してくれるよ"
まさみさんは語りたいさんのツイート: "それMINCSでもできるよ(ステマ… "
Kazuo Moriwakaさんのツイート: "「linuxはcgroupでリソース制限かけてメモリ+swapの上限とか設定できる」それどうやって使うんだろうと思った人、systemdならサービス毎にcgroup作ってるから設定1行書くだけでできるよ"
Fadisさんのツイート: "主記憶に対してハードディスクが遅くなりすぎて乗ったら負けみたいになってたlinuxのswapが、フラッシュメモリなストレージの目覚ましい性能向上によって実用的になってきて再び改良の対象になっているっぽい"
Fadisさんのツイート: "fork bomb、Linuxならあるプロセスの下に作れる子プロセスの数をcgroupsで絞れるから、そういうものが投げつけられるコーディングのsandboxは絞っておくのがオススメ"
suzakiさんのツイート: "NDSS攻撃2つ目。Linuxカーネル内で初期化せずに使われる変数への攻撃。Syscallを使い、スタックの固定領域にスプレー攻撃を行うDeterministic Stack Sprayingの発表。"
suzakiさんのツイート: "NDSS攻撃3つ目。コード再利用攻撃。Code Pointerを直接ではなく、トランポリンを使うことでコード領域に直接ジャンプしないAddress-Oblivious Code Reuse (AOCR)攻撃。"
Fadisさんのツイート: "Linuxに他所のプロセスのページテーブルの一部をコピーして、任意のアドレスの範囲をゼロコピーで共有できるようにするシステムコール process_vm_mmap を追加しようという提案がなされているが、ワイルド過ぎる機能にいろんな問題が出てきて揉めてる話(リンク先有料記事) https://t.co/ePSbzGAlc2"
DrumatoさんはTwitterを使っています: 「insmodのリンク対象はディスクイメージではなくメモリイメージ,なるほどな. ディスクイメージに対して使用中カーネルのシンボルをリンクしてしまったら, それ以降再配置可能なオブジェクトファイルでなくなってしまう(厳密にはそうでもないんだけど)から, 常に使用中カーネルに追従するようにするのか.」 / Twitter
FadisさんはTwitterを使っています 「systemdに新しいデーモンsystemd-oomdが提案されている。systemd-oomdはFacebookのoomdをsystemdに統合したようなもので、ホストのメモリが不足しているときにカーネルのOOM Killerがプロセスを止める前によりconfigurableな方法でプロセスを止める役割を果たす https://t.co/h5kYgkCd02」 / Twitter
Systemd-OOMD Continues Coming Together For Better Linux Out-Of-Memory Handling - Phoronix
FadisさんはTwitterを使っています 「Linuxのページ割り当てを速くするPG_zeroが提案されている。PG_zeroはページテーブルのフラグで、ページが既に0クリアされている事を表す。Linuxはページ割り当て時にページを0クリアするが、これを暇な時に行っておきPG_zeroを立てる事でページ割り当て時の0クリアを省略する https://t.co/bZSGQGqOcY」 / Twitter
PG_Zero: Faster Page Allocation Proposed For Linux By Zeroing Out Pages Ahead Of Time - Phoronix
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linux 5.8にコンテキストスイッチのたびにL1をフラッシュするオプショナルなセキュリティ機能が入った。将来のためという文言から陰謀論者はすでに脆弱性が存在しているのではないかと噂している。 https://t.co/Fgo7L9zk6H」 / Twitter
Linux Hardware Reviews, Open-Source Benchmarks & Linux Performance - Phoronix
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linuxで小さなファイルを読むのに最適化したreadfile syscallが提案されている。中身はファイルをオープンしてバッファに読んでクローズするだけ。一度にカーネルスペースで行うので効率的だそうだ。いまさら? https://t.co/fwWTPFliKx」 / Twitter
Linux Work Culminating On A "READFILE" Syscall For Reading Small Files Efficiently - Phoronix
FadisさんはTwitterを使っています 「L1 cacheヒットを検知するサイドチャネル攻撃に備えてLinuxにコンテキストスイッチ毎にL1 cacheを消す機能(任意)を実装しようという提案にLinus氏が怒り爆発している。これが有効かは状況に依るが性能に影響を与えるのは明らかで、そんな判断をユーザに委ねるなという事らしい https://t.co/l1AZKG7zR4」 / Twitter
Torvalds Blasts "Beyond Stupid" Flushing L1d On Context Switches - Reverts Code For Now - Phoronix
suzakiさんはTwitterを使っています 「カーネルからプロセスのメモリを覗き見させないsecretmemfdシステムコールの提案は面白いが、暗号化はしないようで仮想化によるMemory Deduplication覗き見などは防げないように読める。 Linux Secret Memory "secretmemfd" System Call Remains Under Review https://t.co/gsW7llFUbk」 / Twitter
FadisさんはTwitterを使っています 「Linuxに新しいシステムコールsecretmemfdが生えるらしい。secretmemfdで作ったfdでmmapするとその領域はsecretになる。secretなメモリはカーネルのdirect mappingから見えなくなり、カーネルを介して他所のプロセスのメモリを覗き見しようとする攻撃が難しくなる。 https://t.co/PyMjQknf2L」 / Twitter
Linux Secret Memory "secretmemfd" System Call Remains Under Review - Phoronix
Shinji KonoさんはTwitterを使っています 「Mojave で12GB配列をPerlで確保すると、11GBは圧縮仮想記憶に入れられてしまう。これを調べる課題にすると良いな。Linux は最近は圧縮仮想記憶持ってるの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Zswap っていうのか。 https://t.co/EetCWPHkHa」 / Twitter
Zswap - Wikipedia
FadisさんはTwitterを使っています 「Linuxに新しいsyscall trusted_forを追加する提案。実行可能バイナリを置かない場所に実行権限付きの物を置けなくする事は攻撃者の選択肢を狭めるが、スクリプト言語の場合読めれば実行できる。これを防ぐためにインタプリタが「実行する為に読むが良いか」を確認する為の物 https://t.co/XaCLGcjgFU」 / Twitter

MS

IT談話館

Windows 8/10とJobオブジェクト(基礎)
Job Objects - Windows applications | Microsoft Docs
Sandbox
Windows 8/10のJobオブジェクト
Windows 7/8/10、セキュリティー、Token、SD
WinDbgとCPU
WinDbgとWindowsセキュリティー(旧)
WinDbgとWindowsセキュリティー
SetProcessMitigationPolicy function (processthreadsapi.h) | Microsoft Docs
UpdateProcThreadAttribute function (processthreadsapi.h) | Microsoft Docs
WinDbgとWindowsカーネルアーキテクチャー
WinDbg、WMI、システムロガー

NyaRuRuが地球にいたころ

必要最小ワーキングセット - NyaRuRuが地球にいたころ
ウィンドウ最小化時のワーキングセット縮小 : Vista 編 - NyaRuRuが地球にいたころ
Windows のヒープ管理 - Firefox3 のメモリ使用量 (2) - NyaRuRuが地球にいたころ
デマンドページング - NyaRuRuが地球にいたころ
プロセス終了時のページイン: 実験 - NyaRuRuが地球にいたころ
アプリケーション終了時の大量のページイン - NyaRuRuが地球にいたころ
ハードページフォールト - NyaRuRuが地球にいたころ
ソフトページフォールト - NyaRuRuが地球にいたころ
FILE_FLAG_SEQUENTIAL_SCAN フラグを使用しなかったため,意図せず「メモリの掃除」をしてしまった事例集 - NyaRuRuが地球にいたころ
十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - NyaRuRuが地球にいたころ
十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - 動画版 - NyaRuRuが地球にいたころ
メモリ搭載量とパフォーマンス - NyaRuRuが地球にいたころ
資料紹介: オペレーティング システムおよび PAE のサポート - NyaRuRuが地球にいたころ
Windows で Large Page は「使える」か? - NyaRuRuが地球にいたころ
ホワイトペーパー: Windows のメモリ管理の進歩 - NyaRuRuが地球にいたころ
仮想メモリ戦略に関する大きな誤解 - NyaRuRuが地球にいたころ
CLR Hosting : 仮想メモリ編 (1) - NyaRuRuが地球にいたころ
UPX 圧縮するとメモリ使用量が増える事例 - NyaRuRuが地球にいたころ
メモリ管理コスト - NyaRuRuが地球にいたころ
Memory Performance Information - MSDN Library - NyaRuRuが地球にいたころ
Swapfile.sys,スケーラビリティ,「多くの場合,最適化は直感に反する」の例 - NyaRuRuが地球にいたころ

Windows OS入門:第3回 プロセスとスレッド (1/2) - @IT
Win32API-プロセスとスレッドの概要
ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
あなたの知らない“Windows 10のメモリ管理”の世界:その知識、ホントに正しい? Windowsにまつわる都市伝説(97) - @IT
メモリを使用する、とは – kekyoの丼

Apple

mach_kernel はドライバ隔離用プロセス? - NyaRuRuが地球にいたころ
なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか? - NyaRuRuが地球にいたころ

本の虫

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
本の虫: fork()は失敗するんだぜ、覚えときな
本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
本の虫: GNU/Linuxにおけるプロセス
本の虫: Shebangという謎な事実上業界標準について
本の虫: DOOM 3 BFGの技術ノート

スライド

第6回 自作OSもくもく会 - Google スライド
第7回 自作OSもくもく会 - Google スライド
7/2 LT - Google スライド
cpu_info // Speaker Deck
TEEとIntel SGX入門 - Speaker Deck

ASCII.jp

ASCII.jp:Go言語で知るプロセス(1)|Goならわかるシステムプログラミング
ASCII.jp:Go言語で知るプロセス(2)|Goならわかるシステムプログラミング
ASCII.jp:Go言語で知るプロセス(3)|Goならわかるシステムプログラミング

Wikipedia

バックグラウンドプロセス - Wikipedia
プロセス制御ブロック - Wikipedia
LFUとは 「LFU方式」 (Least Frequently Used): - IT用語辞典バイナリ
Least frequently used - Wikipedia
ページ置換アルゴリズム - Wikipedia
Page replacement algorithm - Wikipedia
キャッシュアルゴリズム - Wikipedia
Cache replacement policies - Wikipedia
侵入検知システム - Wikipedia
侵入防止システム - Wikipedia
強制アクセス制御 - Wikipedia
任意アクセス制御 - Wikipedia
アクセス制御 - Wikipedia
必須整合性コントロール - Wikipedia
セキュアOS - Wikipedia
アドレス空間配置のランダム化 - Wikipedia
Address space layout randomization - Wikipedia
Return-to-libc攻撃 - Wikipedia
Return-to-libc attack - Wikipedia

Twitter

その他

Rockridgeさんのツイート: "Quantum DOMのコンセプトなどを説明した文書。関連するタブをグループ化(TabGroup)するとともにグループ内の同一オリジンのドキュメントもグループ化(DocGroup)し、スレッドを割り振る基準にするようだ。 https://t.co/itCiGJaysq"
Quantum/DOM - MozillaWiki
七誌さんのツイート: "またBSoDの調査を依頼された。ページファイルに不良セクタがあって、ページアウトできずに落ちていたようだ。原因が分かって良かった。"
渋川よしきさんのツイート: "macOSみたいなプロセスのメモリの圧縮ってLinuxにはないのかな?"
るくすさんのツイート: "Linuxカーネルのヒープを初期化後にRead-onlyにするpmalloc関数をHuaweiの技術者が作ったらしい https://t.co/JXzU6pAi3R"
Huawei Continues Working On Protectable Memory Support For The Linux Kernel - Phoronix
infvhjさんのツイート: "stackjackingってマイナーな手法じゃない?iOSで聞いたことない"
Hideki EIRAKUさんのツイート: "fork(2) の性能差比較用 sh スクリプト: m=..;while n=0;do a="$b";while test "$a" = "$b";do b="`date`";n=`expr $n + 1`;done;test $m&&m=${m%.}||echo $n;done"
AoiMoeさんのツイート: "伝統的にforkは遅いのだ。2BSDはvforkなるad hocなsyscallを作った。forkがそんなに遅くなくなったのはデマンドページングとCoWを組み合わせた4BSDからだが、現代では「ページテーブルのコピーが遅せえよ」という話になり、やっぱり遅い"
СЮУ1228🏓さんのツイート: "4K pageで256TB - 128PBとかもうページサイズ増やしたほうがよくない…? TLB的にも"
Fadisさんのツイート: "メモリをたくさん積みたい人に朗報なんだけど、最近Linuxカーネルにサポートが入ったIntelの5レベルページテーブルを使えば物理アドレス空間が64TiB分しかなくてそれ以上メモリを積めない問題が解消されるよ"
ゆたかさん🐶さんのツイート: "Windows ServerのEnterprise版は割り込みベクタが255までしか取れないため、多数のデバイスが搭載できないけど、Datacenter版なら制限解除されている、というのがあります。 https://t.co/1ZfIGEVSgH"
なかのん&マジックさんのツイート: "ふと疑問なんだけど、new/deleteの不一致でのメモリリークを起こすような現場、循環参照地獄とか無縁なんだろうか。それと、細かくプロセスを分離というか再起動というか、そういうOS頼みなメモリ周りのクリーンナップには頼らないんだろうか。"
hikaliumさんのツイート: "特権ユーザー -> 非特権ユーザ -> capability(やれることを制限) -> cgroups(使えるリソースを制限)-> namespace(見えるリソースを制限・仮想化)-> でもまだAttack surfaceがでかい(権限昇格・ネットワークスタック)->というわけでgVisor #gcpug"
2018年もアロハシャツエンジニアさんのツイート: "kernelによるOOMキラーが発動する前に様々な条件でプロセスを殺すuserspace動作のoom killer daemon。プラグインによる拡張も可能。良さそう。facebookから。 / “Open sourcing o…” https://t.co/F2ypXue7MI"
ロボ太さんのツイート: "あるテストのため、メモリを際限なく食いつぶすプログラムをMacで走らせていたのだが、top -o memで監視してるとあるところで使用メモリの増加が止まる。調べたら、MacはMavericksから圧縮メモリという機能がついており、それが働いていた模様。知らんかった・・・ https://t.co/7yiFxy8HL6"
ロボ太さんのツイート: "Macで開発したコードが「メモリを際限なく食いつぶすコード」になっていることに気づかず、そのままスパコンに投げて速攻でメモリ枯渇起こして死んだんだけど、「あれ?この実行時間で死ぬなら、Macでテストしたときに気がつくはず」と思って調べてみたら、Macにはメモリ圧縮機能があったという……"
Takashi Kawasakiさんのツイート: "スレッドの使い方って、典型的には投げっぱなしで結果だけもらう的な粒度の低い奴 or 粒度の高い奴超並列的な二択で世界の9割ぐらいの作業はこなせる感じだし、それ以外のパターンを闇に葬る or unsafe コンテキストでしか使わせないというのは一定の意味はあると思う。"
品川 高廣さんのツイート: "macOS は syscall() 関数を deprecated にしたけど、将来的に Windows みたいにシステムコール番号をカーネルのバージョンごとに変えたりするんだろうか。"
Nerry さんのツイート: "非常に稀なケースだとは思うけど、ページフォルトが発生してCR2の値を読み取る前に別のページフォルトが発生したら、後の例外から回復したあと先の例外がうまく処理できなくて破綻するよね:;(∩´﹏`∩);:"
Nerry さんのツイート: "意図的にこの状況を再現する事は可能だと思うけど、1回目のページフォルトと2回目のページフォルトが初期の段階で分岐して別々のページでCR2を読み取る必要がある 普通に設計したらページフォルトの処理中にページフォルトは発生しないし、そこで万が一例外が発生したら2回目の例外は回復できない"
Nerry さんのツイート: "他にあり得るとしたらページフォルトが発生して例外ハンドラでCR2を読み取る直前にタイマー割り込みでコンテキストスイッチされて別のスレッド実行中にページフォルトで上書きされた時。これは割り込みゲート使えば起こり得ない。"
ryoさんはTwitterを使っています 「しばらくx86のpmap見てなかったけどpmap_pageにmutexが足されてた。やっぱりpmap_page枚にmutex要るよね。間違ってなかった!」 / Twitter
ryoさんはTwitterを使っています 「となるとやっぱりPMAP_PAGE_FINI()的なマクロが必要と思うんだけどもしかしてx86でもdrmkmsなドライバをdetach/unloadしたらmutex残ったまま?」 / Twitter
ryoさんはTwitterを使っています 「adの人に聞いてみたら、LOCKDEBUGするにはページが多すぎるのでx86ではpmap_pageのmutexにはMUTEX_NODEBUGを付けてて、だからmutex_destroyも要らないんだ、と教えてくれた。なるほど納得。」 / Twitter
mumumuさんはTwitterを使っています 「SpaceJMP: Programming with Multiple Virtual Address Spaces [ASPLOS '16] NVMの台頭などに備えて,従来プロセスと仮想メモリの関係を見なおし,OSが仮想メモリも第一級オブジェクトとして扱うことで,より柔軟なメモリ管理を実現する手法を提案してBarrelfishやDragon-Fly BSDに実装」 / Twitter
mumumuさんはTwitterを使っています 「Direct Inter-Process Communication(dIPC): Repurposing the CODOMs Architecture to Accelerate IPC [EuroSys '17] CODOMというアクセス権限がページテーブルベースではなく命令ポインタの位置により決定される拡張アーキテクチャ上で,異なるプロセスの関数を同期的に呼び出す(IPC)手法を提案」 / Twitter

mmap

SODA Noriyukiさんのツイート: "free()してもカーネルにメモリは返らないんぢゃよみたいな話も昔は確かにあったけど、それはmalloc()が内部的にmmap()を使ってなかった頃の話で、たぶん30年くらい前だと思う。"
SODA Noriyukiさんのツイート: "昔のUNIXにはそもそもmmap()がなかったんぢゃよ...←老害"
MAEKAWA Masahideさんのツイート: "「次は free() をすべきかどうかで争いがあった、とか言うんでしょ? そんなのはプログラム次第ですよ。」… "
OGAWA, Tadashiさんのツイート: "mmap () はシングルストレージ OSである Apollo Aegis (Domain/OS) の優位点 (例えば某地図系ホニャララでの大規模画像データへの対応とか) だったとワカモノは伺っております… https://t.co/cWwJTO07e5"
SODA Noriyukiさんのツイート: "ワカモノ..."
AoiMoe a.k.a. しお兄Pさんのツイート: "あんまり関係ないが、UNIXのmmapは複数のmmapで連続したメモリをマップした後で、一度のunmapで全部ご破算にできるのだが、Win32のVirtualAlloc系では同じことができなくてな"
Shiro Kawaiさんのツイート: "何だかTLにmmapのまめちしきが色々流れてきてためになる。自分あんまり深く使ったことないからネタがないけどそういえばmmapは高速なんだがmunmapが意外に重いというのに引っかかったことがあった気がする。"
Shiro Kawaiさんのツイート: "もう詳細を忘れちゃったけど、数10GBという単位の追記オンリーのデータを複数CPUでread-onlyでmmapするんだけど、データに追加があったら一旦munmapして再map、ってやってた。チューニング時にボトルネックを調べてたらmunmapでべらぼうに時間食ってた(1sのオーダーじゃなかったかな)"
Shiro Kawaiさんのツイート: "Linux限定だったのでmremapにして回避したんじゃなかったかなあ。いつも時間食うんじゃなくて特定の条件の時だったかもしれない。ただマルチCPUでワーカーが動いてるんだけどさすがに一個のワーカーがそんなにブロックするとあちこちつっかえて外から見て妙な動作になっていたんだった。"

ページサイズ

鯉江さんのツイート: "そういえば、なんでページサイズは4KiBなんだっけ?"
SODA Noriyukiさんのツイート: "80386の時代にはそれくらいが手ごろだったってだけでしょう。同じくらいの時期でも8KBのCPUとかありました。… "
鯉江さんのツイート: "64bitにするときにページサイズを大きくしなかったのはなんででしょう? メモリ空間がひろがるけどトランジスタも増えるし微細化で速度も上がるし4Kのままでバランスとれるって判断だったんだろうか?… "
SODA Noriyukiさんのツイート: "よく分かりませんが、32bit時代のバイナリを動かそうと思うと仮想記憶システムは最低ページサイズ4Kで動かさなければいけないし、だったら、まいっかみたいな判断ですかねえ?… "
とみながたけひろさんのツイート: "昔の整列制限のままmmapできないとつらいから、でしょうね。しがらみ少な目のiOSは16KBとか聞いた気がします… "
SODA Noriyukiさんのツイート: "なるほど。32bitから64bitへの移行で問題が生じるのは避けたいですもんね。… "
KOSAKI Motohiroさんのツイート: "Linuxでも、もう32bit互換重要じゃないから16KBに変えようという議論、何回か出てるんですが、進みませんねえ、ほとんどのひとが出来るものならやってみろてきな冷笑的な態度で議論に参加するので… "
SODA Noriyukiさんのツイート: "基盤となるソフトウェアでは、互換性に関して懸念のある変更って嫌われますからねえ… 世の中にあるソフトウェアが、すべてきっちり書いてあるのであれば互換性の問題も出ないんでしょうけど…… "

@kazuho

Kazuho Okuさんのツイート: "read中に、その引数であるメモリ空間をmunmapすると何が起きるか? RT @unak: accept(2)の最中に、その引数であるfdを別スレッドでcloseすると何が起きるか?"
Kazuho Okuさんのツイート: "direct i/oでdmaしてる場合とか何かおもしろいこと起きないのかなぁ"
Kazuho Okuさんのツイート: ".@matsumotory プロセス内ならseteuidやsetrlimit等で十分だし、プロセス分離して「信頼できないコードを実行する」場合に現実的になる要件では、と思っています。インタプリタにsafeモードをつけるという観点だと違うかも"
Kazuho Okuさんのツイート: "h2o の cgi 対応は、CGI の最大同時実行数分だけあらかじめマネジャーを fork しておくというモデルなので、CGI プロセス多すぎになる問題や fork の負荷問題は発生しないのでみんな h2o 使うといいと思う"

@uchan_nos

OS作れないマン WalB担当さんのツイート: "Linuxのバディシステムは物理メモリ管理、スラブアロケータは仮想メモリ管理みたいな考え中でいいの?"
OS作れないマン WalB担当さんのツイート: "vmallocはバディシステムで空いてしまった穴をつなぎ合わせて仮想メモリ空間で連続な領域を作る感じなのかな。ちょっとコード読んでみたいかも。"
OS作れないマンさんのツイート: "やっぱりリクエストごとのforkはよろしくないしfcgiとかを使うのが正解じゃね >RT"
CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来
特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
デダルス・ユメノさんのツイート: "32ビットページングだと,ページサイズは4KiBまたは4MiB。ちょうど2^10倍。4レベルページングだと,ページサイズは4KiB,2MiB,1GiB。2^9倍ですね。なぜこの違いが出るか分かりますか?"
デダルス・ユメノさんのツイート: "これは4KiBで表現できるページの数が,32ビットページングでは2^10個,4レベルページングでは2^9個だからなんですね。4レベルページングではリニアアドレスが64ビット=8バイトに拡張されたので,4KiBの中に2^9個しかエントリを入れられなくなってしまったのです。"

@shirouzu

SHIROUZU(白水啓章)さんのツイート: "ここ20数年、HDD速度の10~20倍の伸び(10MB/s→150MB/s等)&シーク速度向上(数倍?)に比べ、搭載DRAM量は100倍以上(16MB→4GB等)になったため、瞬間的なスパイク発生時の保険以外でのスワップ多用は(昔より必要時間が増え過ぎて)現実的でなくなった、という印象がありますね。… https://t.co/VXvx03aFxL"
SHIROUZU(白水啓章)さんのツイート: "スワップを設定しなくてもいいというより、設定しても実用性の無い速度に落ち込んでしまう、という感じ。"
SHIROUZU(白水啓章)さんのツイート: "SSDだと(寿命問題以外は)スワップを定義する価値がありそうで、その遠い延長に NVDIMM-P とかかな。 そういえば、NVMDIMM-PはOS/CPUに透過なメモリとして見せると、CPUストール多発しかねないから、DRAMヒットミス時に別スレッドに切り替え可能な仕組みを入れるのかな。後で調べておこう。"
SHIROUZU(白水啓章)さんのツイート: "ただSSDにスワップを確保したとしても、(一般ユーザプロセスでも)搭載メモリサイズを少し超えるメモリを確保して、memsetをループさせるプログラムを動かすと、ほぼカーネルフリーズと言っていい状態に陥る。 (コンソールシェルはエコー反応のみ、sshは切断される状態。kernel3.4時代の実験)"
SODA Noriyukiさんのツイート: "原理的には clean な file cache の物理ページはいつでも解放することができるはずで、回避策はあるような気がしてるんですが、そうなってないんですよね。FreeBSD/DragonflyBSD と Solaris は clean な file cache 専用の page queue があるので実は問題を解決してるかもしれません(←よく知りません… https://t.co/nOlgw8Lmzp"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、NTの開発初期に、カーネルデータは全て物理メモリに置く方針だったのに、ラシッド教授がページアウト可能な方法を示したところ、カトラーはマネをするのも癪だから別の方法でページアウト可能にした、みたいな逸話もあった気も。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用に ps コマンドに PSS/USS を追加表示するコマンドを go で書いたので、公開しておきました。 (VSZ と RSS表示の2つだけだと、実効的なメモリ使用量が調査しづらいため) https://t.co/yE6J4ZiTgm https://t.co/QRQmANANsl」 / Twitter
shirouzu/pss: pss: ps command with PSS/USS information
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「簡単に言うと、smapsのPss/SwapPss と Private_Clean/PrivateDirtyを集計しています。 (PSS/USS以外も集計すると役立つ項目があったりするかしらん?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「LinuxもNTのように、アドレス空間の予約領域とコミット領域を分離できると良いなぁ。 前者は仮想メモリ確保なし、VSSにも表れない。ページテーブルも使わずAS管理のみ行う(NTと同様)。 使う時は(brk(2)のように)予約領域(の一部)をコミット領域に変更する形。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、mmap(MAP_NORESERVE)はあった。 (ただ昔実験した時にNTと同様の利用は出来なかった記憶が…) ともあれ、malloc標準だと1スレッド作る毎に128MBもVSZが増えて、必要メモリ予測がしづらいので、最初は空間予約のみにして欲しいところ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「pss(https://t.co/yE6J4ZiTgm)を作っても不十分な点は、直接mallocした領域(≒使う気満々)と、将来に備えた空間確保したいだけの領域を別表示できないことだよなぁ(≠実際に物理メモリが割り付けられた領域)。 これはライブラリ&プログラムがNONRESEVEを積極利用しない限り解決しない。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Netflixがmincore(2)をヘビー利用していた話が興味深い。 リブート前に、DBの実メモリ部分をダンプし、再起動後にそれをロードして、再起動後の性能低下を低減していると。 https://t.co/VfNZtKpdUJ」 / Twitter
Linuxのページキャッシュ攻撃対策の影響は大きく、長期化する見通し【翻訳】 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FirefoxでYoutube Musicで動画付き再生したら、Firefoxがやたら重くなったので調べてみたら、Firefoxが14GBもコミット済メモリを確保していた。 https://t.co/KE8rPEvrFG」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリのメモリ消費が気になるときは、コミット済みメモリ量を見るのが大事。 (ワーキングメモリ量は騙されやすい)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からタスクマネージャは、デフォルトではコミット済みメモリを表示しない謎。 (それが「メモリ・クリーナー」的な、まじないソフトが出現した一因とも思うのだが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにこの時、Youtube music のタブを閉じても変化無く、Firefox自体を落とす以外ではメモリ解放は出来なかった。 (Firefoxって、タブ:プロセスの関係は m:nなのだっけ…?)」 / Twitter

@EzoeRyou

Ryou EzoeさんはTwitterを使っています: "@shinh なるほど、ulimit -nがMacだと256、Ubuntuのデフォルトでも1024とfork bombを早期に避けるために極めて厳しいデフォルト設定になっているのですね。"
Ryou EzoeさんはTwitterを使っています: "システムコールのコストを下げる方法。1コアをシステムコール専用にする。キャッシュ汚染はそのコアのみにとどまる。 https://t.co/WSROiUv0y0"

@nminoru_jp

中村 実さんのツイート: "Intel64は4-level pagingでも仕様上4PiB(52ビット)の物理メモリ空間を保証しているんだよな。ページテーブルの予約ビットを使えばマックスの16EiBも行ける。物理メモリ制限はチップセット側の仕様だよな。"
中村 実さんのツイート: "ただx86-64/Linuxは256TiBの仮想アドレス空間の半分をカーネルに割り当てて、カーネルの半分を物理メモリとのマッピングを使うので、そのまま64TiBを越える物理メモリを載せてしまうとx86/Linuxみたいな物理メモリを触る時にページ単位に仮想メモリにマッピングする方… https://t.co/joXxY6bXul"

@tociyuki

MIZUTANI Tociyukiさんのツイート: "linux カーネルには、 まだ fs-uid が残っている。 デフォルトで無効にして、カーネル・コンフィグで有効にできないこともないけど利用非推奨で良いのではないかな。 setresuid (2) システムコールが使えるのだし。"
MIZUTANI Tociyukiさんのツイート: "ざっと google で検索した印象では、 POSIX の実uid、実効uid、退避uidの3組でデーモンの実効uidを特権と非特権で交互に行き来するやりかたを日本語で解説しているページはないようだ。それ以前に退避uidの解説ページがないようだ。"

@satoru_takeuchi

satさんのツイート: "とくにHDDだと、ちょっと負荷がかかると要求仕様を満たさない性能に落ちるレベルを突き抜けて、二度と応答がなくなるところまで一瞬で到達しますからね… "
satさんのツイート: "ページテーブルがメモリを食うというのと、それがforkの計算量に効いてくる、という話は頻出だけどあまり知られてない"

@KuniSuzaki

suzakiさんのツイート: "The history of documented Unix facilities でコマンドやシステムコールが導入された初期バージョンが示されて面白い。 https://t.co/rDDtchiU4M これを見てWindowsのシステムコールが有効なバージョンリストを思い出した。こちらも面白い。 https://t.co/FgsUg23Z3Y"
The history of documented Unix facilities
Microsoft Windows System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)

OSのデバッグ:メモリアロケーション講座 | POSTD
メモリアロケーションを削減: T.Ishiiのソフト開発記
省メモリーに関するデザインパターン 2011.04.18
スラブアロケータのfree list randomizationの実装について - Qiita

プロセス間通信

signal

ゆたかさん🐬さんのツイート: "シグナルハンドラで使用可能な関数は、下記サイトに記載されていますが、非常に少ないです。printf()やfopen()などがまず使えません。実際に誤って使用しても、それなりに動いてしまうので問題に気付きにくいです。 https://t.co/cvbnhTp8NZ"
signal-safety(7) - Linux manual page
ゆたかさん🐬さんのツイート: "シグナルハンドラで使える関数は決まっていて、思いのほか少ないのですが、その制約を守れていない実装が存外多く蔓延っています。BusyBoxのsyslogdの-mで使われているシグナルハンドラはシグナルセーフではないため、まれにデーモンが暴走することがあります。 https://t.co/mJ6z8u7b2g"
Linux シグナルの基礎 - harasou.jp
だいありー
ぬるぽへさんのツイート: "マルチスレッドなら同じシグナルハンドラが普通に並行に走るな・・・(この動作ってPOSIX的にオッケーなんだっけ"
ゆたかさん🐬さんのツイート: "killコマンドはプロセスに終了してね❤と通知するだけなので、実際にプロセスが死んだか別途確認する必要があります。 PIDは再利用されると、別プロセスが同じ番号を使うので存外難しい。 1.kill PID 2./proc/PID がない 3./proc/PID/exe を確認"
Takanori Watanabeさんのツイート: "とりあえず、SEGVを割り込んで途中で止められるようにして欲しい。 (デバッグ中の数ギガクラスの巨大なイメージのプログラムのコアダンプを20分ほど待ちながら)"
LinuxC | シグナルの操作(2)
スタックオーバーフローのハンドリング (Stack Overflow Handling)
SIGSEGVとSIGILLのあいだ - Qiita
SIG30-C. シグナルハンドラ内では非同期安全な関数のみを呼び出す
Man page of EXIT
c++ - What's the difference between _Exit() and _exit()? - Stack Overflow
_Exit - cpprefjp C++日本語リファレンス
quick_exit - cpprefjp C++日本語リファレンス
terminate - cpprefjp C++日本語リファレンス
mattnさんのツイート: "SEGV は Segmentation Falut の略だよって人、なぜ Violation まで付けて説明しないのか。"
Fadisさんのツイート: "/proc/<PID>/以下ににシグナルを送る為のファイルを作る提案がなされている。既存のシステムコールを使った方法ではPIDが再利用された場合間違ったプロセスにシグナルを送る恐れがあるが、作り直されたディレクトリは以前の物と区別される事を利用してこの問題を回避できる https://t.co/JiKCIwMyVq"
New /proc/pid/kill Interface Proposed For Killing Linux Processes - Phoronix
まさみさんは語りたいさんのツイート: "signalで実装するとsignalハンドラでキャッチした後スリープしてる本体のスレッドを叩き起こし、戻る必要があるが、signalfdで待っておけばepollですぐに本体で対応できる。"
Fadisさんのツイート: "Linuxが新規プロセスに付ける番号(PID)は1から32767までの狭い空間の使用中でない値なので、短時間で終了するプロセスが大量に動くシステムで、PIDを指定してシグナルを送ると、それが既に終了していた場合、シグナルが意図したプロセスとは別のプロセスに届いてしまう事がある。"
Fadisさんのツイート: "この問題を解決する為に、現在Linuxカーネルで対応が進められているのがpidfd。これは/proc/<PID>ディレクトリに対するfile descriptorで、/proc/<PID>が別のプロセスになっても、fd指定でシグナルを投げる事で古い方のプロセスに向かってシグナルを投げている事をカーネルに明示する事が出来る"
ITが分からないbeepcap@HTTPSの強制には反対さんのツイート: "64bit環境では22bitほど割り当てられるので、比較的問題は小さくなる。… "
Fadisさんのツイート: "ちなみにLinuxはnamespaceでPIDの空間を分ける事ができる(よその名前空間のプロセスは見えなくなり、よそではすでに使われているPIDが未使用になる)為、ものすごい勢いでプロセスを作って終了させるヤツを他のプロセスが属すPIDの空間から隔離する事は、古めのカーネルでもできる"
2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「errnoは誰もがerrnoの扱いに関するルールを守る限りにおいて正しく機能するが、君はerrnoを書き換えるかもしれない処理をするシグナルハンドラの最後でerrnoを以前の値に戻すのを忘れたことが無いのか?!」 / Twitter
情報学広場:情報処理学会電子図書館

Twitter

CAP定理

TAKI, Yasushi (瀧 康史)さんはTwitterを使っています 「とりあえず、「分散すれば良い」と簡単に思ってる人は、拡張CAP定理について書いたので、読んでほしいな。 https://t.co/M9sXkaJ2m9」 / Twitter
Shinji KonoさんはTwitterを使っています 「本質的にスケールするためにはCAP定理のどこかを諦める必要がある。どれかは明解。そうすれば自明にスケールして、ネット上の情報交換はほぼ無料になる。そして、インターネットは再び儲からないものになる。トランザクションを要求するものは別。」 / Twitter
時空に拡張されるCAP定理:落ちず、速く、確実なサーバをどう作るのか? - JUSTPLAYER インターネットサービス

UNIXドメインソケット

Fadisさんのツイート: "mysqlはlocalhostに接続する時にmysqldが作ったUNIXドメインソケットを使おうとするが、この時mysqldのプロセスがあるかとかは見ていなくて、別のコンテナのmysqldが作ったソケットをbindマウントで持ってきて見える状態にすると、localhostにないmysqldにlocalhostで繋がる、という知見が得られた"
syuu1228さんのツイート: "一般的にこういうアプリでUNIXドメインソケットでつなぐ前にプロセスの生存確認ってわざわざしない気がする(繋がらなければ生存してないとわかるし…"

@kazuho

Kazuho OkuさんはTwitterを使っています: 「可用性が高く、メッセージへの参照を持つことができる、セキュアなメッセージキューがあります。各アプリケーションはメッセージキューの読み書きをすればよろしい、ってのはエンタープライズアーキテクチャには便利だわなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「スケーラビリティのためにはイベントドリブンプログラミングが必要だけど、単にイベントドリブンするとワークセットがでかくなってパフォーマンスが出なくなる問題」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「ちょっと具体的に言うと、ワークセットを小さくするにはイベントループに戻るケースを最小化すべき → 非同期になった場合と同期的に処理できた場合の両方を統一的にコーディングできるよう設計すべき → tail callが便利 → 返り値を返す関数とcbを引数にとる関数の峻別が必要」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「リソースロケータと読み書き手順の標準化による効率化、ってことなのかな。なるほどねぇ / https://t.co/AOSpdixnST」 / Twitter
中国で公共サービスのブロックチェーン導入進む。十数日かかる企業登記が3日に短縮 ~知的財産権訴訟の和解処理も大幅効率化 - 仮想通貨 Watch
Kazuho OkuさんはTwitterを使っています 「一般論として、大量のパケロスが発生するような状況はキューの積み上がりと再送による遅延が激しくなるので、そこまでアグレッシブに送るメリットがないと理解しています。輻輳ギリギリを狙うのが吉」 / Twitter
ReiOdairaさんはTwitterを使っています 「UDPの性能評価がよくわからん。UDPを生で(?)使ってる人にとってはレイテンシとパケット落ちない最大スループットが重要?パケット30%落ちるけどn Gbps出ます、みたいな領域でUDP使ってる人いるのか?でも最近はUDPの上に到達保障性のあるレイヤー重ねることも多いだろうからまた評価基準が変わるか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「他のフローを追い出すとか邪悪なことをやりたいならともかく」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「規格統一の話とは少し違うけれど、A.タネンバウム先生の「分散システム」としてのMS DCOM評を思い出した。 「DCOMを批判することは難しくない。しかし何千万人が毎日使っているという意味で、CORBAや他のいかなる分散システムも遠く及ばない」 https://t.co/JJcrU5Ooub」 / Twitter
深津 貴之 / THE GUILDさんのツイート: "「エンジニアが1ピクセルの精度を軽んじる」っていうけど… デザイナも「エンジニアがミリ秒単位でチューニングしたレスポンスを、デカイjpeg貼って台無しに」とかするので、やっぱ相互理解が大事だよなぁと思いました"
ねこさんはTwitterを使っています 「“システムの作り直しは失敗しやすく困難なので、しばしば悪い方針だと言われます。” そうなのかー…弊社内だとすごくよく見る https://t.co/KisyvzS6gG」 / Twitter
人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
ねこさんはTwitterを使っています 「これ,たぶんRPC protocolが統一されてて,micro service architectureと下層の状態が高度に隠蔽されているからな気がする(あと依存系の更新が頻繁に起こってdefacto standardがちょこちょこ変わるのもある」 / Twitter
検索インフラを安全に切り替えた話 - クックパッド開発者ブログ

PC内のプロセス間通信に対する中間者攻撃--パスワードマネージャから情報流出も - CNET Japan
In-Process コンポーネント技術の限界 - NyaRuRuが地球にいたころ
情報学広場:情報処理学会電子図書館
Security Tips for IPC - The Chromium Projects
編集長の眼 - 若手が知らない昔の技術MQ、クラウドではホットだ:ITpro
MSMQと.NET Core
ウェブシステム内の待ち行列をMackerelで可視化してみる - ゆううきメモ
分散キューという名の苦しみ - Software Transactional Memo
分散システム処理モデルに関する動向について(MapReduceからBorgまで) - Yahoo! JAPAN Tech Blog
プロセス間通信 - Qiita
本当は恐ろしい分散システムの話
Oracle Cloud、マルチプラットフォーム対応の運用監視ツール「Oracle Cloud observability and management platform」発表。ログの一元管理から分析、分散トレーシングなど - Publickey
gRPC、Ballerina、Go言語を使用したマイクロサービス開発の実例

並列・並行

新しい並列for構文のご提案
分散処理に詳しいオタクさんはTwitterを使っています 「"平行性"って英語だと"parallelism"なんだけど、"parallelism"を(計算機の文脈で)和訳すると"並列性"になるのどっかでバグってると思う。まぁ並行性と平行性はそもそも全然別の話なんじゃが。」 / Twitter
こば(右)- Koba as a DB engineerさんはTwitterを使っています 「@kumagi 並行性をconcurrencyと訳したりもしますね。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「@tzkb ちなみに僕はごっちゃになった時はparallelという単語は縦線が多いから同じく縦線の多い"列"と紐づけ、concurrentという単語はそれに比べると横線が多いので"行"と紐付けることで、並行・並列とconcurrent・parallelの混乱を解決しています。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「僕の感覚では 並行: 朝ご飯を食べながらニュースを見る、のように複数の作業を手段はどうあれ時系列的にオーバーラップした状態でやること 並列:白米を咀嚼して嚥下しつつ目がニュースの映像を解釈して理解する、のように実際の動作が同時に行われる事。仕事の種類は関係ない https://t.co/7CMRYQGNgl」 / Twitter
君たちの「並行」の理解は間違ってる
分散処理に詳しいオタクさんはTwitterを使っています 「ご飯時にテレビをつけてさえいれば、ニュース鑑賞と食事を実際は交互にやっていてもそれは並行作業とは呼べる。目的が複数あれば並行。 それの効率化として咀嚼する間に暇な目と脳をニュースに向けるのなら並列作業。目的の数に依らず独立したアクチュエーターが複数あれば並列。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「つまり並行・並列ってのはラベルを付けるレイヤーが違うので、並行かつ並列という状況もありうるし、例えば両手に箸を持つ事により倍のスループットで白米を口に運ぶというのならそれは並列と呼べる。計算処理にDMAをオーバーラップさせるのも複数のアクチュエータを同時に動かすので並列処理。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「普段のCPUもメモリコントローラーとALUが同時に動いとるやんけみたいなクソリプを無限につければ何でも並列処理とは呼べるんだけど、まともな文脈において並列処理ってのは「複数のアクチュエータを同時に駆動させる事による高速化」を縮めて言ってるだけなので高速化とは関係のない文脈では使わない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「並行に関して言うと concurrent が con-current じゃなくて concur-ent なのは罠だと思う。register 的なアレ」 / Twitter
KOBA789さんはTwitterを使っています 「これは定義ではないけれど、並列化はそれらのタスクを直列に実行したときよりも完了までの時間が短くなることをしばしば期待するよね」 / Twitter
KOBA789さんはTwitterを使っています 「下のレイヤーの詳細を知らずに速いソフトウェアを作れるわけなかったわ。大変失礼しました」 / Twitter
_ko1さんはTwitterを使っています 「@KOBA789 下回りの詳細を知らないと速くできないCSの敗北」 / Twitter
KOBA789さんはTwitterを使っています 「@_ko1 leaky abstraction に勝ちたい」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「concurrentとparallelについては昔@kumagiさんとやらかしたことがあったなあ(ぉぃ 「concurrentとparallelの違い説明会」 https://t.co/M3TT95Lgm2 個別の事例に対しこれは concurrent? これはparallel?って判断すれば意見はほぼ一致すると思うんだけど、一般的に説明しようとなんか紛糾する?」 / Twitter
concurrentとparallelの違い説明会 - Togetter
Toshio HirotsuさんはTwitterを使っています 「@hidemotoNakada @_ko1 昔、殆どの環境が (physical に) single thread だった時代には、論理的に同時に走る (incl. time slicing) を並行(Concurrent)、物理的に同時に走るを並列(Parallel)と呼んでいた時代もあったような。」 / Twitter
_ko1さんはTwitterを使っています 「なお、私の理解: (走らせれば終わる)複数のタスクについて、 並行:待ってればいつか全部終わること(論理的に同時) 並列:並列計算機において、物理的に同時に走ること」 / Twitter
_ko1さんはTwitterを使っています 「@t_hrt @hidemotoNakada 昔ブックオフで買った情報処理大辞典というのを見てみました。 並列は物理的に同時っぽく書いてありますが、並行処理はあんまり論理的じゃなかったようです。 https://t.co/bc1ukJrWnF」 / Twitter
yohさんはTwitterを使っています 「並行/並列の"厳格な"定義はハナから無いと考えたほうが気楽なのかもしれず 文脈依存説」 / Twitter
yohさんはTwitterを使っています 「といいつつ 個人な感覚では タスク記述の論理的な分離性が主眼=並行(concurrent)/タスク処理の物理的な高速化が目的=並列(parallel) 派」 / Twitter

同期 API

その他

そろそろvolatileについて一言いっておくか
ホイール欲しい ハンドル欲しい » Archive
5章 カーネルの同期処理 - iplab 2011
DSAS開発者の部屋:並列プログラミング(その3)
emcjp/ at master · herumi/emcjp · GitHub
Thread/Synchronization 補足資料
TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと
データ競合(data race)と競合状態(race condition)を混同しない - Qiita
スリープループによる消費電力とパフォーマンスの改善 | iSUS
RCUの全面書き直しも! 2.6.29は何が変わった?(1/2) - @IT
QCon New York 2017: システム内のイベントの順序付け
x86 に Persistent Memory 用の命令が追加予定 - 教育は参考ブログ
PCOMMIT 命令は廃止に - 教育は参考ブログ
状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
CPUスケジューリング - 13DeadLock.pdf
オペレーティングシステム - OS_05.pdf
SPIN モデル検査: 検証モデリング技法 - 中島 震 - Google ブックス
世界で闘うプログラミング力を鍛える150問: トップIT企業のプログラマになるための本 - Gayle Laakmann McDowell - Google ブックス
Rustの `Arc` を読む(4): アトミック変数とメモリ順序 - Qiita
x86 lock 特権 - Google 検索
okamo(aged 5 yrs.)さんはTwitterを使っています 「なんか忘れてしまったけどcoherentかconsistentかみたいな話について似たような議論を繰り広げた記憶がある」 / Twitter
アトミックな加減算命令 x86 - Google 検索

メモリモデル

x86

yohさんはTwitterを使っています: 「x86でもStoreLoadバリアが必要なケースあると思われ https://t.co/5a6rNpk6GX https://t.co/FtleEav5eP」 / Twitter
Memory Reordering Caught in the Act
キノコになりたい🍄さんはTwitterを使っています: 「x86-64のCPUはつよいメモリモデルを持つのでOoOでも結局volatileアクセス順序は保たれそう? シングルスレッドだけを見るならvolatileアクセスの逐次一貫性を保証するのに追加のバリアは要らないよねきっと・・・」 / Twitter
omni 鳥頭さんはTwitterを使っています: 「@yohhoy @onihusube9 あれ?この引用されている記事は異なるメモリに対するお話ではないんですか?」 / Twitter
キノコになりたい🍄さんはTwitterを使っています: 「@kariya_mitsuru @yohhoy 私としては、異なるvolatileオブジェクトのアクセス間でも結局x86ならmovで十分なのでは??? と考えていたので、この記事で見事に間違っていることが分かりました・・・」 / Twitter
omni 鳥頭さんはTwitterを使っています: 「@onihusube9 @yohhoy あ~、それはダメですね…」 / Twitter
yohさんはTwitterを使っています: 「@kariya_mitsuru @onihusube9 通常は異なるアドレス(変数)アクセス間のConsistencyが議論の対象ですね。ただ一部の超よわよわメモリモデルプロセッサだと、同一アドレスアクセスの順序すら入れ替わることがありえたり(Intel Itaniumのld命令とか)」 / Twitter
yohさんはTwitterを使っています 「x86メモリモデルのままmany core化とか無理やったんや」 / Twitter

blog

メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
メモリモデル (プログラミング) - Wikipedia
マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
言語仕様とメモリモデル:柴田 芳樹 (Yoshiki Shibata):SSブログ
C#のメモリモデル、スレッド処理 - tixture55’s diary
プロセッサのメモリコンシステンシモデルについて - FPGA開発日記
メモリコンシステンシについて
std::atomic の挙動がメモリオーダーによりどう異なるか - uchan note
データ競合と happens-before 関係 - uchan note
C++ の release sequence の意味と役割 - uchan note
メモリコンシステンシモデルとリトマステストについて (1. メモリコンシステンシモデルについて) - FPGA開発日記
メモリコンシステンシモデルとリトマステストについて (2. リトマステストについて) - FPGA開発日記

Javaの並行処理を理解する(入門編) - Qiita
C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
第 1 章 マルチスレッドの基礎 (マルチスレッドのプログラミング)
C++ マルチスレッド 入門
C# - マルチスレッド化でのC#メモリモデルの挙動|teratail
atomic::compare_exchange_weak - cpprefjp C++日本語リファレンス
yohさんはTwitterを使っています 「@uchan_nos https://t.co/pImzOF89xO TSOより強いsequential consistencyを実現するためにXCHG命令が使えますね。」 / Twitter
c++ - Why does a std::atomic store with sequential consistency use XCHG? - Stack Overflow
逐次一貫性 - Wikipedia
メモリコンシステンシモデル memory consistency model - ppt download
yohさんはTwitterを使っています 「C/C++メモリモデル上はbit-fieldの扱い超ややこしくて、隣接するbit-field間は並行アクセスすると全部ぶっ壊れる可能性があった気がする(やや過激な表現)」 / Twitter
yohさんはTwitterを使っています 「“Strong” and “weak” hardware memory models | Sutter’s Mill http://t.co/1HdfybmFRG SeqCstなメモリモデルでARMの新しいinstructionがいけてる(ようになる)みたいな記事があったな と」 / Twitter
“Strong” and “weak” hardware memory models – Sutter’s Mill
yohさんはTwitterを使っています 「AppleM1登場で ARM/x86 memory consistency modelのような超マイナー領域話題に日が当たってるのウケル」 / Twitter
yohさんはTwitterを使っています 「今はなきItanium(IA-64)のよわよわメモリモデル https://t.co/GPalabvCVD 同一スレッドから同一メモリ位置を2回loadする順序ですらひっくり返る(ことがある)位だったらしいので凄い」 / Twitter
[cpp-threads] Brief example ITANIUM Implementation for C/C++ Memory Model
SPARCのメモリオーダリング: 竹下世界塔の計算機よもやま話
yohさんはTwitterを使っています 「メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳 https://t.co/77SfsgR0Wi 続編!!」 / Twitter
メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳
yohさんはTwitterを使っています 「個人的にも "裏技" という印象が強いかなぁ... memory coherence制御ってマルチコアプロセッサの基礎的なレイヤのイメージがあるから そこをOS thread単位で変えられるとか聞くとびっくり(ハード寄り知識不足に起因した印象なのかもしれず)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「良い解説記事。他のメモリモデルをサポートすることは特に禁じられてないだろうし、裏技かどうかはともかく / https://t.co/b2PB8GfcRK」 / Twitter
Kazuho OkuさんはTwitterを使っています 「裏技かどうかは感覚の話であって記事の技術的正確性には関係ない話だけども。個人的には、より制限のきついtsoモードで動くのは仕様準拠である以上、フラグで制御できる省電力モード足すのと変わらん程度では感」 / Twitter

メモリバリア

Twitter

histric-1

Fadisさんのツイート: "小学生「おじいちゃん、今はCPUは書いた順に命令を実行なんてしないし、バリアも置かずにデータを覗き見したら何が読み出されるかわからないし、システムコールはint 0x80じゃないんだよ」 (つまりこういう事か"
СЮУ1228さんのツイート: "おじいちゃんが、というか、初学者が読んだ参考資料が古すぎるために知識がこういう風にずれるのありそうだなぁと思った"
Cocoaにおける同期 – ゴミ箱
ゆたかさん🐬さんのツイート: "最近のプロセッサはOut of orderな動きもするので、volatileだけでは不十分で、メモリバリアも必要なケースもあります。特に、DMA転送する時とか。 https://t.co/QfytuYEgKg"
各種プロセッサのメモリオーダリングについて 竹下世界塔の計算機よもやま話/ウェブリブログ
中村 実さんのツイート: "ストア命令の順序はほとんどCPUで保証しますよ。x86でもSPARCでも。保証しないのはAlphaとIA-64ぐらいです。問題になるのはロード命令とストア命令の順序、ロード命令同士の順序ですな。… "
whymb.dvi
c - gcc memory barrier __sync_synchronize vs asm volatile("": : :"memory") - Stack Overflow
まさみさんは語りたいさんのツイート: "PaulといえばメモリバリアとRCUというイメージがある。RCUの実装にはメモリバリアが避けられないから。"
日記 (2015 年 8 月下旬)
松本 亮介 / まつもとりーさんのツイート: "マルチスレッドなコード、コンパイラレベルでメモリバリアしてもCPUレベルでストアとロードの並べ替えがそれなりにおきて、それに起因して全体としての問題がたまに起きるし、それに気づくのに時間使いすぎるし人類には早過ぎるのだが僕は負けない。つまりmfenceしてやれば良いのだけど大変である。"
社会人でもOSを作りたいさんはTwitterを使っています: 「movとxchgの間のリオーダってどんな感じかな。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos メモリオーダリングの話でしょうか?もしそうなら、SDMのxchg命令とVol. 3Aの「8.2 MEMORY ORDERING」見る限りは、xchgの前のmovとxchgのオーダが入れ替わる可能性もあるので、順序保証のためにmfenceは必要かな。xchgだから特別というわけでもなさそうです。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin ありがとうございます。「8.2.3.1 Assumptions, Terminology, and Notation」に登場する「write」と「store」って何が違うんでしょう。もし同じ用語だとすれば,xchgは暗黙的にlockが付与されたread-modify-writeとして実装されているので,他のread/writeと入れ替わることはないような。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 8.2.2にあるように,read同士,write同士はリオーダされないはずなので,read-modify-writeとして実装されているxchgは他のread/write命令とリオーダされないはず,という推論です。」 / Twitter
tarosukeさんはTwitterを使っています: 「@uchan_nos スピンロックで使うメモリをA、レジスタをB、Aの初期値を0として... 1. 1をBに書く 2. BをAと交換 3. Bが0でなければ2に戻る(x86ならwaitしておくとベター) ...ロック内の処理... 4, ロックを抜けるときには0をAに書く ...だったかな?x86では交換がアトミックなのがミソ。」 / Twitter
tarosukeさんはTwitterを使っています: 「@uchan_nos waitでなくてpauseだったか。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@tarosukenet めっちゃ参考になります。pause以外はおっしゃる通りの実装をしていました。pauseしてみたらパフォーマンスが上がりました。とあるベンチマークが1.7秒→0.8秒くらいに。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos レス遅くなりました。writeとstoreは変わらないと思います。理由は、SDM 3A. の8.2 では「processor issues reads (loads) and writes (stores)」と書かれているため、同じ意味とみなしても良いと思います。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos レスありがとう!リオーダされないのは「個々の」プロセッサでのRead、Writeが範疇だと解釈しております。8.2.2のFigure 8.1に関する説明では・・・「but because of bus arbitration and other memory access mechanisms」により、複数プロセッサによるWrite順は毎回同じにならないかな、と思います。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 別々のプロセッサのwriteが同じ順にならないのは全然驚かないですね。それはリオーダとは呼ばないですよね。」 / Twitter
yoh2さんはTwitterを使っています 「「このマルチスレッドプログラム、シングルコアCPUでないと動かないんだ」の経験があります。 複数スレッドから参照される変数には volatile 付けてるし、読み書きがアトミックに済むことも確認済なのに何故……と。コンパイラが順序を入れ替えなくてもCPUが入れ替えることを知らなかったあの頃……」 / Twitter
yoh2さんはTwitterを使っています 「@yuki_shemale あるコアで行われたメモリ読み書きの順序が別のコアからは違った順序で行われたように見えるというものです。 例えば初期値0でx=1とy=1をこの順に行うとx=0かつy=1になる瞬間はないはずですが、他コアからはそう見えることもあるという。 ↓古いですが実験用プログラムです。 https://t.co/BWujQwqMit」 / Twitter
ロード/ストア命令の追い越し例 | Yoh2の日記 | スラド

Makoto Kato ︎︎さんはTwitterを使っています 「memory orderingをエンディアンと勘違いする人いるんだ。out-of-orderとかmuti-threadとかをまず理解すべきだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C/C++のコードはコンパイラとかCPUが実行順序を入れ替えるなんて想像してないんだろうな、そういう人」 / Twitter
とみながたけひろさんはTwitterを使っています 「@kazuho (私はまだ使ったことがないんですが)LDAR/STAR命令などを使うとバリア命令が内包されるため、ほぼx86的なメモリオーダリングになるように見えるんですよね https://t.co/JFFvEvHc0S」 / Twitter
ARM Cortex-A Series Programmer's Guide for ARMv8-A
yohさんはTwitterを使っています 「ARMのLDAR/STLRって 最近のseq_cst memory orderingをそのままHW実装(保証)した感じで x86のTSOよりも"便利"になってたきがしないでもない」 / Twitter
☕sat📷さんはTwitterを使っています 「@try_ymk アセンブリ言語で特殊なヒントを与えます。素直に命令をA,B,Cと並べるだけでは実行順序がハードによって入れ替えられたりするので。「やっぱりアセンブリ言語使ってるじゃん!」と言われたらそうなんですが、素直に書いたとおりには動かないということで」 / Twitter
☕sat📷さんはTwitterを使っています 「@try_ymk それがどこから来ているかというとCPUが実際に実行しているuopという命令の粒度がユーザに見えるアセンブリ言語レベルの命令より小さいから、だったりします。我々はuopの挙動に対するヒントは与えられますが、直接実行はさせられません」 / Twitter

メモリバリアを理解するために必要な3つのこと - yamasaのネタ帳
yamasaのネタ帳
Multithreading - x86 LFENCE、SFENCE、MFENCEの指示はいつ必要ですか? Assembly | サンプルコード [日本語]
Assembly - x86 / x86_64プロセッサでLFENCE命令を使用するのは意味がありますか? X86-64 | サンプルコード [日本語]
全 x86 プロセッサにあるわけではない命令 (July 23, 2006)
メモリオーダリング - Wikipedia
アウト・オブ・オーダー実行 - Wikipedia
メモリバリア - Wikipedia
メモリーバリア ‐ 通信用語の基礎知識
メモリバリア - C言語入門
ロード/ストア命令の追い越し例 | Yoh2の日記 | スラッシュドット・ジャパン
DSAS開発者の部屋:Go のライトバリアに関するバグを修正した話
スレッド同期についてのエトセトラ
スレッド同期のエトセトラ 第2回
スレッド同期のエトセトラ 第3回
Load-Link/Store-Conditionalを見直した
無視できないフラグメンテーション問題への解答は?(2/2) - @IT
マルチスレッドとメモリ同期 - primitive: blog
次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳
「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
x86よくできてる点 - w_o’s diary

排他制御

データの同時更新を防ぐための排他制御 (1/3):CodeZine(コードジン)
排他制御
排他制御のあれこれ - Qiita
排他制御(楽観ロック・悲観ロック)の基礎  - Qiita
データベース利用時に自前で排他制御が必要か - プログラミングメモ
排他制御とは パソコン初心者講座
排他制御
ユーザの設定による排他制御の変更
[SQL] 11. トランザクション 2 | TECHSCORE(テックスコア)
一貫性/独立性を確保する「排他制御」を理解する (1/2):「データベーススペシャリスト試験」戦略的学習のススメ(23) - @IT

Latch

Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい - argius note
FutureとPromise | Scala研修テキスト
CountDownLatchを使って、複数スレッド間の同期を取る - Qiita
[Android] 何人かの非同期処理を待ち合わせる | アドカレ2013 : SP #23 | DevelopersIO
Java CountDownLatchは、ラッチをカウントダウンするthread.run()が例外を受け取ると、タイムアウト値を待ちます。 - コードログ
CountDownLatch (Java Platform SE 8 )
7つのサンプルプログラムで学ぶRxJavaの挙動 - クックパッド開発者ブログ
CountDownLatchを改造して、別スレッドの複数並列処理の結果に応じて処理する - 気まぐれな備忘録(仮)
latch, barrier同期プリミティブ - yohhoyの日記
タイムアウト Javaマルチスレッドでカウントダウンラッチはどのように使用されますか? - 初心者入門サンプル

ロック

Twitter

Intel_AMD

まさみさん⋈語りたいさんはTwitterを使っています 「Intel SDMとAMD APMで超基本的な内容が矛盾してることが分かった。Intel SDMではLOCK-REPプレフィックスの組み合わせは許されていないのに、AMD APMでは許されている。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxで使っているinstruction decoderはIntel SDMに基づいて作っていたので、Legacy prefixは4バイト(4種類)まで、という理解で作っていたんだよね。ところがAMD APMは5バイト(5種類)までOKとか書いていて草」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「最大4バイトまでなんやな、ということでinsn_value_tをu32で定義しちゃってるんだよ。どうしようかこれ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「違うわ。これはAMD APMの記述ミスや。REPとLOCKは使える命令が限られていて、お互いに違う命令をサポートしているから、どうやってもこの2つが同じ命令に対してかけられることがない。後半の説明にそう書いている。デコーダの説明がおかしい。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka 詳しくは下記メールを参照のこと・・・。 https://t.co/j5Nw5VcHbH LOCK-REPプレフィックス付けるとintelでは何が起きるのだろうか?(普通に動きそうだけど)」 / Twitter
Re: [PATCH v2 1/3] x86/uprobes: Fix not using prefixes.nbytes for loop over prefixes.bytes - Masami Hiramatsu
まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka あっ、わかったこれはひどい」 / Twitter

OS作れないマン WalB担当さんのツイート: "タスクの概念がないしカーネル空間でのロックなのでスピンロックで実装していたんが、そういえばハンドラの中からLock呼び出すとデッドロックするよなあ…というかデッドロックが発生したので、TryLockを実装した。"
Community Blog - ファイルロックと新OFDロック
Kazuho Okuさんのツイート: "RDBにおいてはデッドロックはリトライで解決するものという前提が抜けてる? / デッドロックを減らすパフォーマンスチューニング論としては面白い / “デッドロックおじさん戦記 - Mercari Engineering Blog” https://t.co/Aqdjx85hdA"
デッドロックおじさん戦記 - Mercari Engineering Blog
Kazuho Okuさんのツイート: "実際問題としてデッドロックの発生率があがると過負荷になってユーザにエラー返すことになるのはそのとおりだろうけど、その説明がないと、リトライしてないの???ってなる"
ファッション自作OSマンさんのツイート: "割り込みハンドラから書き込んで,メインループで読みだすようなキューを競合から保護するには何使えばいいんだ?割り込みを禁止するのは簡単だけどマルチコア環境だと意味ないしな."
ファッション自作OSマンさんのツイート: "ローカルCPUについてはcliで割り込み禁止しつつ,スピンロックで保護するのがお手軽な感じかな."
satさんのツイート: "正解。linuxでいうところのspinlock_irq{,save}ですね… "
ファッション自作OSマンさんのツイート: "LinuxはそういうAPIがあるんですね.saveって何をsaveする意味なんですか?… "
PEN🍄海猫さんのツイート: "lock cmpxchg でぐるぐる?… "
ファッション自作OSマンさんのツイート: "しかし、flagsを保存する関数のサフィックスがirqsaveなのはちょっと違う気がする。歴史的な命名だとは思うけど。masksaveとか。"
Man page of SEM_OVERVIEW
SODA Noriyukiさんのツイート: "先月、自前のロック作ったばかりなんだよなあ(といってもmutexと条件変数で作った)。 なんかLinuxのmutex/rwlock/POSIX semaphoreを生で使うと、公平性に難が出る(数~数十秒、特定のスレッドがロックを独占する)例に遭遇したんだよねえ。SolarisやNetBSDだとそこまで不公平にはならないんだけど。"
SODA Noriyukiさんのツイート: "もちろん、元々の主旨(ふつうはシステムの提供するロックを使え)には全く同感。 最適化についても、速度に問題が出て、プロファイルでボトルネックを特定してからでいいよね。とはいえ、O(N^2)以上のコストがかかるアルゴリズムとかは使わないように最初から気をつけて書いたほうがいいけど。"
まさみさんは語りたいさんのツイート: "libc由来のゆらぎなのかなあ?それともスケジューラがおかしいか。いずれにしてもmutex使ってるなら問題ないのでは。自前のspinlock(lock xchg)でなければ・・・・。… "
SODA Noriyukiさんのツイート: "自前実装カーネルとかならともかく、いつCPUを失うか分からないuserlandで自前spinlockとかダメダメですよねえ。 原因がどこか全然調べてないです。1000行くらいの再現プログラム(もっと削れるけど、対処を優先してたので削ってない)はあるから、どこかに晒したほうがいいのかしら。… https://t.co/ydUpxMjhaJ"
中村 実さんのツイート: "POSIX mutexはもともとfairnessを無視する機構ですが、POSIX semaphoreにはfairnessに関する仕様上の規定があるような。 https://t.co/7MPUSV90Tu 私が昔調べた範囲ではLinuxのPOSIX semaphoreも守っていたはずです。… https://t.co/yhbdmI3Oom"
NAKAMURA Minoru's Diary (2013年8月)
中村 実さんのツイート: "と思ったら、さらに昔の日記ではLinux上のPOSIX semaphoreがunfairな挙動をしていると自分でも書いていた。 https://t.co/RXeSd64RFm… "
NAKAMURA Minoru's Diary (2007年9月)
NAKAMURA Minoru's Diary (2004年4月)
まさみさんは語りたいさんのツイート: "Linuxカーネル内のロックの選び方はかなり簡単で、割り込み延長の場合はspinlock、それ以外はmutexが基本。"
まさみさんは語りたいさんのツイート: "基本以外のロックについては、それぞれの動作が理解できていないなら使わないで! seq_lock/rcu/rwlockとかね。"
まさみさんは語りたいさんのツイート: "ロックより寧ろメモリバリアをどの場面でどう使うかとかの方が難しい。まあ、基本的には並列性が気になったらatomicを使うこと。"
FreeBSDのread-mostlyロックのソースコードを読んでみた - Qiita
このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ ロックの初期化時にsleep可能か設定して、設定に応じて内部でのロックの取り方が変わる仕組みなんだ。 FreeBSDのread-mostlyロックのソースコードを読んでみた on @Qiita https://t.co/25iu1dOkqS"

スピンロック ‐ 通信用語の基礎知識
ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ
_InterlockedCompareExchange Intrinsic Functions
minix smpのロック実装 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Community Blog - ファイルロックと新OFDロック
失敗ロック例いくつか - 兼雑記
並列プログラミングにおけるロックの効率的な使用 | iSUS
www.nminoru.jp/~nminoru/data/b2con2006_nminoru.pdf
NAKAMURA Minoru's Diary (2009年7月)
Linuxカーネル4.2リリース | OSDN Magazine
分散ロックという名の過ち - Software Transactional Memo
JavaScriptでデッドロックを作ってみた - Qiita
Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する (2) with bpftrace - hibomaの日記
Linux Kernel: カーネルモードで CPU 掴んでるタスクのバックトレースをとりたい - hibomaの日記

ロックフリー

C言語で苦しむロックフリー入門(仮
Lock-freeとWait-freeアルゴリズム - Wikipedia
64-bit Lock-free queue implementation | Syoyo Fujita's Blog
Xbox 360 と Microsoft Windows でのロックレス プログラミングの考慮事項
Fadisさんのツイート: "メニーコアを活かせるプログラミング、極めて有用なロックフリーデータ構造やそれに用いられる手法が特許おさえられてる事が多くて、分かってても残念な実装にする羽目になる事が稀によくある"
冬のLock free祭り safe
Compare-and-swap - Wikipedia
Lock-Free Algorithm, CriticalSection, IHostCrst - NyaRuRuが地球にいたころ
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ロックフリーアルゴリズムで使う不可分操作 Compare-And-Swap (CAS) をデッドロック発見器でモデル化してミューテックスを作ってみた.2つのスレッドが同時にクリティカルセクションに入らないことが(よく見ると)わかる.右の方を見ると,スレッド Q が果敢に挑戦している.涙ぐましい…(T_T) https://t.co/gpIe6kCe5M」 / Twitter
FadisさんはTwitterを使っています 「ロックフリーなデータ構造を実装する上で難しいのは実装すること自体じゃなくて、特許を回避する事だと思う」 / Twitter

楽観的並行制御

ogiwaraさんはTwitterを使っています 「ここ10年間でトランザクションのスループットが100倍になってるんですね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf 何が効いているんですか?」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 元々、ロックを一元管理するデータ構造(Hash tableなど)が当たり前のように使われててかなりキャッシュのパフォーマンスが良くなかったんですよね 今はそういったデータ構造を使う事はタブーとなっています」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 楽観的並行制御、という方法によってreadする時にはlockを取らないようにする、というのが主流になったのも一因ですね」 / Twitter

ベクタークロック

ベクタークロック - Google 検索
ベクトルタイムスタンプ - Google 検索
ベクタークロックと競合検査 - uchan note
データ競合(data race)と競合状態(race condition)を混同しない - Qiita
Efficient on-the-fly data race detection in multithreaded C++ programs - IEEE Conference Publication
FastTrack: efficient and precise dynamic race detection: Communications of the ACM: Vol 53, No 11

futex

Man page of FUTEX
Man page of FUTEX
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「Linux では条件変数は futex で実現されている.面白いことに cond_wait は mutex_unlock; futex_wait; mutex_lock と実装されており unlock と wait は不可分ではないのにデッドロックしない.共有変数版デッドロック発見器による futex および条件変数のモデル化と分析例. https://t.co/Mz7DN4NzOf」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「デッドロックしない秘密(?)は futex が参照する共有変数にある.モデルはここに置いた. https://t.co/ytoAPMjbtJ」 / Twitter
m_prod_cons_futex.ml
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「不可分じゃないとなぜいけないのかという例はこっち. https://t.co/UIpAxNVXWz」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「生産者・消費者問題.セミナーで作るデッドロック発見器を使った例.条件変数の wait はミューテックスのアンロックと待ちに入る動作が不可分とされているけど,試みにこれを分離した条件変数を作って入れ替えてみるとデッドロックする.分離した2つの操作の間でもう1つのスレッドが動けるため. https://t.co/rMd1D3YPuC」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「送受信するデータ量がバランスしていなくて,最終的にデッドロックする例. https://t.co/GSeTKQagV7」 / Twitter

Ticket lock

Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Ticket lock - Wikipedia
Microsoft PowerPoint - 3Sync [äº™æ‘łã…¢ã…¼ã…›]

TSX

TSX

とよしまさんはTwitterを使っています 「CPUのほうのTMはその後どうなったんだろ。出す時はハード屋の出す数字で盛り上がってたけど、その後コア増えまくりなのにソフト屋さんから評価とか出てないような。」 / Twitter
とよしまさんはTwitterを使っています 「STMはそれなりに流行ってるのになぁ。 やっぱCPUのTMは適用しずらいからかな。プログラミングモデル変えて書き換え変えないといけない上に大きな塊で書き換えないと効果薄いし。自分なら大きなライブラリ内で対応・非対応コードをメンテとかやりたくない。しかもスレッドに関わる部分でとか。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim TM のそもそものメリットの1つが雑に書いても結構性能が出る(共有変数の細かいロック制御がいらない)だと思うのですが,マルチスレッドのプログラミングをしてる人は大概玄人でそう言う意味での需要があまりないという点はあるのかなと思っています(昔はまじさんに言われたことでもあるのですが)」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim あとは,「現状の」ハードウェアの TM 実装が Intel/IBM ともに結構制限がきつくて,一定以上の長さのトランザクションは扱えないとか,デバッグ機能が貧弱すぎて原因がさぐれないというのも大きい気がします.というか,共同研究先で学生さんが今デバッグ機能がまともになくて泣いています…」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim ホントに素人がコンテンション気にせず書くとロールバックしまくりで遅くなるわけですしねえ。STXは期待してたのにメルトダウン高速化のためにしか使われてないぞっていう悲しさ。。趣味とCTFで遊んだことありますけど、デバッグしんどいですね。。SDE使えばマシなんだったか」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim たしかに本当に何も知らない人が気軽に書いて使い物になるわけでもないですしね… メルトダウンとかに使われているのは,最初みたときは,ただでさえあんまり使われてないのにこれはサポート切られる流れになるんじゃと暗い気分がありました…」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim 簡単にできる系だと広義にはスクリプト言語一般なんかも入るんですかね.ただ,TX の場合はマルチスレッドのプログラミング自体がそもそも一般にはあんま行われないというのがまず課題?な気もします.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim はまじさんが書かれている glibc のって lock elision を使うやつですよね.これに関しては適切にロックで書かれているマルチスレッドのプログラムであればあんまり副作用なく機械的に置き換えられて,はまれば速くなって良いはずとは思うんですけどそんなに使われていないのですかね.」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim 正直全てを忘れたのですが、 HLE vs RTM という意味で lock elision と言われてるのであれば、 RTM の方を使ってるはず?当時流通具合を眺めてた時のスライドが出てきました https://t.co/q4dEM0myBI 最後のページに僕の記憶にあった「簡単なケースでは速くなってた」、がありますね」 / Twitter
TSX - 使いかたいろいろ - glibc の pthread_mutex_t
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim てっきり HLE の方だと思っていたのですが,RTM でソフトウェア的に実装するものだったのですね. 最後のページのものについては「クリティカルセクション内でN個のうちM個のカウンタをランダムに選んで更新…」とかだともうちょっといい感じになってたかもと言う気はするのですが,なんともですね.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim なんだかんだシングルスレッド性能がまだ上がり続けているので今のところは良いのでしょうけど,いずれそれが止まってしまった時にはみんなでマルチスレッドやってツケを払うような不幸な時代になってしまう事もあるんだろうかなと言う気もしました.」 / Twitter

Intel、TSX対応で約6倍に性能が向上した「Xeon E7 v3」 - PC Watch
北森瓦版 - “Haswell”のTSX命令にエラッタが発見され、無効化される処置がとられる
北森瓦版 - TSX命令のエラッタは“Broadwell”世代で修正される模様
20140906
20150912
20150509
20140823
Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
トランザクションメモリのサポートが明らかとなったIntelのHaswell (4) トランザクションメモリをサポートするハードウェアを推測 | マイナビニュース
トランザクションメモリのサポートが明らかとなったIntelのHaswell (1) マルチプロセサにおけるロックの必要性 | マイナビニュース
Intelの次世代Core「Haswell」のトランザクションメモリを読み解く(前編) | マイナビニュース
Hiromichi Itouさんのツイート: "うーむ セキュリティ最優先な顧客にはTSXを無効化する手段を提供しないとダメかもなー あとTSX登場時には、すでに指摘があったのね https://t.co/4dpFUKjZq1"
TSX improves timing attacks against KASLR | Bromium Labs
scivey/xact: multi-way atomic compare-and-swap with x64/TSX
Restricted Transactional Memory の概要
Intel TSX について x86opti
TSX - TSX RTM
Haswell のトランザクション同期 | iSUS
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
ASCII.jp:Haswellで導入された新機能「TSX」とは? IDF 2012より (2/4)
Haswell の TSX 機能にエラッタが発見される - 教育は参考ブログ
yohさんはTwitterを使っています 「Intel TSX-NI https://t.co/SRl6EEGujc まじで死んでた SDMからも消えたのね」 / Twitter
Transactional Synchronization Extensions - Wikipedia
TSX は cmpxchg のかわりに使えるか? - Fixstars Tech Blog /proc/cpuinfo

Wikipedia

モニタ (同期) - Wikipedia
ミューテックス - Wikipedia
クリティカルセクション - Wikipedia
排他制御 - Wikipedia
同期 (計算機科学) - Wikipedia
競合状態 - Wikipedia
ビジーウェイト - Wikipedia
テスト・アンド・セット - Wikipedia
スピンロック - Wikipedia
イベント (プログラミング) - Wikipedia
不可分操作 - Wikipedia
セマフォ - Wikipedia

Twitter

@uchan_nos

OS作れないマンさんのツイート: "Linux Weekly News の "What is RCU, Fundamentally?" で勉強しよう https://t.co/Ern7KS6QJd"
OS作れないマンさんのツイート: "Sleepable RCUとかあるのか。奥が深い。"
OS作れないマンさんのツイート: "CONFIG_PREEMPTが定義されていない場合、カーネルコード実行中は明示的にSleepしない限りタスクスイッチが起こらないからsynchronize_rcuがうまく動くのか。"
OS自作したい。技術書典6・う38さんのツイート: "Goならわかるシステムプログラミングの話。同期と非同期、blockingとnonblockingは直行する概念?selectは確かに通知が来ない間はブロックするからブロッキングなのは納得するとして、非同期なのか?本文での「非同期」の説明「入出力準備ができたら通知をもらう」に従うと、まあそうなのかな…… https://t.co/oK4WnKSdXK"
OS自作したい。技術書典6・う38さんのツイート: "多分この違和感は「非同期」の認識の違いに起因するんだな。非同期って言うと、ある処理をOSに依頼しつつ、自分は別の処理をする、という感じがする。selectは、OSに頼んだ複数の仕事の完了を待つ感じなので、仕事が複数になっただけで、あくまで同期処理な気がするんだ。"
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uchan_nos 前提としては,そのatomic変数を共有メモリ上で共有していて,かつatomic性が保証されている必要があります。なのでたとえば,共有メモリでのatomic性を一般には保証しない分散処理をしていると前提が容易に崩れます。」 / Twitter
yohさんはTwitterを使っています 「@uchan_nos FYI: https://t.co/ocoKLlkO3f "The execution of a program contains a _data race_ if it contains two potentially concurrent conflicting actions, at least one of which is not atomic, [...]" でした」 / Twitter
[basic]

スピンロック

Livaさんのツイート: "アトミック命令のコストによって、スピンロックの性能は変わるなぁ。もうちょっとちゃんと検証しないと #liva_notebook"
Livaさんのツイート: "gcc builtinで書けば、__sync_fetch_and_addが使えるならそれを使うのが一番はやくて、__sync_lock_test_and_setがそこそで、__sync_bool_compare_and_swapはとても遅い #liva_notebook"
Livaさんのツイート: "たぶんアーキテクチャ依存だから、silvermontがそう、というだけの話なのだけども #liva_notebook"
Livaさんのツイート: "silvermont(但し1チップの中に64コア詰まってる)"
Livaさんのツイート: "O2つけただけでがクラッシュする問題、結局アラインメントと適切なvolatileが不足してたオチっぽい #liva_notebook"
Livaさんのツイート: "スピンロックを実装する時は、いろんなループにasm volatile("":::"memory");を挟んで最適化を抑制しないといけない。何時も忘れる。 #liva_notebook"
Livaさんのツイート: "ほんの些細な排他制御のミスがあるお陰で、12コアでは動いても256コアでは動かない問題アゲイン"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「一昔前に、Linuxカーネル開発者「スピンロック使うな」、DB屋「性能に必要」という論争があった記憶…スケジューラ周りの合理的な挙動変更なのにDB側スピンロックだけ性能低下、みたいなコンテキストだったかな。 https://t.co/PGVny5T4Ia」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「スピンロックしてる間にスケジューラによってプリエンプションされるケースというのは普通に起こるのでそういう場合にMCSキュー内での追い越しを許容してスループットを高めるスケーラブルなスピンロックCST-Lockというものがあってですねっていう話を期待されている?」 / Twitter
reroさんはTwitterを使っています: 「@kumagi 普通のスピンロックだとNUMAのとき不平等になりそうとか、最悪時間が予測できんとかデメリットもありそう。割り込みとポーリングとかだと違う話になるかもしれんけど。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian NUMA向けに改良されたスピンロックも結構研究されてます。Lock Cohortingあたりでググると良い入り口になるかと。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi 同一NUMAノード内で待ち行列を作って、待ち行列先頭がグローバルロックを取る。待ち行列が尽きるまでグローバルロックを離さないことで、NUMAノード間での頻繁なロック切り替えを抑制して整流するみたいな感じかな?」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian そんな感じです。MCSでRW-Lockとか亜種がたくさんあります。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi NUMAノードが3個以上の場合はグローバルロックでも待ち行列を作るのかな?って書いてて思ったけど、これトークンリングっぽいので障害とかに弱そう。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian 一般にNUMAでもマルチコアでもどれかのコアやソケットが壊れる系の障害は潔く諦めています。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi なるほど、そうなのか…」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi スケジュールされるんだったらspinlockじゃないような気がする(実装をミスっている?)んですが、ユーザ空間で実装する人はそういうのも含めてspinlockって呼んじゃうんでしょうか?個人的にはSCHED_FIFOみたいな完全オレオレ制御RTタスクだけが使うものかと思っていましたが・・・。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 何をスピンロックと呼ぶかに流派があるっていう話ですかね。インメモリDBの文脈でユーザ空間でスピンロックする人などは割と普通にそういう実装使いますよ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi おお、そうなんですね!ユーザ空間でspinlockは実装できるけど、個人的には普通のアプリでは全く無意味だと思っていました。(意味があればlibcなどで定義してそうとか)」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 大学の授業でpthread_mutexと自作スピンロックで簡単なベンチマークをやったような覚えがあります。速度のためならスピンロックという選択肢は割とよく有ります、1桁ぐらいは性能が違ったはず。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi クリティカルセクションのサイズの問題はありますが、システムコールするとしないとでは大違いですからね。ただ、不平等性などが発生する可能性はユーザが受け入れるか対策すべきという話ですかね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@mhiramat 探してみると、この辺の話ですね。 https://t.co/4i4ZQ7Ivgq」 / Twitter
怒りのLinus――メンテナにかんしゃく玉爆発(1/2) - @IT

排他制御

ロックフリーのkumagiさんのツイート: "そうなんです、排他処理の話をするときにすぐに「ロックの実装にはTestAndSetやCompareAndSwapみたいなread-modify-write命令が絶対必要」って誤った知識をばらまく不勉強な人が大学教授にも散見されるのでこの季節は警戒が必要です。"
ロックフリーのkumagiさんのツイート: "もちろんxchg命令を使えっていう意味でもないですよ。当然ですよ。"
satさんのツイート: "排他制御 == ロック と思ってる人は感覚的にかなり多いですね… "
ロックフリーのkumagiさんのツイート: "セマフォさんが悲しそうにこちらを見ている…… "
Kazuho Okuさんのツイート: "ケースバイケースなんじゃないかな。例えば消費期限が短い場合に家で消費し切れないようなケースなら、奥のやつを取る方が資源の有効活用になるはず… "
まさみさんは語りたいさんのツイート: "これ、あまり良い習慣とは言えないよね。… "
satさんのツイート: "compare and swap: スーパーで自分の手に取った牛乳を陳列棚の奥のほうにある賞味期限が長いものと交換してカゴに入れること"
まさみさんは語りたいさんのツイート: "極端に消費期限が短い場合はそうですね。牛乳とかは微妙かな。うちでは消費速度が一定していない気がする。… "

モデル検査

histric

Kazunori Iriya さんはTwitterを使っています: 「でけた。セミナーで学んだイベント同期による相互作用のモデルの説明に出てきた並行合成の例を自分のコードでも再構成できた! 左がお手本、右が自分のコード。イベント同期まだ一部しか実装できていない。ぼちぼち実装していこう。これまでのソースはこちら。https://t.co/0MBgOGLKUT https://t.co/FdP7l8QZUk」 / Twitter
composition_prep.js
いけべさんはTwitterを使っています: 「Mutex をプロセスで表現する。 Free 状態では lock イベントに応答して Locked に遷移し、逆に Locked 状態では free イベントに応答して Free 状態に戻る。 https://t.co/wLqMiqQF8a」 / Twitter
いけべさんはTwitterを使っています: 「この Mutex と協調して共有メモリープロセスを触る Muter プロセスを定義する。 lock を提示してから共有メモリーに read を投げ、得られた値に 1 を加えて書き戻す。そして free を提示する。 https://t.co/RPiHoV3WlS」 / Twitter
いけべさんはTwitterを使っています: 「ここで二つの Muter プロセスを(同期イベントなしで)並行合成する。すると非常に大きな遷移を持つプロセスになる。(一方のプロセスから他方のプロセスの全状態に遷移しうるので、組み合わせで巨大になる) https://t.co/UJNcwkOgDk」 / Twitter
いけべさんはTwitterを使っています: 「お互いの提示するイベントに関心のない Mutex プロセスと共有メモリープロセスも並行合成する。 ロックされていない状態でも書き換えを受け付ける(!) https://t.co/ua562xSLFL」 / Twitter
いけべさんはTwitterを使っています: 「ここで並行合成した二つのプロセスを、 lock, free, read, write を同期イベントに指定して並行合成する。 すると、結果はご覧のとおり。 ふたつの Muter は他方が lock を取って読み書きする間お行儀よく待つようになる。遷移の可能性は極端に少なくなり共有メモリーには無事 2 が書き残される。 https://t.co/NSbA3bgdlY」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有変数(共有メモリ)とロック・同期機構を組み合わせて作るマルチスレッドプログラミングは難しいけど,メモリを共有しない非同期メッセージングを主体としたプログラミングもまた難しい.つまり難しい…」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「いずれにせよ,詳細化検証を体験すると大きく認識が変わると思うのだけど,ギャップがあるので,まずは振る舞い全体の可視化からはじめて,ゆっくり段階的に進めるという感じです…」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「非同期メッセージングをプロセス・スレッド間相互作用とするシステムの検証は、仕掛り的な中間状態が多くて比較的難しい。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有メモリと同期機構を組み合わせたマルチスレッドプログラミングでは、デッドロックや安全性、ピンポイントのライブネスのようなものは検証しやすいけど、観測対象をうまく選べなくてなんというかある範囲の振る舞いを網羅するような正当性検証が難しい。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「状態空間を状態変数で規定する状態ベース仕様のための Alloy が欲しい。てか、状態状態うるさい。Z3 でつくるか…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチスレッドプログラミングにコードレビューとテストだけで臨むのは厳しい.(広義の)モデル検査はテストでは見つけることが難しい問題を発見できるので設計を支援する強力な武器になる.道具として役に立つだけでなく,使い方を学ぶこと自体が設計力をつける訓練になる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「モデル検査で使われる表現形式はプログラミング言語よりも抽象的なレベルで動作や性質を記述できる.単なるお絵描きとは異なり「動く」ので強くフィードバックがかかる.システムを抽象的に表現し理解を確認・共有できる.これにより品質保証だけでなく設計の選択を広く素早く検討することにも役立つ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドのコードを書いてる(レビューも)ときは全体のことを想定しているつもりでも,実際には想定しきれないほど組み合わせ状態がある.視覚的に見ればわかる.200行程度のコードでそれが確認できる.するとその上でどう検証すればいいかという可能性が見えてくる.そしてステップアップできる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセス代数 CSP (Communicating Sequential Processes) の表示的意味論と操作的意味論のトレースモデル上での等価性証明を公開した.Isabelle/HOL 2014 による.構文は CSP-Prover に合わせてある.領域は Isabelle のライブラリにある完備束を使用. https://t.co/sppc98Cz82」 / Twitter
hatsugai/CSP-semantics
hatsugai@PRINCIPIAさんはTwitterを使っています 「CSP の詳細化検査ツール SyncStitch で使っている主要なアルゴリズムはほぼすべて Isabelle で証明した. - 表示的意味論と操作的意味論の等価性 - 操作的意味論上で定義した表示での詳細化関係と弱模倣存在の等価性 - 発散検出アルゴリズムの正当性 証明していないのは安定失敗のとこ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「通信するシステムの仕様を表現し検証するためには、視点をシステム内部の状態から外部との相互作用に移す必要があります。新しい視点と表現形式の獲得、これがポイントです。「並行システム?関係ない」と思うかもしれませんが、いまや通信しないシステムはほとんどありません。おすすめの技術です。」 / Twitter

hatsugai@PRINCIPIAさんはTwitterを使っています: 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「表現形式というのはそれだけで力を持っている。表現が手に入るとさらにその上での操作という武器が手に入る。さらにさらに問題の傾向と対策がレシピあるいはヒューリスティクスとして整理できる。つよい。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器で使うアルゴリズムの基礎になる定理を Isabelle で証明した.非決定的な遷移系 P と決定的な遷移系 Q の間に非対称な弱模倣が存在すれば P のトレース集合は Q のトレース集合に含まれる.単に非決定的であるだけでなく内部遷移がある. https://t.co/aslrTzxJ4y」 / Twitter
hatsugai/simulation_traces: Formal proof by Isabelle/HOL: Existence of asymmetric weak simulation between a deterministic transition system and a nondeterministic transition system implies the inclusion of traces.

histric-1

中村 実さんはTwitterを使っています: "POSIXのread-writer lockがwriterがブロックされた後に、後参のreaderがロックを獲りにいった場合にロックを獲れるかブロックされるかは実装依存なのね。 https://t.co/o7mtqLE4K0"
Urabe, Shyouheiさんのツイート: "@yukihiro_matz 結局イベントループで使おうかと思うとブロックする箇所はepollなりkqueueなりの一箇所に集中してくれないと困るわけで、そうなってくるとkqueueのように「なんでも待つ」というAPIにしてくれたほうが使う側は便利です。というかepoll不便。"
shinichiro hamajiさんのツイート: "こさきさんの言う通りlinuxはなんでもfdて思想なんだろうしepoll不便はイチャモンすぎない…というのはともかく、linuxの方向性としてはuserlandで新fd種を定義できると良かったりするのかなぁとかそういう https://t.co/2Ucw8Venq3"
Rui Ueyamaさんのツイート: "@kumagi さすがズバリ。"
The Art of Multiprocessor Programming - 第七章前半
第6章 カーネル
Rui Ueyamaさんのツイート: "前回はカーネルスレッドのレースコンディションで猛烈に大変なデバッグをするはめになったから今回はロックじゃなくてチャネルと通信を使って同期するようにしよ。もうあれはこりごり。"
satさんのツイート: "@yutakakn Cというかlinuxカーネルにはseqlockという楽観的排他の実装があります。read側はとりあえずロックかけずにデータを参照して、データが更新されていることを事後に確認したらやり直し"
Fadisさんのツイート: "ハザードポインタ、少なくともx86においてはポインタ長の倍の長さのCASの登場によってどうしても欲しい代物ではなくなったんだよな"
ABA問題 - Wikipedia
Kazuho Okuさんのツイート: "auto fiberより、基本関数呼び出しは同期オブジェクトを返して、そいつをjoinすると結果が返るみたいなのが好き。そうすればselectみたいにreadとwriteとか文脈ごとに待ち受けコンテクストを用意する必要なくなるし"
SODA Noriyukiさんのツイート: "実は最近公平性で問題が出てticket lockで一旦は解決したんですが https://t.co/Qf0VqKKRAC ticket lockの場合、負荷をかけるとこの条件変数待ちでグルグルCPUを消費するという問題がでて、結局 @yamasa さん式の奴 https://t.co/1HqQbQOQ1O で解決しました。… https://t.co/Hq1Ulxdqzn"
Fadisさんのツイート: "ロックフリーとか頑張っても性能が出るかはアクセスパターン次第だからな。たくさんのスレッドがつつくリソースを高速に捌くためにまず検討すべき事は「それって本当に共有する必要があるの」だよ"
汎用kumAGIさんのツイート: "「STMの設計と進化」も同様にslideboomにしか置いてなかったっぽいのでdropboxに上げ直し。内容は古いけどSTMの研究するならスターターセットとしてオススメしたい資料。 https://t.co/8CpBiHBBY4"
STMの設計と進化_.pptx
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy/IPMsgの自作condは、broadcast相当しか用意してないなぁ。 (一つのcondで待つスレッド数は最大2~10程度) そろそろ、XPは完全切り捨てして Win32 CONDITION_VARIABLE(長い!)を使った方が良いかな。… https://t.co/B56vN00rwY"
SODA Noriyukiさんのツイート: "多コアで broadcast はアカンので signal 推奨じゃないかと思います、たぶん。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "よく考えたら、VS2017なら(C++11以降で導入された)std::condition_variable が使える?(XPでも)"
FadisさんはTwitterを使っています: 「Vulkan 1.2の規格がリリースされた。Vulkan 1.2では「Aが済んだらn増える」「mに達したらBを開始する」ができる新しいセマフォ timeline semaphoresが標準の機能に入る他、シェーダの言語にHLSLを使いやすくする複数の拡張が取り込まれる https://t.co/eRTOlp4OON」 / Twitter
Khronos Group Releases Vulkan 1.2 - The Khronos Group Inc

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「条件変数のコーナーケースの話。 そういえば、'96年頃のUNIX系のネイティブスレッド環境利用が難しかった時代、プロセス間条件変数を自作したが、いろいろと苦労した記憶。 特にwait()=ロックを外す&眠る2操作のギャップに、notify()が実行されると永遠にwakeupせずと。 https://t.co/Ka3XdhyrGj」 / Twitter
条件変数とダンス(Two-Step Dance)を - yohhoyの日記
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「notifyを取り零すことなく眠る」を実現するため、sigmask交換とsleepをatomicに行えるsigsuspend(2)というsyscallを使ってようやく解決。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu pipeのwriter側への1バイト書き込みを semaphore への post reader 側からの1バイト読み込みを semaphore の wait の代わりに使うって手も… これならベル研時代のUNIX でも使えるし(ぉ post が PIPE_BUF を越えて溜まる可能性があるような応用だとまずいですが…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど、普通の用途なら使えそうですね。 なお上記のinterproc-cvには、大量のメモリinodeの利用権確保用でした。=wakeup通知はそのinode開放を待つプロセス群のみwakupしたいと。 (実際の実装だと、開放側は眠りprocリストを走査&開放予定inode番号待ちのprocのみにsig送信してました)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu なるほど。ディスクリプタですから、あまり沢山作るのは避けた方が良くて、その用途だと使えそうにないですね…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「マルチスレッドプログラミングは同期や排他制御が難しいけど、実は起動と終了も難しい。例えば準備ができる前に走り始めちゃうスレッドがいたり、誰かがゴールを見つけたのでそのことを他のスレッドに通知して終了してもらったり。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「async/awaitによる非同期が特段に難しいだけで、スレッドモデルで考えれば並列処理そのものはそれほど難しくない。」 / Twitter
まっちゃらさんはTwitterを使っています 「wait-free/lock-free/obstruction-freeの定義について https://t.co/TQSWWDKRt2 定義だけじゃなくて直感的理解とかリアルワールドのことも書いてあって最高に勉強になった」 / Twitter
obstruction-free
mumumuさんはTwitterを使っています 「Ad Hoc Synchronization Considered Harmful [OSDI '10] システムの同期プリミティブを使わないで独自に同期機構を実装することをAd Hoc Sync.と名付け,いくつかの並列プログラムに含まれるAd Hoc Sync.とそのバグ数など定量的な調査を行い,ソースコードから自動でそれらを検出するSyncFinderも実装」 / Twitter

スケジューラ

その他

今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
マイクロサービスアーキテクチャにおける分散スケジューラ
Goのワークスティーリング型スケジューラ | プログラミング | POSTD
はじめてのにき(2017-11-03)
ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
CoreOS Container Linuxにおいてリアルタイムプロセスを実行できない問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
マルチプロセッサのタスクスケジューリングに基づいたWebシステムにおけるコンテナのハードウェアスケジューリングのシミュレーション構想 - 人間とウェブの未来
Google、マネージドCronサービスCloud Schedulerを発表
GameTechDev/GTS-GamesTaskScheduler: A task scheduling framework designed for the needs of game developers.
3-CNF SATからpolygraphのacyclicity判定問題への帰着 - すぴすらのろぐ
List of order theory topics - Wikipedia
CiNii 論文 -  単一仮想記憶型OSにおける外部スケジューラの実装
Rustのasync/awaitとスケジューラの話 / rust-async-await - Speaker Deck
000055579.pdf
uchanさんはTwitterを使っています 「リアルタイムOSについて素人でよく分からないんだけど,例えばプロセスのリストをforで処理したりすると,もうそこで処理時間が読めなくて詰む,みたいなことは無いの?」 / Twitter
KubernetesのCPU limits設定時における「不要なスロットリング」を回避する方法とは? - GIGAZINE
Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち

big.LITTLE

Izumi TsutsuiさんはTwitterを使っています 「bit.LITTLE みたいな symmetrical でない MP を OSはどう処理しているのか、みたいな解説ないんかな(これを低レイヤ質問室に投げればよかったのか)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tsutsuii ググったところARM的な公式ページは Energy Aware Scheduling (EAS) https://t.co/we4UELISJa っぽい。 ここから辿れるOSPM summit https://t.co/wrBaR20QJ0 にスライドがあった。 ちゃんと見てないけど OSPM II 2018/04/18 の https://t.co/dnadJUfCTh とか詳しそう」 / Twitter
Linux Kernel | Energy Aware Scheduling (EAS) – Arm Developer
Home of the OSPM Summit 2020
Energy-Aware real-time task partitioning - Parallel or Sequential? - EATaskPartitioning.pdf
suzakiさんはTwitterを使っています 「@n_soda @tsutsuii bit.LITTLE(ヘテロコア)におけるスケジューリングは興味があったので調べてみました。 2013にSamsungがDVFSを使った論文を出しています。 Power-aware task scheduling for big.LITTLE mobile processor https://t.co/l7wVWFDj25 これも決定打ではないですが。」 / Twitter
Power-aware task scheduling for big.LITTLE mobile processor - IEEE Conference Publication

NUMA

Raphine Project

256コアマシン向けのOSを作る – Raphine Project<サイト製作中>
livaの雑記帳(2016/10) – Raphine Project

デュアルソケット・ザ・ワールド

デュアルソケット・ザ・ワールド Windows 7 で NUMA が認識されない件に付いてMicrosoftのサポートに問い合わせてみる
デュアルソケット・ザ・ワールド NUMA (Non-Uniform Memory Access)

AMD

Kazuho Okuさんのツイート: "コアの半分以下しか使いきれないソフトウェアだと、このほうがパフォーマンス上がるし、ゲームとかベンチ対策考えると妥当な設計な気がする / “【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのア…” https://t.co/hxMq34LTSe"
【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのアーキテクチャ - PC Watch
品川 高廣さんのツイート: "Linux カーネルの automatic NUMA balancing は Ryzen Threadripper 2990WX とはあまり相性が良くないんだろうか。オンにするとかえって遅くなるらしいんだが。"

RHEL

23.31. NUMA ノードの管理
第4章 CPU
8.2. NUMA の自動負荷分散
8.4. NUMA 対応 KSM (Kernel SamePage Merging)

MS

Hyper-V 仮想 NUMA の概要
VMM での仮想 NUMA の展開

blog

NUMAとメモリとゲームとサーバ | ツチノコブログ
NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
SQL Server と NUMA at SE の雑記
[パタヘネ:読書メモ]第7章 マルチコアとマルチプロセッサとクラスタ
VMworld 2014速報: Breakout Session 【vSphere / vCenter Operations Manager】編!! - Japan Cloud Infrastructure Blog - VMware Blogs
NAKAMURA Minoru's Diary (2013年2月)
NAKAMURA Minoru's Diary (2013年6月)

Wikipedia

NUMA - Wikipedia
Non-uniform memory access - Wikipedia

NUMA 向けのアプリケーションの最適化 | iSUS
MCAPI事例: マルチコア設計におけるCPU間通信 - Mentor Graphics
Microsoft PowerPoint - Arakawa-20110715.ppt
matsutani_kyushu2008.pdf
KeyStone マルチコア DSP トレーニング | デジタル・シグナル・プロセッサ | TI
Topic cloud/ja - NAIST Ito-Lab - ITS, Mobile and Cloud Computing
Microsoft PowerPoint - shohei-g.poster.pptx
マルチコア組み込みシステムの挙動、
タダ飯を食わせろ
C02.pdf
Slide 1
qemu/KVM を実行してて、Auto NUMA Balancing と ksm の食合せが悪い場合のワークアラウンド “ echo 0 > /proc/sys/kernel/numa_balancing” もしくは ksm を停止 - hiboma のコメント / はてなブックマーク
HPCシステムズ HPC Do It Yourself Clubへ
FadisさんはTwitterを使っています: 「NetflixがFreeBSDのカーネルのネットワークスタックを改良したらEPYCでの帯域が3倍になった話。200Gbpsでデータを吐き続けるサーバにとってNUMAノード間をデータが往復するのは許容できないオーバーヘッドらしい https://t.co/U049CYwMeo」 / Twitter
Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance - Phoronix
FadisさんはTwitterを使っています: 「ネットワークガチ勢は皆カーネルを迂回すると思っていたけど、カーネルを魔改造する一派も居るんだな」 / Twitter
FadisさんはTwitterを使っています 「NUMAなマシンでは、プロセスが使用するメモリとプロセスを実行するプロセッサを同じノードにしておかないと性能ガタ落ちだから、Linuxカーネルは新しいスレッド(=現在のノードのメモリを共有する)を可能な限り同じノード内のプロセッサで動かすような割り当てを行う筈」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs cgroupsのcpusetを使うと、特定のグループのプロセスが使って良いプロセッサを制限できます。確かnumactlに--physcpubindをつけた場合裏でこれを設定していた筈。」 / Twitter

Processor affinity

プロセッサ親和性 - Wikipedia
Processor affinity - Wikipedia
Tech TIPS:Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する) - @IT
Linux - CPU プロセッサアフィニティ(親和性)の設定! - mk-mode BLOG
プロセスへのCPU割り当てについて
DO’s&DONT’s #14: 絶対にやってはいけないこと – ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする – Microsoft SQL Server Japan Support Team Blog
25.6. KVM プロセッサーアフィニティの設定
CPU/Processor Affinity - SyncHack
北森四葉さんはTwitterを使っています 「Ryzen Threadripper 3990X、Processor Groupの問題が取り上げられてるな https://t.co/yksMCIxRB4」 / Twitter
The Windows and Multithreading Problem (A Must Read) - The 64 Core Threadripper 3990X CPU Review: In The Midst Of Chaos, AMD Seeks Opportunity
Usagi Ito 👩‍💻 High-tech Hermit 🧙‍♀️さんはTwitterを使っています 「なるほどWindowsだと見えるコアが64を超えるとアプリ側で特別変態的にアフィニティー制御を入れて作ってない限り悲しい事になるのね。」 / Twitter
北森瓦版 - Ryzen Threadripper 3990Xが解禁される
Windows 10 Proは128スレッドのAMD Ryzen Threadripper 3990Xを処理できない - 自作ユーザーが解説するゲーミングPCガイド
Windows10+Ryzen Threadripper 3990X問題について整理してみる - 自作ユーザーが解説するゲーミングPCガイド

Tickless カーネル

Twitter

ゆたかさん🐬さんのツイート: "ticklessカーネルだと、1ミリ秒ごとにタイマ割り込みが動かないので、CPUがアイドル状態でCPUの負荷を抑えられるのです。 https://t.co/qBxrbmMvnt"
ゆたかさん🐬さんのツイート: "RHEL6やWindows8などの比較的新しいOSでは、ticklessカーネルなのでタイマ割り込み自体で時刻管理するのではなく、クロックソースを使います。 OSに負荷がかかると時刻が遅れるということはないですが、クロックソースのチップで時刻精度が変わってきます。 https://t.co/brG73hwD46"
Fadisさんのツイート: "紛らわしいからソフトリアルタイムを指すリアルタイムはインタラクティブって呼ぶようにしてる"
Fadisさんのツイート: "ハードリアルタイムで大事なのは、処理が早いかじゃなくて、ある決まった時間内に処理を完了させる事をシステムは保証できるか、だよ。プロセッサがその処理を片付けるのにかかる最長の時間は明確か、とかOSはその処理が完了する前にその処理を中断させる事が無いかとかそういうところが問題になる"
とみながたけひろさんのツイート: "仮想メモリやキャッシュが存在しない環境がなくなりつつある今、私の期待するリアルタイム性はもはや「一番優先度が高いスレッドがCPU時間を全部とれる」ぐらいになりつつある"
とみながたけひろさんのツイート: "最近はLinuxでさえticklessになったし、OSのリアルタイム性よりもUSBのパケットが1msecに一度しか送れないとかそっちのほうが辛くなりつつある"
とみながたけひろさんのツイート: "「無限のCPUパワーでビジーループしててもスレッドが勝手に切り替わったり、スレッド切替粒度が1秒に100回しかなかったりだとつらいだろ?」というの、後者はticklessで解決したし、もう前者があればなんとかなるじゃん、CPUパワーはなくともコア余ってるし、みたいな(電池環境だとそうもいかないけど)"
とみながたけひろさんのツイート: "なおLinuxはデフォルトだとリアルタイムスレッドにはCPU時間の95%ぐらいまでしか使えないので完全なビジーループはできない(5%ぐらいはフツーのスレッドに時間が強制的に割り当てられてしまう)。一応0にできるが大抵の場合は設計ミスだと思うし、そこまでギリギリだと多分0にしても問題は解決しない…"
とみながたけひろさんのツイート: "20年ぐらい前に、Linuxでsnes9xを書いてた頃は「くそーVBlank周期の59.83fps=16.72msec待ちたいのに無駄にたくさん待ってしまう。なんだこのOSはー」とか言ってたわけだが、今や普通に100nsecぐらいの精度でスレッド切替できるのだった。そう、時代は流れたのだ…(当たり前"
とみながたけひろさんのツイート: "まあ裏では多分「ハードリアルタイム」なOS他が動いているマイコンが内蔵された、細かい仕様は教えて貰えないIPやチップがあるからこういう楽ができるんだろうけど、まあ、いい時代になったということで…(本当か?)"
とみながたけひろさんのツイート: "多分このツイートをしている環境だけでも、無線LANやBTのチップ、HDDやSSDのコントローラー、各種PMIC、USBコントローラー、LCDのパネル制御、…とかで、私のような軟弱プログラマが書いたのではない「プログラム」が動いているんだろうなあ"
とみながたけひろさんのツイート: "「インターフェース」とかに、昔はRTOSにおける待ち行列モデルとか色々細かく解説記事が出てたけど、もうそういう時代じゃないんだよな…(こんなこと書いてる自分もほとんど忘れている)"
とみながたけひろさんのツイート: "ガチのOS研究している人に怒られそうなのでこのへんで止めとこ…(すでに無知をさらしている感じのところがいくつかあるが実際そうだしまあいいや…"

jiffies ‐ 通信用語の基礎知識
Ticklessカーネルとクロックソースに関するお話 - めもめも
2.4. Tickless カーネル
3.6. Tickless Kernel
LinuxのFull ticklessを試してみた
Timekeeping in VMware Virtual Machines
LinuxKernel - ソフトウェアエンジニアリング - Torutk
各々の生き方: Chromeの不具合?とWindowsの仕組み
jiffies更新を追いかける - Linux関係メモ@宇治屋電子
【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
「Haswell」って何だ? 第4世代Coreプロセッサが採用するアーキテクチャのポイントを一気に押さえよう - 4Gamer.net
[まとめ]Linuxシステム時刻について - Akira's Tech Notes
Clock / Timer
9月版 タイマにまつわるエトセトラ(1/2) - @IT
時刻と時間の管理、プロセスのスケジューリング
今更Sleepの解説するなんて、と思うのです。
Linuxのしくみを学ぶ - プロセス管理とスケジューリング
カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第3回 IAマシンのもつ各種計時ハードウェア~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第4回 タイマーハードウェアの抽象化~ | VA Linux Systems Japan株式会社

TSC

MSR_or_ハードコーディング

Time Stamp Counter - Wikipedia
x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs [Linux 4.10] - Linux Kernels
Getting TSC rate in x86 kernel - Stack Overflow
[tip:x86/timers] x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
[4/4] x86/tsc: set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
[v3] x86/tsc: add X86_FEATURE_TSC_KNOWN_FREQ flag - Patchwork
[U-Boot] [PATCH 6/6] x86: tsc: Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr()
[PATCH 0/9] x86: TSC calibration update - Google グループ
mOS/tsc_msr.c at master · intel/mOS
社会人でもOSを作りたいさんのツイート: "PCのタイマーぜんぜん分からん… 正確に時間を測るの不可能では?"
社会人でもOSを作りたいさんのツイート: "まず、驚くことにHPETがレガシーデバイスとして分類されてるIntel製のチップセットがあるので、レガシーフリーを目指す身としてはHPETは避けたい。すると、周波数既知のタイマーとしてはACPI PM TimerかInvariant TSCということになる。(続く)"
社会人でもOSを作りたいさんのツイート: "Invariant TSCの周波数はMSRから取得できるのだが、BIOSの設定でバスクロックが変更されているとタイマーにズレが出る。ACPI PM Timer は、最近流行りのHardware-reduced ACPIでは搭載されてない可能性がある。"
beepcap@HTTPSの強制には反対さんのツイート: "不可能だよ?… "
社会人でもOSを作りたいさんのツイート: "不可能だってことなので、まあ適当にしとくか、という気持ちになった"

CPUクロックに基づく相対時刻の計測
本の虫: 100ナノ秒ぐらいの分解能をもつクロック実装
Livaさんのツイート: "雑魚すぎてTSCの情報を取ろうとして嵌った。ずっとこのページとにらめっこしてて、答えがちゃんと書いてあるのに、華麗にスルーしてた。 https://t.co/GVudVa6n4O"
arch/x86/kernel/tsc.c : set X86_FEATURE_ART for TSC on CPUs like i7-4910MQ : bug #194609 - Patchwork
Livaさんのツイート: "CPUID 15hでTSCの詳細な値取れるじゃーん、あれでも取ってきた値おかしくね?ってずっと悩んでたのだけど、boot_cpu_data.cpuid_level == 13、つまりCPUID 0Dhまでしか取れないから、15hで取った数値になんの意味もない"
AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ
Converting Sandy Bridge TSC to wall clock time
Time Stamp Counters - atp
andyphillips/time_stamp_counters
LKML: Thomas Gleixner: Re: [PATCH] x86/tsc: Always Running Timer (ART) nanoseconds clocksource
時間を計測する
dterei/tsc: Quick and dirty TSC access for benchmarking
TSC frequency variations with temperature
Pitfalls of TSC usage | Oliver Yang
Invariant TSC を 使う - Qiita
Page 1424
bits-2003

Local APIC timer

yuYabu☕️さんのツイート: "今から自作OS作るならPIT,RTC,HPETは使わない方がいいらしい。 #osdev_moku2"
yuYabu☕️さんのツイート: "HPET重要な特性:HPETはmemory maped deviceなのでosを介さずに直接アクセスできる。 RT mark.ユーザー空間にキャッシュできる。レジスタをOS経由で触るよりメモリを参照する方が早い。まだまだ使える(レガシーではない)"
錆ありはぐれベアメタルさんのツイート: "お客様の中にintelの中の人は居ませんか? #osdev_moku2"
yuYabu☕️さんのツイート: "これからの自作OSで利用するタイマー構成は  ACPI PM Timer(初期時計)+Loal APIC Timer(普段使い)がおすすめらしい #osdev_moku2"
社会人でもOSを作りたいさんのツイート: "タイマーイベントの管理は,最小・最大ノードをO(1)で見つけられるヒープツリーが用いられることが多い. #osdev_moku2"
Timers
Nerry さんのツイート: "lapic timerそもそも計測しないと周波数わからない時点で正確なクロックソースとして信用できないことに気付いた。"

アイドル状態

【やじうまPC Watch】ノートPCのバッテリを過剰消費しているChrome長年のバグが解決へ? - PC Watch
本の虫: Google Chromeを使うとファンの回転数が上がる理由
Shinji KonoさんはTwitterを使っています 「マウスの位置をリアルタイムで取得して記録するアプリで「CPU100%」になるのを防げという課題を出したことがあるのだが、誰も解けなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「sleep入れるだけなんだが、言われないとわからないもの。その辺りがOS/マルチタスクを理解してるかどうかってことなんだが…」 / Twitter

バックグラウンド処理

「Google Chrome 57」にはバックグラウンドタブの電力消費を抑える仕組みが導入 - 窓の杜
Google Developers Japan: バックグラウンド タブによる電源消費量の削減について

スタッター

【CPU】 超多コアCPUでゲームをするときの注意点 : ニッチなPCゲーマーの環境構築
スタッターの英語・英訳 - 英和辞典・和英辞典 Weblio辞書

コンテキストスイッチ

fiber

c++ - How do stackless coroutines differ from stackful coroutines? - Stack Overflow
Ryou Ezoeさんのツイート: "すごい、ファイバーのコンテキストスイッチのコストとかを示すためにWandboxが使われている。 https://t.co/WXNeFk8A99 https://t.co/IJzj8EyiKG"
Ryou Ezoeさんのツイート: "Fiber(stackful coroutine)は歴史上何度も試みられてきたがパフォーマンス上の恩恵が全くないのでやめておけ。今まともに使っているのはGOだけだがペナルティが大きい。 https://t.co/WXNeFk8A99"
p1364r0.pdf
技術書典6・う38 デダルス・ユメノさんのツイート: "OSスレッドの切り替えには大量のレジスタ退避、復帰処理が必要だが、goroutineの切り替えはプログラムカウンタ、スタックポインタ、DX(多分RDXレジスタのこと)だけで済むらしい。協調マルチタスクの強みやな。 https://t.co/B8eQ4T7NyD"
How Goroutines Work · Krishna's words
技術書典6・う38 デダルス・ユメノさんのツイート: "どうやら,context registerと呼ばれる役割らしい https://t.co/gPKnrPIaDX… "
go - What is a context register in golang? - Stack Overflow
coroutineとasync/awaitのあれこれ - Qiita
async/awaitと合成可能性 | κeenのHappy Hacκing Blog
言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(3) - Qiita
future - Wikipedia
(ネタ)ユーザー空間だけでプリエンプションする - livaの雑記帳
コルーチンプログラミング - 増井俊之
ntaooさんはTwitterを使っています 「DartのIsolate (Actor Model) の基盤の上での、Single thread event loop モデルは、やはり扱いやすくていいなと思います。適切に高い抽象度でプロセスとスレッドを扱えますので... https://t.co/mQS6zLF8oA」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@ntaoo 割り切りとしてとても良い落し所ですよね。パフォーマンスオタクからすると言いたいことはあるんでしょうけど、そういう人たちは、Platform/Dart ffiの方に案内すればいいですからね。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Kotlinもさ、正直、コルーチンとかも良さげに見えて素人には罠だらけだと思うんだ。やっぱりマルチスレッドは常人には無理だよ。」 / Twitter
ntaooさんはTwitterを使っています 「@espresso3389 そうですね。割り切って真にパフォーマンスが必要なごく少数の箇所はネイティブに移譲しつつ、クライアントサイドアプリケーションプログラミングの事情に沿ったIsolateの設計だと思います。もっとメニーコアになって対応が必要な時代になったら、ErlangのActorのアプローチを参考に進化するでしょうし」 / Twitter
FadisさんはTwitterを使っています 「Boost.ContextからBoost依存を排除した、Deboost.Contextなるライブラリが存在する事を知った。Boost.ContextはWindowsのFibreや新しいスタックの確保とスタックポインタの書き換えを使って、ユーザ空間の単一スレッド上で複数のタスクを切り替えて実行する仕組みを提供する https://t.co/GZCAxn7bpw」 / Twitter
septag/deboost.context: "Deboostified" version of boost.context (coroutines), Plain and simple C API for context switching. Easy build on multiple platforms.

FPU

日記 (2018 年 6 月下旬)
日記 (2018 年 6 月下旬)
日記 (2018 年 6 月下旬)
拡張プロセッサー・ステートを保存/復元する組み込み関数
7月版 ファームウェアの置き場所を巡ってフレームウォー(2/2) - @IT
XSAVE — Save Processor Extended States
XRSTOR — Restore Processor Extended States
x86 and amd64 instruction reference

lazy FPU context switch

nakamori akiraさんのツイート: "Intel CoreおよびXeonプロセッサ内のセキュリティー欠陥は、チップの演算処理装置から機密データを盗み見される可能性がある。AESの鍵はFPUレジスタに保存されるが、そのレジスタを盗み見される可能性がある。… "
The Registerさんのツイート: "Overnight: Intel Core and Xeon processors have a security flaw that lets the math unit leak parts of its registers from one app to another - registers used for AES encryption. It's possible for malware to snoop on crypto keys in other programs https://t.co/b9q051uXc5"
Intel chip flaw: Math unit may spill crypto secrets to apps – modern Linux, Windows, BSDs immune • The Register
INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665)
このコード、オシャカルトっ!さんのツイート: "CVE-2018-3665の話しで出てきてたeagerfpuって今のコードになくない?と思ったら、もうこの機能は常にonになったからon/off 切り替えというのはなくなっていた。 https://t.co/XxV9BMPPyx"
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
Kimihiro Nonakaさんのツイート: "つーか、今のx86だともうlazy FPU context switchって意味無いからなぁ"
Coreプロセッサに新たなサイドチャネル攻撃の脆弱性。深刻度は中 - PC Watch
まさみさんは語りたいさんのツイート: "タスク切替時にFPレジスタの復元を遅らせることで、切り替えたタスクが実際にFPを使うまでレジスタ復元にかかるオーバヘッドを回避するっていうあれか。"
まさみさんは語りたいさんのツイート: "Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d"
Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
とみながたけひろさんのツイート: "今時のコンパイラって何でもかんでも(特にメモリコピーとか)SIMDレジスタ使ってくるんで、コンテキストスイッチ直後にSIMDレジスタ使うとかで、、、FPUレイジーコンテキストスイッチってほとんど意味なくなりつつあるんだよね… "
syuu1228さんのツイート: "でも特にAVX以上になるとFPUレジスタのサイズがでっかくなりすぎてくるから全退避・全リストアじゃなくてCPU命令で差分退避・差分リストア出来るようにしようとなった、という経緯だったような"
Lazy FP State Restoreの脆弱性が、ほとんどのIntel Core CPUに影響を与える
Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
社会人でもOSを作りたいさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
LazyFP vulnerabilityの紹介

The Old New Thing

FadisさんはTwitterを使っています 「x86にはUD2っていう呼ぶとinvalid opcode例外が飛ぶ事が保証されている命令があるんだけど、これを使うと遅いx86のINTを避けてring 0に移れる事に気づいたマイクロソフトがUD2でコンテキストスイッチし始めて、Intelに「UD2もっと速くならない?」って言い出してIntelが「ふぁっ?!」ってなる話好き」 / Twitter
FadisさんはTwitterを使っています 「で、その後INTじゃなくてシステムコール専用に高速にring 0に移れる専用の命令があった方が良いよねとなって、SYSENTERや今日x86_64で使われているSYSCALLが登場する、と」 / Twitter
本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
FadisさんはTwitterを使っています 「UD2の件のソースはこれ( https://t.co/1lV3gwp5Uu )なんだけど、江添さんの紹介してるやつの話が1989年だとすると、時系列的にはこの話はUD2が追加される以前の話になるから、実際にはUD2じゃなくて本当にinvalidなopcodeでも使ってたのかな」 / Twitter
User-level threads....... with threads. - Paul Turner - Google - YouTube
suzakiさんはTwitterを使っています 「@darklie @fadis_ 日本語ブログではリンクが切れていますが、同じタイトルのHPがありました。 The hunt for a faster syscall trap https://t.co/EDqnpwuhvC IntelとMicrosoftと打合せでMicrosoftが無効命令の高速化を要求したストリーは聞いた覚えがあります。」 / Twitter
The hunt for a faster syscall trap | The Old New Thing
FadisさんはTwitterを使っています 「コンテキストスイッチが高コストというのは、かつてはx86のソフトウェア割り込みが超遅いという話だったけど、現代においてはカーネルのスケジューラが複雑なのがコストの主な原因で、syscall命令自体の実行時間はそれと比べると誤差みたいになってるのか…」 / Twitter
でかいのさんはTwitterを使っています 「@fadis_ ring0遷移の所要時間 50nsecは結構遅いと思うのですが、そんなの目じゃないほどスケジューラーが遅いってことなのかなあ。複数コアの情報取得・連係制御のコストが高い??」 / Twitter
FadisさんはTwitterを使っています 「@dekaino syscallが50nsec程度なのに対して、コンテキストスイッチ全体に要する時間が1usオーダーのようで」 / Twitter
でかいのさんはTwitterを使っています 「@fadis_ spinlockがいくつかあれば1usecくらいすぐいきそう。複数コアで排他なしのスケジューリングは困難で、原理的に排他コストがかかるのは不可避でしょう。 スケジューラーが複雑なことが主なコスト要因って表現だと、何かを犠牲にして単純化すれば所要時間短縮できそうに思えますが、ちと無理そうです。」 / Twitter

あるコンテキストスイッチの話
ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る - HPC/並列プログラミングポータル - OSDN
Concurrent と Parallel - NyaRuRuが地球にいたころ
parallel と concurrent、並列と並行の違い - 本当は怖い情報科学
Linux カーネルと FreeBSD カーネルの割り込み処理
I-26-1. コンテキストスイッチの仕組み | 日本OSS推進フォーラム
社会人でもOSを作りたいさんはTwitterを使っています: 「コンパイラが用意してくれるmemcpyの速さに感動するんだけど、これって低レイヤあるある?」 / Twitter
Toshitaka MiuraさんはTwitterを使っています: 「@uchan_nos コンパイラそのものよりは、チューンされたイントリンシック関数ですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux で、カーネル内を走行中に割り込みが走る場合と、ユーザプロセス内を走行中に割り込みが走る場合って、なんて呼び分けるんでしょう? どちらも preemption ではあると思うんだけど。 なぜこんなことを気にしてるかというと、両者のオーバーヘッドの違いを説明する文章を書いてるからです。」 / Twitter
猫ぱんちさんはTwitterを使っています 「@kazuho 前者をとくにカーネルプリエンプションと呼んで区別するくらいではないでしょうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@nekopunch_pk ありがとうございます。kernel preemption, user preemption のような用語を定義をつけて説明することにしたいと思います cc @syohex」 / Twitter
Kazuho OkuさんはTwitterを使っています 「やっぱuser preeemptionのほうがkernel preemptionよりだいぶ重たいんですね。。。」 / Twitter

M:Nスレッド

軽量スレッドブームだと思うので、そこらへんの情報をまとめてみる - 金利0無利息キャッシング – キャッシングできます - subtech
スレッド (コンピュータ) - Wikipedia
goroutineはなぜ軽量なのか - Carpe Diem
Linuxにおけるプロセス/スレッドの調査とか学習とか - Flicker's Style++
multithreading - M:Nスレッドモデル(goroutinesなど)の短所は何ですか?
Rustのスレッドで並列処理を行う - Qiita
NetBSDにおけるthread機構の方向転換か? | スラド デベロッパー
Solarisスレッドモデルとスタックスレッド - 銀の鍵 (The Silver Key)
ASCII.jp:Go言語と並列処理(2)|Goならわかるシステムプログラミング
スレッド - The Rust Programming Language
井山梃子歴史館さんはTwitterを使っています 「Google曰くオーバーヘッドはカーネルスケジューラにあるのでユーザーモードスケジューリングで解決するらしい」 / Twitter
legokichiさんはTwitterを使っています 「M:Nモデル使わなくてもlinuxのスレッドは軽くて早いよという説はどこへ行ったのか」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「実際のところ M:N モデルでも pthread だと百万個単位のスレッドが動くかどうかは怪しい気がしますね。Erlang のメッセージや go のチャンネルによるアクターモデルを酷使するには、上限を気にせず使える軽量なスレッドとユーザランドスケジューラは必須で、これは C とかでは難しいかもしれない。」 / Twitter
なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?

Hyper-Threading Technology

Hyper-threading - Wikipedia
ハイパースレッディング・テクノロジー - Wikipedia
HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
続・HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
インテル® ハイパースレッディング・テクノロジーのパフォーマンスに関する考察 | iSUS
ハイパースレッディング調査 - ソフトウェアエンジニアリング - Torutk
仮想化基盤におけるCPUリソースに関する簡易整理 | Check!Site
VMwareテクニカルトレーナよりワンポイントアドバイス~VMware vSphereにおけるCPU・メモリの考え方編~ - Japan Cloud Infrastructure Blog - VMware Blogs
ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ
ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (2/3)|基礎から覚える 最新OSのアーキテクチャー
マルチプロセッサとスケジューラ(その1) | OSDN Magazine
マルチプロセッサとスケジューラ(その2) | OSDN Magazine
1.5 プロセススケジューラ - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
FadisさんはTwitterを使っています 「GoogleがLinuxカーネルに「信頼できるプロセス」だけがCPUを共有する複数のハードウェアスレッド(Hyper Threadingとか)で隣り合わせになれるようにするスケジューラのパッチを投げている。信頼できるかどうかはcgroupsで同じタグが割り当てられているかどうかで判断する https://t.co/H8XHZ13Xmh」 / Twitter
Google Publishes Latest Linux Core Scheduling Patches So Only Trusted Tasks Share A Core - Phoronix
FadisさんはTwitterを使っています 「Hyper Threadingやそれに類する技術はCPUのアイドルを減らす効果が期待できるものの、キャッシュ等の状態を2つのスレッドが共有するため、サイドチャネル攻撃に利用できることが指摘されていた。このためOpenBSDではデフォルトでHyper Threadingを「あっても使わない」ようにする対応がなされていた」 / Twitter

CFS

Completely Fair Scheduler - Wikipedia
Completely Fair Scheduler - Wikipedia
Linux カーネル 2.6 Completely Fair Scheduler の内側
Completely Fair Scheduler によるマルチプロセッシング
Completely Fair Scheduler について - カメのたわごと
Completely Fair Scheduler (CFS)
CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
Kazuho Oku(@kazuho)/2015年02月10日 - Twilog
Fadisさんのツイート: "Linuxのしくみ( https://t.co/HBQWDZahl6 )、スケジューラの働きを実験で見るあたりで「スケジューラが顕著に不平等になるケースを観測して、そこからCFSの実装の話になるんでしょ、わかるわかる」って思って読み進めたけど、実際はもっと平和な本だった"

BFS

Brain Fuck Scheduler - Wikipedia
Brain Fuck Scheduler - Wikipedia
帰ってきたCon Kolivas、大論争を呼ぶの巻(1/3) - @IT
Linux-ck - ArchWiki
フリーダウンロード BFS Scheduler のために Linux ::: システムユーティリティ
スケジューラについての調査 - オペレーティングシステム授業発表
Con Kolivas氏、新たなスケジューラと共にLinux開発にカムバック | スラド アップル Submission

BMQ

Fadisさんのツイート: "Linuxに新しいプロセススケジューラBMQが提案されている。これはGoogle Zirconのスケジューラを元にした物で、優先度別キューのうち空でない最も優先度の高いキューからタスクを取り出す。実行時間を残したタスクは元居たキューの先頭に、使い切ったタスクは末尾に戻される https://t.co/bgj4vYr0Us"
BMQ "BitMap Queue" Is The Newest Linux CPU Scheduler, Inspired By Google's Zircon - Phoronix
Fadisさんのツイート: "これ、説明読んだだけだと優先度の低いタスクが飢えそうなんだけど、どうなんだろ"
Fadisさんのツイート: "既にCFSがあるLinuxにおけるBMQの利点は実装が極めて小さい(パッチサイズにして20kB以下、圧縮されたカーネルバイナリのサイズで4kB以下)事らしい。性能が良いかどうかとかいいからこのフラッシュメモリに収まるカーネルをくれ、みたいなペンギンのダイエットが死活問題な方面で有用なのかもしれない"

キュー

キュー | アルゴリズムとデータ構造 | Aizu Online Judge
優先度付き待ち行列 - アルゴリズムとデータ構造 | ++C++; // 未確認飛行 C
8.4. heapq — ヒープキューアルゴリズム — Python 2.7ja1 documentation
プログラミングⅡ
Skew Heap - Lilliput Steps

Digdag

Digdag | Open Source Workflow Manager for the Multi-Cloud Era
treasure-data/digdag: Workload Automation System
ワークフローエンジンDigdagのまとめ - Qiita
Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO
Digdagを使ってワークフロー管理を行う — | サイオスOSS | サイオステクノロジー
EmbulkとDigdagとデータ分析基盤と
Digdag + embulk + BigQuery + Re:dash でデータ分析基盤構築の夢を見る - 雑なメモ
Jenkinsの無秩序なジョブをDigdagで再定義する - log.fstn
ワークフローエンジンDigDagのサーバ/クライアント構成を試してみる - techium

Linux

SchedViz

Google Opens Up "SchedViz" To Visualize Linux Kernel Scheduling Behavior - Phoronix
Understanding Scheduling Behavior with SchedViz | Google Open Source Blog
google/schedviz: A tool for gathering and visualizing kernel scheduling traces on Linux machines

stalld

FadisさんはTwitterを使っています 「Red Hatの人が新しいデーモンstalldを作っているらしい。stalldは全プロセスのスレッドの実行状況を監視し、一定期間実行されていないスレッドを見つけるとそのスレッドのスケジューリングポリシーを一時的にSCHED_DEADLINEにすることで飢餓状態を回避する https://t.co/1MVG4peof6」 / Twitter
Red Hat Has Been Working On "stalld" As A Thread Stall Detector + Booster - Phoronix
FadisさんはTwitterを使っています 「それはユーザ空間デーモンでやることなのか、という気がせんでもない」 / Twitter
住民さんはTwitterを使っています 「@fadis_ コメントに中の人?が降臨してますが、FIFO/RRのリアルタイムスケジューリングでstarveするのを防止のようで適用範囲は比較的狭そうですね。 あとカーネルでやろうとしてたけど、ほかのスケジューリングポリシーなど壊さずにやるの大変辛かったと書いてますね(わかりすぎる」 / Twitter

Twitter

linux-sched-history.pdf - Speaker Deck
Fadisさんのツイート: "タスク: カーネルのスケジューリング単位。昔のカーネルではプロセスと同義だったが、現在(2.6系以降)はプロセスまたはその中のスレッド1つを指す #kernelvm"
Fadisさんのツイート: "linux-0.01ではNice値を変更するとタイムスライスが増減する。驚くべきことにrootでなくても負数が指定でき、しかも果てしなく大きな値を設定できる為、一般ユーザが巨大なタイムスライスを手に入れられる #kernelvm"
Fadisさんのツイート: "linux-0.01は全タスクを舐めてタイムスライスが最大のタスクを実行する。タイムスライスがどれも残っていなかったら全てのタスクに150ミリ秒のタイムスライスを与える。sleepしたタスクにはちょっとボーナスを与える #kernelvm"
Fadisさんのツイート: "linux-0.01のスケジューラは20行程度のラウンドロビンスケジューラ。64要素の配列でそれ以上タスクは作れない #kernelvm"
Fadisさんのツイート: "このスケジューラでは必要な処理がタスクの数に比例する為、最大64ならなんとかなるけどたくさんのタスクを抱えられるようにしようとすると使い物にならない #kernelvm"
Fadisさんのツイート: "linux-1.0でプリエンプションが登場、root以外の負のniceも禁止に #kernelvm"
Fadisさんのツイート: "linux-2.0ではランキューがリストになったが、スケジューリングに全てのタスクを舐める必要がある点は変わらないままだった。またlinux-2.0からSMPのサポートが追加された。 #kernelvm"
Fadisさんのツイート: "linux-2.0のランキューはSMPであっても1本で、1本のキューから全てのCPUがタスクを拾っていた #kernelvm"
Fadisさんのツイート: "linux-2.2 linux-2.4ではlinux-2.0からスケジューラの変化はあまりなかった #kernelvm"
Fadisさんのツイート: "linux-2.6でO(1)スケジューラが登場。キューをactiveとinactiveに分けることで、activeの先頭には常に実行すべきタスクが来ている状態にする事で、キュー全体を舐めなくても実行すべきタスクを決定できるようにした #kernelvm"
Fadisさんのツイート: "人間が直接やりとりするタスクが後回しになるともっさりして見える → linux-2.6では短時間のうちにsleepする事が多いタスクを対話型タスクとみなして、起きて来たときに優先的に実行するようにした #kernelvm"
Fadisさんのツイート: "linux-2.6ではタスクの操作時のロックで全CPUが詰まるのを回避するために、LCPU毎にランキューを持つようになった。この結果、ランキューがたまっているLCPUからランキューが空いているLCPUにタスクを移動させるロードバランサが必要になった #kernelvm"
Fadisさんのツイート: "NUMAが現れたため、ロードバランサが2段階になった。まずNUMAノード間でのバランシングを行い、次にLCPU間でのバランシングを行う #kernelvm"
Fadisさんのツイート: "linux-2.6では複数のタスクがメモリ空間を共有できるようになった。これを使ってユーザ空間でのエミュレーションではないスレッドが作れるようになった #kernelvm"
Fadisさんのツイート: "CentOS3のカーネルはLinux 2.4だが中身が総とっかえレベルで魔改造されていて何故かO(1)スケジューラが使える。このカーネルの保守が辛すぎたため、最近はどこディストリもこういうことをしていない #kernelvm"
Fadisさんのツイート: "O(1)スケジューラは場当たり的な改良が多すぎて、意図しない動きをする → linux-2.6.23でCFS登場。ランキューは赤黒木になって計算量はO(log(n))に。全てのタスクはレイテンシターゲット期間中に1度はCPUを得られる(飢餓状態の回避)"
Fadisさんのツイート: "O(1)スケジューラではインターバルタイマーを使っていたが、この方法で制度を上げると割り込みのオーバーヘッドにCPUを持っていかれる → CFSではタスクを切り替えるべき時刻にタイマーをセットする為、不必要に割り込みが増えず、ナノ秒精度での制御が可能に #kernelvm"
Fadisさんのツイート: "cgroupが登場、全てのタスクで時間を割る前に、特定のグループの中でタスクの中で時間を均等に割る事ができるようになった #kernelvm"
Fadisさんのツイート: "linux-2.6.25でcgroupを応用してリアルタイムタスクが暴走して帰ってこなくなった場合にリアルタイムタスクでないタスクが全く動かなくなる問題を回避できるようになった #kernelvm"
Fadisさんのツイート: "カーネルの重要な処理が優先度最大のユーザタスクと同じ優先度になっていた為重要なカーネルタスクが押しのけられる事があった → linux-2.6.37でstop scheduling classが追加された。カーネルのみがあらゆるユーザプロセスより優先されるタスクを作れるようになった #kernelvm"
Fadisさんのツイート: "linux-3.2 CFS bandwidth controllerが登場、CPU cgroupがある期間中に動ける最大の時間を制限できるようになった。たとえ、他のタスクがなくてCPUが暇していたとしても、実行中のタスクがCPUを使う時間を制限できる #kernelvm"
Fadisさんのツイート: "linux-3.14で deadlineスケジューラが登場、指定した時間のCPUの割り当てが指定した時刻までに行われることを保証するタスクをrootのみが作れるようになった #kernelvm"
鹿さんのツイート: "cpu migration でずっと気になっていた「すぐ死ぬタスクをバランスしても無駄じゃない?」を専門家に聞けてとても良かった。 研究はあるけど、ヒューリスティックになるので、コーナーケースが出てくる。裏をかく人もでてくる。なので、今の Linux には入っていない。なるほど。 #kernelvm"
Fadisさんのツイート: "詳解Linuxカーネル第3版には100msごとにタスクを切り替えるとかactive/inactiveとか書いてあるけど、この10年でカーネルのスケジューラはごっそり書き換わった為ほとんど間違っている、と #kernelvm"
Fadisさんのツイート: "CFSは一定期間をタスクの数で割ってプロセスに時間を与えていくが、あまりにもタスクが多い場合コンテキストスイッチのオーバーヘッドだけで時間を使い切ってしまう事になる為、一度タスクの実行が始まったらコンテキストスイッチせずに使えるCPU時間の最低値が設けられている #kernelvm"
Fadisさんのツイート: "ロードバランサ: ランキューがプロセッサごとに用意されている為、ランキューが伸びているプロセッサと空いているプロセッサが生じる → プロセスが増えたり減ったり、プロセッサがやる事がなくなってしまった時にロードバランサが忙しいプロセッサのタスクを暇なプロセッサに移動させる #kernelvm"
Fadisさんのツイート: "レイテンシターゲットを短くすると応答性が良くなるがコンテキストスイッチの頻度が上がってスループットが下がる。LCPUの数が多い場合暇なLCPUがある確率が高くなる為、レイテンシターゲットを伸ばしても応答性が損なわれにくくなる。→LCPU数に比例してレイテンシターゲットを伸ばそう #kernelvm"
Fadisさんのツイート: "CPU affinityとcpuset cgroup: コンテナが使用して良いプロセッサを制限したり、特定のCPU上で動かす事に意味がある処理を確実にそのプロセッサ上で動かすために、タスクを動かして良いプロセッサを制限する #kernelvm"
Fadisさんのツイート: "同一コア内のスレッド(HT)間、同一NUMAノード内のコア間、同一ソケット無いのNUMAノード間、同一ホスト内のソケット間、でのタスクの移動はコストが違う為等価に扱う事ができない→ ロードバランサは階層化されている #kernelvm"
Fadisさんのツイート: "変態アーキテクチャAMD EPYC7601の場合、2物理 * 4ダイ * 2CCX * 4コア * 2スレッド (1ソケットに複数のダイが載っている) #kernelvm"
[試して理解] Linuxのプロセススケジューラのしくみ - Speaker Deck
まさみさんは語りたいさんのツイート: "マルチテナントRDBをコンテナで動かすとき、unprivilegedなコンテナを使うと、一部のプロセスをRTタスクに出来なくて困るっていう話をオラクルがしてる。面白い。"
まさみさんは語りたいさんのツイート: "cgroupsで予め制限してる場合は許可する、というアイデアが出ていて、これは良さそうに見える。シンプルだし一貫性がある。"
まさみさんは語りたいさんのツイート: "RTプロセスがコンテナ内で動かせないのはちょっと制御向けにも困るかも。"
satさんのツイート: "linux 2.6.23以前は特定の挙動(無限ループよりもうちょっと凝ったやつ)をするプロセスを20-30個ほど立ち上げればシステムを事実上ハング状態にできたのじゃよ"
Fadisさんのツイート: "一部のCPUの排熱が追いつかなくて最大動作周波数を下げても、その事を知らないLinuxのスケジューラが容赦なくタスクを投げてきて結果としてタスクの完了が遅れるのイケてないから、温度をスケジューラの判断材料にしようという試みがなされているらしい (リンク先有料記事) https://t.co/7vKxG5oVi8"
Fadisさんのツイート: "Linuxカーネルは起動時にチップセットのタイマーが動く事を確認するけど、ナウいIntel CPUとナウいチップセットではタイマーが消費電力を抑える為に使う事を明示しないと動かないようになっていて、割り込み返ってこなくてカーネルがpanicする問題が解消された話 https://t.co/qjnpC8nN1x"
The Linux Kernel Getting Fixed Up For Booting On Some Intel Systems - No "8254" - Phoronix
FadisさんはTwitterを使っています: 「Stadiaでゲームを作っている人が「Linuxのスケジューラの性能が悪いせいでStadiaのゲーム作るのが辛い」というベンチマークを出していたの対してLinus Torvalds氏が「指摘は間違っている。計測方法に問題があり無関係な物を測っている。純粋なるゴミ」という解説をしている話 https://t.co/yIXR6bNIMp」 / Twitter
Torvalds' Comments On Linux Scheduler Woes: "Pure Garbage" - Phoronix
FadisさんはTwitterを使っています: 「ゲーム屋さん、いつでも処理が16ミリ秒以内に完了しないと死んでしまう呪いがかかってるから、ミリ秒オーダーで遅れる事があるほげふがを回避する為に変な事しだすのは、実際よくあるんだよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「クラウドサーバ提供ベンダー(DigitalOcean)が、Linuxのスケジューラを弄って、安全なスレッドペアのみ同一コアSMTで実行、という改変をした話、、、ただ劇的な改善ではなさそう。 (あと個人的にはここのクラウド、spam業者御用達なイメージある) https://t.co/x92Azmlhei」 / Twitter
DigitalOcean & Others Still Working On Core Scheduling To Make Hyper Threading Safer - Phoronix
井山梃子歴史館さんはTwitterを使っています 「LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core) Gのユーザレベルスケジューラ、switchtoと呼ぶらしい https://t.co/kXZSPOkMa2」 / Twitter
LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core)

2013年7月4日 Linux 3.10登場 ─SSDキャッシング,マルチタスキング,Btrfsなど注目機能搭載:Linux Daily Topics|gihyo.jp … 技術評論社
2017年5月1日 Linux 4.11が正式リリース,プラガブルI/Oスケジューラ,Gemini Lakeのサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
Linuxのしくみを学ぶ - プロセス管理とスケジューリング
Linux スケジューラーのコア実装とシステムコール
【論文紹介】The Linux Scheduler: A Decade of Wasted Cores (2016)
[2017.03.21] システム系輪講会 (nhiroki) - Google スライド
Linux スケジューラーのコア実装とシステムコール - Qiita
stolk/ThreadTracer: Lightweight inline profiler that measures wall-time, cpu-time and premptive context switches for threads.
Linux のハードウェアタイマーの話 - NyaRuRuが地球にいたころ
産総研:高精度な実時間OS「ART-Linux」を公開
【Linux】Load Averageに関するいろは - Qiita
Fadisさんのツイート: "これな、待ちプロセスが多いとロードアベレージは上がっていくから、経験則で「ロードアベレージいくつ以上はヤバい、アラートだ」みたいなイカれた監視がなされたサーバで、監視に検知されないギリギリのプロセス数で制限するコードを書く羽目になったりな…"
タスクスケジューラ用のsysctlパラメタ - Qiita
【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita
Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
2020年6月2日 Linux 5.7がリリース ―サーマルプレッシャー,exFAT,iOS用USBドライバなど:Linux Daily Topics|gihyo.jp … 技術評論社

Windows

Windows XP/Vista のスレッドスケジューラと Hyper-Threading - NyaRuRuが地球にいたころ
Windows Vista: Multimedia Class Scheduler Service - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (1) - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (2) - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (3) - NyaRuRuが地球にいたころ
MMCSS とネットワークパケット受け取りの抑制 - NyaRuRuが地球にいたころ
GiB Age - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (1) - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (2) - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (3) - NyaRuRuが地球にいたころ
プリエンプティブなスレッド切り替えの時間共鳴 - NyaRuRuが地球にいたころ
Windows 7/Windows Server 2008 R2 が 256 プロセッサまでしか "対応" しない理由を予想する - NyaRuRuが地球にいたころ
佐祐理ブログ: Windowsの各種Timerの精度について
処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
処理速度の遅いcurrentTimeMillis() – 後編 | POSTD
Masaru Iritaniさんのツイート: "英語の記事ですが、Windows カーネルのスケジューラーがどう進化してきたか詳細に説明されています。1792 論理コアを表示するタスク マネージャーは圧巻です。 https://t.co/e44pBEol77"
One Windows Kernel - Microsoft Tech Community - 267142
Windows 95ではマウスカーソルをぐるぐると動かすと処理速度が早くなることがあった - GIGAZINE
ASCII.jp:基礎から覚える 最新OSのアーキテクチャー

OSDN

「Linuxカーネル3.12」リリース | OSDN Magazine
Linuxカーネル3.13リリース、nftablesやブロックデバイスレイヤーの改良などが特徴 | OSDN Magazine
新たなSSDキャッシュ「bcache」を実験的に導入、Linuxカーネル3.10が登場 | OSDN Magazine
Linuxカーネル4.11リリース、プラガブルなI/OスケジューラやSSD向けスワップ機能などを実装 | OSDN Magazine

Wikipedia

コンテキストスイッチ - Wikipedia
スケジューリング - Wikipedia
Scheduling (computing) - Wikipedia
FIFO - Wikipedia
ラウンドロビン・スケジューリング - Wikipedia
多段フィードバックキュー - Wikipedia
Earliest Deadline First - Wikipedia
Least Slack Time - Wikipedia
レートモノトニックスケジューリング - Wikipedia
優先度つきキュー - Wikipedia
リングバッファ - Wikipedia
優先順位の逆転 - Wikipedia
Bulldozer (マイクロアーキテクチャ) - Wikipedia

Qiita

Linuxの各タスクにおけるスケジューリング統計情報 (procfs) - Qiita
科学実験のようにスケジューラの挙動を確認する - Qiita
Linuxのschedのpriorityとリアルタイムシステムについて - Qiita
科学実験のようにスケジューラの挙動を観測する - Qiita
linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita
Linux スケジューラーのコア実装とシステムコール - Qiita

Twitter

その他

なかのん DAYS''さんはTwitterを使っています: "OS X、久々に触ると、やっぱ、アクティブなウインドウのプロセスの優先度が高くならないのがWindowsユーザからすると不便というか違和感というか。"
とみながたけひろさんのツイート: "15年前に作ったカーネルはカーネル・割り込みハンドラ内でもFPU使えるしFPUレイジーコンテキストスイッチもやってたけど、5年前の奴は「もうSIMD使うのが前提でコンパイラが最適化してくるから」ってのでレイジーはやめたな(もちろんカーネル内でSIMD使えるようにしてた)"
NetBSD ドキュメンテーション: どのように lazy FPU コンテキストスイッチは動作するのか
酔漢@ニャー将棋さんのツイート: "コンテキストスイッチ、割り込み出入り口は可変長例外フレーム対応、レイジースタッキング対応になった。例外は可能なかぎりレイジースタッキングを壊さないので、割り込みハンドラ内部で浮動小数点演算をしなければ、オーバーヘッドは小さいまま。"
K.Namba/ご注文は910ですか?さんのツイート: "Windows の Kernel でストレージを動かそうというのは、やはり無駄が多すぎるのではないか・・・ 限界まで専用化された NAS OS には敵わないよなー。 ストレージ向けのスケジューリング/コア割り当てなんかが出来るようになるともう少しよくなるかもしれない。"
Nerry@さんのツイート: "HIDがビジーループに入るとメインスレッドがなぜか死ぬと思ったらHIDスレッドがyieldしないでpreemptionされるまで動くことによってメインスレッドが期待するtickの値がスキップされていた"
ysksさんのツイート: "なぜ macOS/iOS の CPU は 100% にならないのか。その謎を解明するため取材班は XNU アマゾンの奥地、MULTIQ スケジューラ遺跡に向かった。 https://t.co/zC6r6WoFHX"
sched_multiq.c
SODA Noriyukiさんのツイート: "どこかで同期とるような並列プログラムだと、一番遅いプロセスに足を引っ張られるので、同じ処理やってて実行時間がバラつくのは大問題なのよね。McKernel が解決しようとしてるのもそこ。"
まさみさんは語りたいさんのツイート: "SMTをOSレベルでずっとHALT状態にしておいて、カーネル内の小さい並列化できるタスク動かすのだけに使えないかな。メモリコピーとか。(つまりソフトウェアDMAエンジン)"
まさみさんは語りたいさんのツイート: "一部のセキュリティ問題でHTとかSMTが阻害されるのはもったいない。ユーザ空間のスレッドに関しては同一コア上のHT/SMTを利用できる(ただしどちらかがシステムコールに入るともう一方は抑制されるか別コアに送られる)とか。"
Nerry@さんのツイート: "プリンプションのペナルティ実装したらウィンドウマネージャーがウィンドウの再描画移譲受けてる関係でちょっと重いウィンドウあると常にペナルティ受けててうーん"
Susumu Yamazakiさんのツイート: "私たちがした実験でも,1コアを絞り出さなくても並列にすることで劇的に性能は上がります。一見意外なことに,そもそも並列にするとどうしても1コアあたりのパフォーマンスは落ちます。実はこらはアムダールの法則で説明できます。… "
鹿さんのツイート: "> 1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 全然そんなことないから、これだけ読んで勘違いしないで欲しい。 1コアの50%しか使ってなくても、shared nothingな構成で8コア並べたら、1コアを使い切った場合に比べて性能4倍。 CPUを使いこなすより並べる方が安い時代。… https://t.co/omYxaz0X4z"
Igaguriさんのツイート: "多分この人が思っているのは並行処理であって並列処理ではない。 並列処理は計算がボトルネックになっている処理を高速化するためにコアを複数使うことで、そもそも1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 関数型や論理型で実際のCPUやGPUの能力を絞り尽くすのは困難。… https://t.co/Z9FuFt4jmQ"
LAL(Light AI Lab)さんのツイート: "Elixirで並行処理、並列処理を書いてみて、並列の時代の到来を実感しました。並列を活かすためには関数型プログラミング、論理型プログラミングへジワジワとパラダイムシフトしていくだろうと私は予想しています。若いエンジニアの方々はElixirの並行処理を学んでおけば、職場で重んじられるのでは?"
社会人でもOSを作りたいさんのツイート: "OSに求められる役割の一つであるリソース分配は,上に乗るアプリによって方針が変わる.ユーザ単位でフェアに分配するのか,プロセス単位でフェアに分配するのか,システムプロセスの優先度を上げるかどうか,とかも. #osdev_moku2"
デダルス・ユメノさんのツイート: "メモ:work-conserving schedulerとは,実行可能ジョブがある限り,制御対象のリソースを常に稼働させるように制御するようなスケジューラのこと。うまくジョブの順序とかを入れ替えたりしてリソースがフル稼働するように制御する。"
Hideyuki TanakaさんはTwitterを使っています: 「&gt;The runtime measures the time it takes to perform the blocking operation and if it takes a while, a new thread is automatically spawned and replaces the old executor thread. はぇぇ(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています: 「てかこれ別にブロックしてなくてもasyncって書いてある関数が実行に時間かかってるなーって感じだったら勝手にスレッド作って元の関数の続きを実行し始めるんすか?」 / Twitter
Hideyuki TanakaさんはTwitterを使っています: 「いい加減なタスク並列をいい感じのスレッドプールでほとんど何も書かなくても並列化してくれたりするん?(´・_・`)」 / Twitter
Miura HidekiさんはTwitterを使っています: 「これ見て驚いた。そういやjemallocでもロックの競合状況みて競合しているようならarena増やすみたいなことをやっていたな。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「まぁそうでなくてもOSのスケジューラがゲームみたいなイベント駆動型のソフトウェアに強く影響を与えるなんてのはほとんどありえないよ。 だからずーっとOSレスな業界だったでしょ? https://t.co/d2M9Sr81OM」 / Twitter
【イベントレポート】【速報】Intel、第10世代Core後継「Tiger Lake」の実機を初公開 ~10nm+プロセス/Thunderbolt 4/Xe GPU内蔵で2桁%性能向上 - PC Watch
Miura HidekiさんはTwitterを使っています 「これを見て、マルチスレッドの自動分散を連想した。自動分散をおこなうにはスレッドの負荷状況を調査する必要があるけど、そればっかりやっていると遅くなる。jemallocのロックの競合割合から推定するとか賢い方法があるといいのだが。」 / Twitter
mattnさんはTwitterを使っています 「@miura1729 今はコンテキストスイッチ重そうですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@mattn_jp 確かに」 / Twitter
mumumuさんはTwitterを使っています 「Slite: OS Support for Near Zero-Cost, Configurable Scheduling [RTAS '20] システムのスケジューラがユーザランドにいて(Kernel Bypass),各スレッドはKernelがActivateされた時に(Lazyに)帳尻合わせをすることで,高速かつ柔軟(ユーザランドでAppに合わせTune可能)なRTOS向けスケジューラを実現」 / Twitter
mumumuさんはTwitterを使っています 「Arachne: Core-Aware Thread Management [OSDI '18] 短時間・大量に実行されるスレッドで動作するタイプのAppが,自身の変化(ワークロード変化に追従するためコアを欲しがる等)や周囲の変化(他のシステムの処理増加によるコアの取り上げ等)に柔軟に対応するための調停プログラム/runimeを実装」 / Twitter

コンテナ

🚀GRIMM・ZOU🐘さんのツイート: "ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius https://t.co/tfnvd3HCVg dockerが本当にボトルネックなのかという質問(?)があったので検証してみました。結果としてはdockerから剥がすだけで100万点から144万点に上がりました。"
はてなブックマーク - ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius
satさんのツイート: "コンテナだと仮想化よりもカーネルのスケーラビリティの問題を引きやすいってところか"
Guutara (⁰⊖⁰)さんのツイート: "それは、コンテナだからってことなんすか? プロセスのスケーラビリティの問題点だけど、コンテナの方がそれを引き起こしやすい、あるいは、引き起こしたときに、わかりにくいって話? VM との対比は、たぶん、理解できたと思うのだけど...… "
satさんのツイート: "コンテナのほうが起きやすい、起きてもわかりにくいって話ですね。 例えば10000プロセス同時進行で問題の出る処理があったとしてコンテナなしで10000プロセス同時進行になるより100コンテナで100プロセスが同時進行のほうが起こりやすい、かつ後者はコンテナのしくみがわかってないと理解できないので… https://t.co/0pwFzhq76i"
まさみさんは語りたいさんのツイート: "Dockerコンテナ、ネットワークについては名前空間が分かれているのでスケーラビリティ問題は解決するものの、分かれていない所は無理だもんなあ。"
まさみさんは語りたいさんのツイート: "OSを名前空間っていう取ってつけた仕組みで共有するので、リソースの競合が発生するところは発生する。競合によって性能が劣化する場合もあるし、複数のコンテナを動かすというところで発生しやすくなると思うが、この辺りってコンテナホスティングしていた運用会社にはノウハウ溜まってるんじゃない?"
まさみさんは語りたいさんのツイート: "コア数の多さでスピンロックなどの競合が起きやすくなるんだけど、例えば仮想サーバを使ってOSをコアごとにある程度分離すると、実質的にロック競合の発生しやすさは下がる。逆にコンテナを使ってOSを共通で使うと、共通リソースに対するロック競合の発生しやすさは変わらないだろう。"
まさみさんは語りたいさんのツイート: "実際にはリソースの使い方が変わるから、例えばプロセス数が単純に増えるから、一部リソースに対するロック競合は却って増えると想定できる。"
まさみさんは語りたいさんのツイート: "コンテナ毎のプロセスのスケジューリングを階層化すればあるいは・・・。"

リアルタイム性

satさんのツイート: "linuxのスケジューラの古いやつ(2.6.23以前)と今のやつの違い - 動的優先度は無い - activeキューとinactiveキューなんて区別は無い - nice値ごとの固定タイムスライスではない - sched_yield()は自分自身を再度スケジュールすることが多い"
satさんのツイート: "あと若干話しがずれるけど、いまのlinuxのスケジューラだとsched_yieldでコンテキストスイッチ狙う手はほぼ通用しないっすよ。ほぼnop"
まさみさんは語りたいさんのツイート: "リアルタイムプロセスでもそうだっけ?… "
satさんのツイート: "リアルタイムは別ですね。O(1)時代のままで、複数RT taskがいればyieldで次のタスクに制御が移ります。… "
まさみさんは語りたいさんのツイート: "ですよねー。結局ノーマルアプリはスケジュールとか考えるなと。… "
satさんのツイート: "SCHED_OTHER: リアルタイムではない SCHED_{FIFO,RR}: リアルタイムのふりをしている何か SCHED_{DEADLINE}: リアルタイムに似た何か"
satさんのツイート: "リアルタイム性ってスケジューラだけでどうにかなるもんではなくて割り込み使ったら負けとかいろいろありますからねー"
まさみさんは語りたいさんのツイート: "何を以てリアルタイムというかは、人によって違うというか、誤解してる人が多数いますからね。特にRTOS村の住人…… "
Satoru Uedaさんのツイート: "https://t.co/9y3FbRKczl とりあえず、こんなのを・・・。 #celfjp… "
Frequently Asked Questions - RTwiki

@rockridge07

Rockridgeさんのツイート: "記事の後半にQuantum DOMの解説がある。Firefoxのプチフリ発生を抑えるため、DOM処理をスケジューリングしてマルチスレッドで行う仕組みを、OSに頼らず自前で用意するらしい。 / “Mozilla’s Quantum…” https://t.co/gbCBfFhOH4"
Rockridgeさんのツイート: "Chrome 57ではバックグラウンドのタブのCPU利用率を制限する措置が導入され、これにより消費電力が減った。ただし、音声の再生やWebRTCのコネクションは従来通りだという。 / “Chromium Blog: Reduci…” https://t.co/24L1khCCtd"

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Windows 10の最新カーネルだとHeterogeneous Schedulingサポートしてるのか (要はbig.LITTLEみたいな構成)"
Makoto Kato ︎︎さんのツイート: "https://t.co/1VPmrML5HO Windows internalの最新版にbig.LITTLE用の機能について記述されてんのに何言ってんだろうか。こういうライターって勉強足りないよね"

@kazuho

Kazuho OkuさんはTwitterを使っています: "H2O の http2 スケジューラを改善して分かったんだけど、128段までの priority queue だったら、今時ヒープ使わないほうが良さそう"
Kazuho OkuさんはTwitterを使っています: "linux の CFQ も、なんで red-black tree なんだろという疑問。リングバッファにできないほど優先度の幅が広いのかしら"
Kazuho OkuさんはTwitterを使っています: "@kazuho あー s/CFQ/CFS/"
Kazuho OkuさんはTwitterを使っています: "http://t.co/UTau7Sn2p5 を見ると linux の O(1) スケジューラは weighted fair queuing じゃなかったぽいな。それなら CFS のが公平性でのメリットがありそう"
Kazuho Okuさんのツイート: "HyperThreadingの影響を考慮したベンチマーク(つまり、1つの物理コアに2つのスレッドを固定した状態のベンチマーク)をとりたいんだけど、macOSだと無理なのかな..."
Kazuho Okuさんのツイート: "https://t.co/Bje8kGJnZj 確認しましたが hinting API ですね… "
Affinity API Release Notes for OS X v10.5

CPU・GPU 使用率の計測

CPU 使用率に応じて CPU 周波数を動的に設定

Homepage Johannes Hofmann - estd
ryo/estd: estd with temperature limit feature. (forked from http://flpsed.org/estd.html)

PC Watch

プレビュー版Windows 10のタスクマネージャーに“GPU”が追加 ~プロセスごとのGPU使用率などを確認可能に - PC Watch
タスクマネージャーに新設されたGPUのパフォーマンストラッカーを改良 ~プレビュー版Windows 10「Build 16237」 - PC Watch
Windows 10プレビュー版タスクマネージャーのGPU表示が“マルチエンジンビュー”に変更 - PC Watch
Windows 10 RS5のタスクマネージャーでアプリの電力使用量が確認可能に - PC Watch
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
【福田昭のセミコン業界最前線】不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 - PC Watch

窓の杜

「Windows 10 RS5」の「タスク マネージャー」は電力を浪費するプロセスの特定も可能 - 窓の杜
タスク マネージャーがさらに強化された「Windows 10 Insider Preview」Build 16241 - 窓の杜

blog

LinuxでCPU利用率を取得する
CPU使用率は間違っている | Yakst
タスクマネージャに表示されるメモリ使用量 - NyaRuRuが地球にいたころ
htopコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜
topコマンドで覚えておきたい使い方14個 | 俺的備忘録 〜なんかいろいろ〜
インフラのボトルネックについて知る - ぺい

Twitter

satさんのツイート: "CPU統計情報の%stealってよく考えたらひどい単語チョイスだな。むしろお前がhostからCPU取ってるんだろうがという"
SODA Noriyukiさんのツイート: "@ksmakoto load average は、(実行中or実行待ちのプロセス数)+(disk I/O中 or disk I/O待ちのプロセス数) の移動平均ですから、4core CPUのうちの2core が CPU使用率 100% で回ってる状態(すなわち CPU能力の半分が遊んでいて暇な状態)… https://t.co/l37EDW4Qpg"
Shiro Kawaiさんのツイート: "すっごく面白い。色んなものをサンプリングで監視してるとグラフが振動しておおビート出てるなあと思うことはよくあるけどこんなに綺麗に説明がつけられると気持ちがいい。https://t.co/COfCSGkcYr"
Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel ブログ #mackerelio
Shiro Kawaiさんのツイート: "エイリアシングを防ぐためにランダムにずらすって手法もあるけどこういう統計情報取る時はあんまりやらない方がいいのかな?"
モッチー@少年クリプト編集長さんのツイート: "Coinhive(コインハイブ)裁判の第二回公判 高木浩光氏の証人尋問も傍聴してきました。 今回も『弁護士ドットコムNEWS』さんがわかりやすくまとめてくれていますが、書かれていないことをスレにまとめていこうと思います。 https://t.co/wm2wVErPob"
コインハイブ事件 高木浩光氏が公判で証言「刑法犯で処罰されるものではない」 - 弁護士ドットコム
モッチー@少年クリプト編集長さんのツイート: "弁護側の証人喚問の内容はおおむね記事の通り。 しいて言えば高木氏いわく検察が言う『負荷』と『CPU使用率』は別物とのこと。 負荷とはスレッドの数であって、CPU使用率が高いからといって負荷ではないそうです。"
なかのん&マジックさんのツイート: "WindowsのタスクマネージャーのGPU使用率が10%いっていなくてもWMPで動画を再生してたらFirefoxの動作速度落ちたり、マウスカーソルの追随が怪しくなったりするけど、どういう理屈なんだろう。GPU周りまったく分かってない。"
Kazuho OkuさんはTwitterを使っています: 「使用率n%のキューにおいて、キューへの追加がランダムな間隔で発生する場合の平均待ち時間はいくら、っての定式化できそうっーか誰かやってそう」 / Twitter
みょうがさんはTwitterを使っています: 「@kazuho M/M/n 待ち行列っぽい」 / Twitter
dancerj 🗾さんはTwitterを使っています: 「@kazuho M/M/1待ち行列とかですか。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「各所からツッコミが入ってるように(RT参照、ありがとうございます)待ち行列の平均待ち時間なので、例えば使用率80%なら、応答時間の期待値は使用率0%の場合の5倍である、ということになるのかしら。あってる?」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「CPU使用率80%がいかにヤバいか始めて身にしみた頭でっかちさんがこちらになります。経験はいっぱいあるのにね」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「あーだからcpuを複数にしたり、キューを処理するスレッドを複数にしたりすると使用率が高い場合でも改善が見られるのかな」 / Twitter
TamrinさんはTwitterを使っています: 「誰か世の中に蔓延る CPU 使用率に関する誤解を解いてくれと思ってたら、@pei0804 がそれらしき記事を書いてくれてた もっと書いてくれ https://t.co/7Rxk2pcJZR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、昔から思ってるなぁ…SMTが一つの解だろうけど、さほど上手くいっているようにも見えず。 https://t.co/ZWkiMasyN3 NVDIMM-P でも、そのあたりの解決をどうするのだろう?と思いつつ…NANDストールの粒度だとOSスケジューラと連携すべきだろうなぁ。 https://t.co/a5gOuUovTH」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NVDIMM-Pはメモリ操作にアウトオブオーダーや非同期的な動作をサポートする様子。 やはりOS側のページ操作でも、データがSSDにのみでDIMMにない場合は、ページフォルト的な仕組みを入れねば厳しそう。 「不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来」 https://t.co/lrZfYQrDif https://t.co/5HIhuEIwzA」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@shirouzu それに比べNVDIMM-Pは、局所性が落ちるとDIMMより桁外れCPUストールが発生しそうな印象。 (仮想記憶と違い、アンヒット時(flash参照時)にCPUは身動き取れないとするとHW/OS共々専用対応必須?) https://t.co/DCGq74hDuC」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「「SMTが一つの解」は、メモリストールで動かない時間を減らす、という意味。」 / Twitter
FadisさんはTwitterを使っています 「Linuxに新しい擬似FS statfsが提案されている。statfsはカーネルが収集した統計情報を読めるFS。現在そういう物はdebugfs等から生えているが、debugfsはrootしか気軽に読めない事、権限の変更を都度挟むのがミスの元な事、そもそもそれはdebugではない事から分離したいらしい https://t.co/FHABYjq6A3」 / Twitter
Statsfs: A Proposed Linux File-System For Kernel Statistics - Phoronix
Kazuho Okuさんのツイート: "tiptopコマンド知らなかった / “CPU Utilization is Wrong” https://t.co/rThFdwM531"
CPU Utilization is Wrong

インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
CodeZine(コードジン)
CPU使用率とは|CPU利用率|CPU負荷率|CPU utilization - 意味/定義/解説/説明 : IT用語辞典
Windows 10のタスクマネージャーの新機能「GPUグラフ」が見当たらない理由とは:その知識、ホントに正しい? Windowsにまつわる都市伝説(107) - @IT
CPU Steal Time 入門 - Qiita
Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE

I/O スケジューラ

単位

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度表示、MB/sとなっているのだが、実際は2^20なMiB/sでの値を表示している。 MiB/s に直すか、10^6な MB/s に変更するか、ちょいと迷い中。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前に FastCopyでのサイズ表記をMB→MiBに変更したのだが、やはり気になる人は居る様子。 でも、MBをサポートするなら10^6計算にしないとなぁ。 https://t.co/AylO3FFOxk"
Shirouzu Hiroaki(白水啓章)さんのツイート: "『MBをMiBと正確に表記することは、「一杯の紅茶を飲んだ」ではなく「236.588mlの紅茶を飲んだ」と表記するようなもの』 なるほど、面白い(笑) https://t.co/hz0xSDno2A"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「どのストレージデバイスも、MB表記ばかりでMiB表記は見たことが無い」 うーん、それはベンダが大きな数で表記したいだけの話でして。 以前のFastColyはMiBで計算してMB表記するという、MS Windows方式なのでちょっと違うんですが、、、"
Shirouzu Hiroaki(白水啓章)さんのツイート: "配慮する場合、10^6でMB表記オプションを追加、ですね。 ちなみに、CrystalDiskMarkがその表記なので、以前のFastCopyだと、同じ実効速度でも低い値に表示されてしまうという、、、… "
Kengo Sawatsuさんのツイート: "これ、WindowsのエクスプローラがMBって書いてるのに実際はMiBなのもあって悲惨な状況ですよねぇ。 個人的には軽やかに意見をスルーして貰って、FastCopyがMiBを正しく布教してくれる先頭に立ってくれる事を願いますが。。… "
Kengo Sawatsuさんのツイート: "興味深い?ことなんだけど、Windowsでは1MB*8とか1MB*16とかがよいらしいけれど、Macでは逆で16MB*2とかで一つあたりのI/Oサイズを大きくして重畳数は2とかの方が性能が伸びるように見える"

I/O 優先度

Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降、I/O優先度が設定できるのだが、Win10で優先度低にすると極端に転送レートが落ちる…あくまで他のプロセスI/Oを優先、として欲しいだけなのだが、デバイスのidle時間がやたらと増えるのは頂けない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、SetPriorityClass(PROCESS_MODE_BACKGROUND_BEGIN) を発行するとデバイスidle時間が30%~50%くらいに増える。(発行しなければ100%)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "idleの話なので「発行しなければ0%」だった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、SetThreadPriority(THREAD_MODE_BACKGROUND_BEGIN) だとこんな挙動はしない様子。 MSDNにそんな記述は無いのだが(前述のプロセス版と同じ説明)。 まあ Win32 APIにありがちな話…そして次の将来版で挙動が変わるのもありがち(笑) https://t.co/43KMqs1CXb https://t.co/bi76H7ZOKC"
SetPriorityClass function | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "そして複数のプロセスで競合させ、I/O優先度がきちんと効いていることが確認できた。 (ただ、リソースモニターでは I/O優先度=標準と表示されてしまうのが困りもの)"

I/O・非同期・ノンブロッキング

Qiita

意外と知らないgoroutineのスケジューラーの挙動 #golang - Qiita
Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita
contextの使い方 - Qiita
Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
非同期 IO について - Qiita
Linuxにおける非同期IOの実装について - Qiita

Twitter

io_uring・AIO

Fadisさんのツイート: "Linuxカーネルにカーネル空間とユーザ空間で共有されるキューペアio_uringが追加されるらしい。これを利用するとI/Oの結果を受け取るのにシステムコールが不要になる為、Linux AIOより効率の良い非同期I/Oが可能になるらしい。将来的にはPoll Mode Driverも可能にしたいとの事 https://t.co/7yCllXCxSo"
Linux Kernel Getting io_uring To Deliver Fast & Efficient I/O - Phoronix
Fadisさんのツイート: "使われないことに定評のあるLinux AIOが使われないままオワコンになろうとしている…"
Fadisさんのツイート: "扱いが難しくてあまり使われないLinuxのAIOを拡張して、epollよりコンテキストスイッチを抑えられる新しいイベント待ちAPIを作ろう、という提案がなされている。提案しているのはScylladbの人で、これを使う事でSeaster I/Oフレームワークの性能が10%程向上する、としている https://t.co/l6JJovXcs5"
A new kernel polling interface [LWN.net]
suzakiさんのツイート: "io_uring https://t.co/g7OwEl0CRS システムコールを発行せずにI/O処理する、つまり、kernel Bypassならカーネルにマージされるコードはないと思ったのですが、(ほぼ)がポイントなのですね。… "
io_uring IO interface [LWN.net]
satさんのツイート: "めっちゃ雑に書くと 0. カーネル送信/受信キューの初期化。ユーザ空間にmmap 1. ユーザが送信キューのエントリにI/O要求を書く 2. ユーザがsyscall発行でI/Oをキック 3. カーネルがI/O処理 4. ユーザがI/O完了を確認 1,3,4は非同期なのでI/Oが出続けている限り2は省略できる というかんじです… https://t.co/02q3Y1iLRi"
Fadisさんのツイート: "io_uring、カーネルがキューをポーリングするようにしてシステムコールを完全に排除するモードの追加は今後の目標とかそんな感じだった筈"
Kazuho Okuさんのツイート: "io_uring、いつudpまわりも使えるようになりますか"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで非同期I/Oを改良したio_uring、まだ試してないなぁ。 debian unstable を入れて試してみるかな。"
satさんのツイート: "すくなくとも5.1では使い物にならなかったです。それ(のうちのすくなくとも一部)をなおすdirty hackパッチを持ってますがまだ投稿に耐えるほど整形してません… "
satさんのツイート: "より正確に言うと機能にはいくつかモードがあって、一番高速なやつの挙動が怪しいです… "
FadisさんはTwitterを使っています: 「Linuxのio_uringででかいバッファの後ろの方に対してI/O要求を投げるとI/Oの完了がものすごく遅くなる問題の原因が特定、修正されたらしい。バッファの先頭に対する操作で10%程、末尾に対する操作で755倍程の性能の向上が見られた、とのこと https://t.co/KKiFtVdTDf」 / Twitter
IO_uring Gets A Huge Performance Fix - Up To 755x Improvement - Phoronix
FadisさんはTwitterを使っています 「samba-4.12がリリースされたらしい。このバージョンの目玉はio_uringに対応した事。io_uringはlinuxの今熱いシステムコールで、カーネルとユーザ空間の間にIO要求と応答の為の2本のキューを作り、IO要求毎にカーネル空間に移る必要を無くすことで大量の非同期IOを効率よく捌く https://t.co/UA085Q0ep7」 / Twitter
Samba 4.12 Released With Performance Improvements, IO_uring Support - Phoronix
ドッグさんはTwitterを使っています 「io_uring のキューをホストとゲストで共有することで仮想マシンでもベアメタルと同等の速度が出せるのか.すごい | 'IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results' https://t.co/384FLF5yb6」 / Twitter
IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results - Phoronix
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「Linuxのsmbdに向かって非同期i/oで重畳を重ねるとかえって遅くなったりするなあ、最新のwin10クライアントとかでも微妙にある感じがしてたけど、これどっかでちゃんとまとめてレポート書かないといけないよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 そんなことあるんですねぇ… Linuxの非同期I/Oは(最近のio-uringは別として)、あまり使われないので枯れない、といった声は聞いたことありますね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uring、マルチスレッド+epollで書かれたサーバプロセスで1スレッド1Gbpsとか余裕で出てNICがボトルネックになるので、全てのユースケースで意味のある技術ではないと思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「極端なケース、たとえば、超遅い接続が大量にあって、受信するデータパケットが小さくて、1バイト読むのにsyscall 1個発行するみたいなケースだともちろん意味があるので、ワークロード次第」 / Twitter
Kazuho OkuさんはTwitterを使っています 「手元の QUIC の場合だと、10パケット毎GSOの条件で 5Gbps / 0.35 CPU thread とかだから、一般的なコンシューマ回線相手のHTTPだと、オーダは 1Gbps よりも 10Gbps / CPU thread に近いはず。こういうケースで io_uring に意味があるとは考えにくい(なので優先度下げてます) https://t.co/T2r1iQtfc0」 / Twitter
Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly

ゆるsyuu1228△さんのツイート: "AviにCCされてるしSeastarでベンチされてるけど提案者は社外の人ではないか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、I/Oスレッドをもっと増やした方が速い、と再度コメントしてきた人がいたので、なんだかな…と思いながら長めの返信を書いた。 ただ、ネイティブに「カタコト感満載」「丁寧な返事」「けんか腰」のいずれかに見えるのか、よくわからない(笑) https://t.co/3UUZI0Humc"
Shirouzu Hiroaki(白水啓章)さんのツイート: "マルチスレッドとオーバーラップI/O の区別が付いていないというオチかな。 それにしても、オーバーラップI/Oがqueue-depthという表現の方がメジャーになったのはなぜかな。 条件が揃えばデバイス側のコマンドキューイングが利用されるとはいえ、元来それと1vs1対応した機能ではないはずなのだが。"
SODA Noriyukiさんのツイート: "これは知らなかった。*BSD含む伝統的UNIXだとI/O完了を待たないので挙動が違うのね(FreeBSDの場合は、ユーザーランドに見えるブロックデバイスは廃止されてrawデバイスのみになってるけど) RT: Linuxではブロックデバイスに対する非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ… https://t.co/nTcjnftT9c"
satさんのツイート: "さっきした会話で思い出した豆知識。linuxのブロックデバイスファイルに対する書き込みの特徴 - 非同期書き込み、非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ - このデバイスファイルにページキャッシュは無い。write時はbuffer cacheを使う(I/Oが終わったら捨てる)"
satさんのツイート: "これらについてはsar -rとsar -d -pを使って監視しながらddを使って通常のファイルとデバイスファイルに書きこむと手に取るようにわかります。"
satさんのツイート: "あの本ではまったく同じではないけど、こういう話をしています。とにかくOSの挙動を実測 唐突な宣伝すいませんでした"
Yosuke FURUKAWAさんのツイート: "Node.js の deep な所まで突っ込んで非同期処理の成り立ちを解説した論文、まさかNode.jsの論文があるとは。 / “Semantics of Asynchronous JavaScript” https://t.co/1oCRNOtO82"
Semantics of Asynchronous JavaScript
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxの場合、(posix aio ではなく)libaioでないと、syscallな非同期I/Oにならない?posix aioだとライブラリ内部でスレッドを使うユーザランドな非同期I/Oになるのかしらん? https://t.co/um1OdyTGsd https://t.co/gyUYGxLgiL"
バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog
Kengo Sawatsuさんのツイート: "メモ:macOSにおけるaioのリミット値のデフォルト sysctl -a | grep aio kern.aiomax: 90 kern.aioprocmax: 16 kern.aiothreads: 4 実際16以上同時にぶちこむとエラー帰ってくるよ。"
Kengo Sawatsuさんのツイート: "Oh,god..... MacでフォーマットしたExFATディスクにaio_writeでパラでデータ書き込むと100%データ壊れるんだけど、これヤバすぎでしょ。。 8MiB*2だろうが16*4のふた通りで試して試行回数3で100%破壊、しかも破壊箇所に再現性なし。。。"
INADA Naokiさんのツイート: "I/O多重化のメリットを享受しつつ、一般的な(コールバックやasync/awaitを使った)非同期プログラミングのスタイルのデメリットがないという意味です。 Javaとかの普通にスレッド使うよりは軽量になります。 Erlang や Haskell とは同じです。… https://t.co/gLELlykAWx"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsにしてもUNIXにしても、read/writeの非同期I/Oはあるが、create(open) / remove(unlink) の非同期命令が無い。 ネットワークファイルを大量作成or削除する場合は、自前でマルチスレッド化するしかないのが現状。"
鯉江さんのツイート: "メタデータいじる系のやつに非同期IOがないのはローカルファイルシステムだと平行性があまりないから用意されてないだけなんだろうか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ごもっとも。 ちなみに個人的には、ダイレクトI/O + 非同期I/O(ただしネイティブな実装に限る)がベストかと。(高速&ファイルキャッシュで仮想記憶を汚さない。1MB以上のファイルの場合ね) ---- read(2) vs mmap(2) の迷信 https://t.co/bhlQb88gcm"
read(2) vs mmap(2) の迷信
Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、ダイレクトI/Oはセクタ単位縛りが面倒なのは確か。 特に書き込み側。非ダイレクトI/Oで開き直して、末尾を調整する手間が必須に。"
Makoto Kato ︎︎さんのツイート: "WebKit、https://t.co/8KLoTJ6o8L で隠しAPI使ってるんだよな。。。たぶんこれ使えばTwitterの件はどうにかなるんだろうけど、さて。。。"
130479 – [Mac] Support asynchronous NSTextInputClient
Makoto Kato ︎︎さんのツイート: "自分たちが欲しかった非同期APIだよ"
Makoto Kato ︎︎さんのツイート: "マルチプロセス化するのにOSのAPI変えられる会社はズルい。無理矢理実装したのに。。。"
Takashi KawasakiさんはTwitterを使っています 「非同期のコードを疑似コードでいいのでフロー教えてほしいといわれると結構面倒・・・。というかコーナーケースの表現ができない。」 / Twitter

コールバック地獄から async/await に至るまでと, 非同期処理以外への応用 - Object.create(null)
ファイル I/O でブロックされているスレッドを殺したくなったらどうするか? - NyaRuRuが地球にいたころ
Win32 I/O キャンセル API と"ゾンビ" プロセス - NyaRuRuが地球にいたころ
非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
Go pprof 応用編 (CPU 以外のプロファイル) : KLabGames Tech Blog
GOMAXPROCSについてのメモ
マルチスレッド · Build web application with Golang
JavaScriptの非同期処理Promise・async awaitを学んでみた
現代の非同期処理
Goへの誤解について - GolangRdyJp
AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
Big Sky :: Golang の channel の使い所
2019年5月7日 Linux 5.1がリリース,新しい非同期I/Oインタフェース,2038年問題対策など:Linux Daily Topics|gihyo.jp … 技術評論社
「Linuxカーネル5.1」リリース、非同期I/Oインターフェイスなどが導入される | OSDN Magazine
.NET非同期処理(async-await)を制御する、様々な方法 – kekyoの丼
.NET非同期処理(async-await)と例外の制御 – kekyoの丼
io_uringを使ってみた

Direct I/O

パフォーマンス

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy ではむしろ、OSキャッシュに載せないよう Direct I/OとAsync I/Oで頑張っている…」 / Twitter
FadisさんはTwitterを使っています 「@nikq Linuxはじめとするmmapを素直に実装するOSではreadは「ページキャッシュに乗せてバッファにコピー」なのでmmapして全領域を(posix_)?fallocateする事で「ページキャッシュに乗せてそのアドレスをよこせ」した方が性能が出る事があります。単純にファイル全体を読みたい場合試してみる価値があるかと」 / Twitter
KOSAKI MotohiroさんはTwitterを使っています 「@fadis_ @nikq わたし10年ぐらい前にLinuxのVM書き換えたことがあるんですけど、そのときいろいろ調べて、mmapでコピーするのはほぼ常に遅いという結論になりましたね。 OSの教科書が想定しているハードウェアが古すぎるんだと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「Direct I/O には Async I/O がよく似合う」は本当です。 (2MBくらい以下のI/Oサイズの場合は特に)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (横からすみません)むしろ、OSキャッシュに載っていない状態からの計測を繰り返さないと意味無くないですか?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq キャッシュに乗るまでの時間がreadとmmapで変わるのであればそうですが、そうなんですか?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq そう言う話があった気がします。 (mmapの場合、ページアクセスで例外発生からI/O発生の繰り返しになるのが呪いになるなどあった気が…最初のアクセス以降は先読みが効いてとかあっても良さそうですが、実測ではペナルティが大きかった記録を読んだ気がします…小崎先生の方が詳しいとは思いますが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (もしくはOS先読みだと、大きなI/O指定にならないのが問題だったり…?ちょっと覚えていませんが)」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq なるほど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、Direct I/O は(非セクタ倍数サイズなファイルだと)Win/Linux共に、 ・Readでは末尾は1回のreadで読み取れる (要求はセクタ倍数だが、答えは非セクタ倍数) のに対し、 ・Writeはセクタ倍数Writeした後にtruncateか、末尾writeだけ非Direct I/O を使う という非対称性があってモニョる」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LinuxはOSSなんだから、実装案を作って提案したほうがいいのかしらん…とはいえ、私くらいしか気づいていない非対称性かもしれず、誰得?とか言われそうな(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、いろいろ性能計測の結果、Windowsだとtruncateに軍配という結果だった。 (最近わざわざ非truncate実装を加えた末に、意味ないと判りがっくり…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうそう、これ私も以前から実験してみたかった話(笑) (ところで、HugePageだと先読みもHugePage単位でやってくれるのかしらん?重そうだけど…)」 / Twitter
FadisさんはTwitterを使っています 「@angel_p_57 @shirouzu @kosaki55tea @nikq 頻繁なpage faultが性能低下の原因なら、Transparent Huge Pageで問題のいくらかを回避できる気がする」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq メモリ上でのコピーではなくディスクアクセスがボトルネックになるベンチマークである、という前提において言うと、readaheadに与えられる情報が多いreadを使う方が、mmapよりも速くなる可能性があっても逆はない、と言えるのだと思います(そしてしばしば実際にそのような結果が観測される)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ファイルコピーベンチマークをみて、あーBDPの推定問題だなって思ってしまうのはネットワークに毒されてる証拠」 / Twitter
KOSAKI MotohiroさんはTwitterを使っています 「@kazuho @fadis_ @angel_p_57 @shirouzu @nikq 情報量もありますし、ヒューリスティックに推測するにしてもmmapはランダムアクセスのパターンで使われることのほうが圧倒的に多いので、readaheadの推測値がどうしても小さくなってしまうんですよね。IOの効率に比べたら、メモリ操作の効率はあんまり重要じゃない」 / Twitter
FadisさんはTwitterを使っています 「@kazuho @angel_p_57 @shirouzu @kosaki55tea @nikq この問題についてはPOSIXな環境で幅広く動くコードについてはその通りだと思います。一方でLinuxでMAP_POPULATEを指定している場合mmap時に指定したサイズが一度に読み出される為、readに対して不利な要素は何もないように思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq はい。アプリケーションが適切に先読み量を設定できればdisk i/oの利用効率が最大化できるであろう、という意味で、おっしゃるとおりだと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2MBの先読みだと、readにもう一息追いつかないかな… (Direct I/O = 先読みが効かない状況でも、4MBくらいから(Async I/Oなしでも)ほぼペナルティは隠蔽されはじめる)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このMAP_POPULATE興味深いなぁ。mmapコピー実験は(キャッシュ無効からの)MAP_POPULATE版での計測をやってみたいところ。 (Windows版にもこのフラグ欲しい…ただ大量コピーの場合、ファイルが使う物理メモリ量は制限したいので、やはりDirect I/O + 自前メモリがよいかな…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には大量コピーには、Direct I/O + Async I/O が最強だと思っているので、いずれ Linuxでもこの形の FastCopy を作ってみたいと思いつつ。」 / Twitter

Linuxキーワード - ダイレクトI/O:ITpro
LinuxでDirect I/O | わーどぷれす
ダイレクトIOの実装 - のぴぴのメモ
Linuxキーワード - ダイレクトI/O とは:ITpro : WEBディレクターが最低限知っておくべきI/Oの基本事項 - NAVER まとめ
IBM Knowledge Center - NFS のダイレクト I/O
LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
Direct I/O のパフォーマンス測定 (write)
Shirouzu Hiroaki(白水啓章)さんのツイート: "Direct I/O には Async I/O が良く似合う。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyは、ネーミングのせいか「高速」「マルチスレッドI/O」という点に注目が集まりがちだけど、ダイレクトI/O(と非同期I/O)により、仮想記憶をキャッシュで汚さない(=他のプロセスが重くなりづらい)、という点が一番の特徴。 UNIX系でも、これを実現すれば嬉しい人は多いのではと思いつつ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで巨大なメインバッファを設定しても、意味がないということを何処かに書いた方が良いのかしらん? (概ね、512MBを超えると殆ど意味は無くなるはず。むしろDirectI/Oでdirtyページを閉じ込める意味が薄れるのでOS全体からは逆効果) https://t.co/6iuoDf2Jg9"
Shirouzu Hiroaki(白水啓章)さんのツイート: "相手がCIFS/SMBだと、LinuxではO_DIRECTは使うな、という感じに見えますね。… "
Kengo Sawatsuさんのツイート: "mount.cifsでマウントした先のfdに向かってO_DIRECT指定でopenすると死亡フラグについて、各OSごとに挙動違いすぎて方針決められないので、挙動をまとめてみました。。疲れたのでもう帰りたいorz https://t.co/k0l7lqJC4q #Linux #O_DIRECT #smb #mount.cifs"
Linux O_DIRECT with smb cache effects summary - Google スプレッドシート
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DirectIO にはメモリアドレスが「セクタサイズの倍数」という縛りがある(I/O時のデバイス転送絡みのはず)。 512eセクタ(内部4096)な場合、512バイト仮定で大丈夫だが、何らかの速度ペナルティが無いのか気になるところ。 (たぶん大丈夫かな…なお4096倍数の転送でないと速度低下するのは確認)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおメモリ・アラインを無視したデバイス転送を行うと、ドライバがエラーを吐かずとも、キャッシュ・コヒーレンスが壊れた経験あり。 https://t.co/yrE8N0T4MT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そうですね。さらに脱線すると、IRIX(ELAN4000) で発生した話で、SCSIデバイスからメモリにデータ転送が完了しても、転送前のメモリが一瞬見えてしまうという現象で苦労した覚えが…異常値検出しても次行のsprintfダンプでは既に正しくて(笑)」 / Twitter
Alireza FarshinさんはTwitterを使っています 「If you want to learn more about Direct Cache Access (DCA) or Intel Data Direct I/O (DDIO) technology when shifting toward multi-hundred-gigabit networks, check out our @usenix ATC'20 paper. #ATC20 #USENIX https://t.co/5vaSZYUdyM」 / Twitter
Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks | USENIX

I/Oスケジューラ

CFQ

CFQ - Wikipedia
CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
6.4. 設定
I/OスケジューラのCFQとクラスを理解する - Qiita

BFQ

技術者見習いの独り言: BFQスケジューラ
Xperia X10推奨のIOスケジューラ|老兵のあがき
I/O スケジューラについて 前編 - 所感 ~android~
I/Oスケジューラーについての考察 - droidroid
CPUスケジューラとI/Oスケジューラの組み合せを探って性能アップを目指す: Project Valkyrie
linux-ck とGrub2 のアップデート: くしゃみ日記
I/OスケジューラCFQの置き換えを画策するBFQスケジューラ。ほう。Budget Fair Queueing - tmatsuu のコメント / はてなブックマーク
I/O Scheduler - sc-02croot @ ウィキ - アットウィキ

Kyler

2017年7月3日 Linunx 4.12が正式リリース,AMD VegaやNVIDIA Pascalのサポートなどが追加:Linux Daily Topics|gihyo.jp … 技術評論社
過去最大規模のリリースという「Linuxカーネル4.12」リリース | OSDN Magazine

Noop

Noop scheduler - Wikipedia
LinuxのSSD設定 - Qiita
6.4.3. Noop
Fadisさんのツイート: "LinuxのI/Oスケジューラ、noopスケジューラとnoneスケジューラが全く別物なのネーミングにアレさがある"

Anticipatory scheduling - Wikipedia
Deadline scheduler - Wikipedia
I/Oスケジューラを使う。
ディスクI/Oスケジューラの設定 - 人生は、お天気いろいろ
OSSはアルミニウムの翼で飛ぶ: RHEL I/Oスケジューラの変更
I/O Schedulerをわかりやすくまとめる – Simple IT Life
Deadline IO スケジューラーを使用する - Red Hat Customer Portal
SSDの並列性を引き出すI/Oスケジューラに関する研究
【自分用】LinuxのI/Oスケジューラって知らなかったので少し調べてみた - Qiita
Linux 2.6 カーネル ベースの仮想マシンでディスク I/O パフォーマンスが遅い (2094615) | VMware KB
openSUSE 13.1: 第13章 I/O 性能のチューニング
Fadisさんのツイート: "linuxのscsi-mqをデフォルトで有効にしようという提案がなされている。 scsi-mqが有効な場合SCSIデバイスに対するリクエストは従来のI/Oスケジューラではなく、フラッシュメモリが物凄く速い時代に合わせて新しく作られたblk-mqを通してデバイスに送られるようになる https://t.co/fGya5h7WOY"
The Linux Kernel May Soon Default To SCSI MQ Mode - Phoronix
Fadisさんのツイート: "ストレージがマルチキューかつ凄く速くなって、I/Oスケジューラをプロセッサごとに持ってロックしないようにしないと、カーネルで詰まってストレージの性能が引き出せないの、ハードディスクの時代に作られたスケジューラにとっては想定外もいいところな状況だ"
Reading article about io.waight

エレベーターシーキング・コマンドキューイング

遅延書き込み - Wikipedia
NetWare --- LAN普及の足掛かりとなった高速なネットワークOS | 日経 xTECH(クロステック)
ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (1/3)|基礎から覚える 最新OSのアーキテクチャー
SUSE+XEN で作るプライベートクラウドのハードウェア選びのポイント : isLandcenter 非番中
CPUスケジューリング

システムコール

Linuxシステムコール徹底ガイド | プログラミング | POSTD
チュートリアル – システムコールの書き方 | プログラミング | POSTD
int 2E/sysenter/syscall考察 | 毛流麦花
Livaさんのツイート: "int命令のoperationと比較すると一目瞭然だった。(長すぎるので画像略) https://t.co/Jq2CehnsvG"
СЮУ1228さんのツイート: "フラットメモリモデルしか考慮に入れないとか、割込デスクリプタ参照したくないとか、スタックに積まないで退避用MSR増やしちゃえとか、いかにも最近の考え方でそもそもx86はそういう前提ではないと思うし設計時期が違うからということなのでわ https://t.co/uBJtlPhmX8"
Anatomy of a system call, part 2 [LWN.net]
品川 高廣さんのツイート: "SYSENTER は Intel の命令で SYSCALL は AMD の命令。IA-32 は Intel が決めたから、Intel は SYSENTER しかサポートしない。AMD は SYSENTER と SYSCALL を両方サポートする。反対に x64 は AMD が決めたから、AMD は SYSCALL しかサポートしない。Intel は SYSENTER と SYSCALL の両方サポートする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "同じLinuxのシステムコール呼び出しでも、sysenterはint80に比べて圧倒的に速い原理は、後者は全レジスタ退避&復帰が必須だから、みたいな話でいいのかしらん?"
FadisさんはTwitterを使っています 「Linuxに新しいシステムコールreadfileが入りたがっているらしい。readfileはファイルをopen、バッファ分だけread、closeを1回のシステムコールで行う。小さいファイルを大量に読む状況でシステムコールの回数が減るため、システムコールが安くない場合性能の向上が期待できる https://t.co/eSNFaUyZhV」 / Twitter
New readfile() System Call Under Review For Reading Small~Medium Files Faster - Phoronix

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "NTカーネルには、バッファI/O、ダイレクトI/O以外に、ニーザーI/Oというものを知った。 もう少しネーミングに工夫が出来なかったものか(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験の結果、デバイスの占有率と速度変化、SSDだと比例するのだが、HDDだと書き込み速度の下がり方は占有率数分の1だった。 ダイレクトI/Oとはいえ、HDD内のwriteキャッシュが有効なので、さもありなんという結果ではあるが、どうするかな。… https://t.co/H4OvSkJWT8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SSD/HDD識別に https://t.co/kt1N4L0Tce にある、IOCTL_ATA_PASS_THROUGHが紹介されていてadmin不要と書いてあるが、PhysicalDriveをGENERIC_WRITEで開く必要があり、事実上、admin必須なので候補から除外。"
SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのスピードスライダ改良(使っている人、どれだけいるのだろう?)、完璧とは言えないが、まあこんなものかな?というレベルにはなった。 転送時間とsleep時間の比率をベースに、SSD/HDD/ネットワークを識別して、パラメータ調整するイメージ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "RAIDになると、バックエンドの物理HDDが複数となる場合があり、同一判定でも常にシーケンシャルアクセスが良いかというと、そうでもない場合もありそうで、そのためにデバイス毎の上限アクセス数設定(デフォルト:1)があった方が良い?と思うことも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)がマウント時に、自分自身の暗号ボリュームファイルに対して、 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS を発行して覚えておけば良いだけなのだが…あまりニーズが無いということかしらん。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)で、FastCopyが同一HDD判定を間違う、という報告が来るが、 VeraCryptが IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS ioctl に常に0を返す挙動のため。 https://t.co/kdemtBfCkR"
FadisさんはTwitterを使っています: 「昔: 皆がストレージにバラバラ書くと性能が出ないから読み書きはカーネルに投げろ、カーネルがスケジューリングする 今: カーネルがスケジューリングすると貴重なCPUを浪費するからストレージにそのまま投げろ、スケジューリングはストレージのコントローラがする」 / Twitter

Linux Kernel: PSI - Pressure Stall Information /proc/pressure/io で IO 待ちを観察する - hibomaの日記
「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録 - GIGAZINE
Linux:昨今のI/Oスケジューラ事情 2020 | SlackNote

デバイスドライバ

その他

UIO

組み込みの人。さんのツイート: "LinuxのUIO (Userspace I/O)を試しているのだが、カーネル内のドキュメントが2006年から更新されてなくて、現状と食い違っててつらい。"
まさみさんは語りたいさんのツイート: "他のドライバのフレームワークと比べてUIOの場合厄介なのは、それを使うサンプルコードとなるドライバが、カーネルに含まれていないってことなんだよな。"
UIO(User space IO)の割り込みの使い方の例 - Qiita
[Linux] User I/O | archmemo
LinuxのUIO(User space I/O) その1 - Qiita
LinuxのUIO(User space I/O) その2 - Qiita

printk

まさみさんは語りたいさんのツイート: "Linux kernelのprintkで出力されるアドレス、%pを使うと暗号化されて出てくるようになってるけど、これを一元的に止める方法ってあるんだっけ?"
このコード、オシャカルトっ!さんのツイート: "@mhiramat /proc/sys/kernel/kptr_restrict を0にするっぽいです。"
まさみさんは語りたいさんのツイート: "謎だな、%pxにするとリークしちゃうというのは分かるから、%pKにするのが正解なのか。"
まさみさんは語りたいさんのツイート: "んー?kptr_restrictが0でも、%pKを使うとハッシュ値しか表示されないんですがこれは。"
まさみさんは語りたいさんのツイート: "わかったこと ・printkで%pだけを使うと常にハッシュ値が表示される。 ・%pKを使うとkptr_restrict=1の時だけsysadminには表示され、0のときはハッシュ値になる。 ・vsprintf.cのプログラムはこの辺りの処理が適当に書かれている。"
まさみさんは語りたいさんのツイート: "何が適当かって言うと、%pKの処理でkptr_restrict=1の時の処理が2重に書かれていて、通らない方の処理が残ってしまってるんじゃー!そしてそっちの方ではkptr_restrict=0の時には常に表示される、って設定になってる。 惑わされたわ。"
まさみさんは語りたいさんのツイート: "ああ、今最悪のblame結果を得た。通らない方の処理の方が先に書かれていて、その6日後のコミットで通る方が追加されているけど、追加したのはLinusだ。"
まさみさんは語りたいさんのツイート: "あー、理解した。%pKやめようぜっていう話なのか。基本的にkptr_restrictedは削除する方向になっているらしい。"
まさみさんは語りたいさんのツイート: "多分KASLRがあるためなんだけど、絶対アドレスでカーネルの内部を表示することは基本的にありえないっていうことになるようだ。"
まさみさんは語りたいさんのツイート: "デバッグ用途では未だ必要な気がするんですがそれは・・・。"
まさみさんは語りたいさんのツイート: "printkの%pKの処理を修正しようと思ったけど、Linusのパッチコメントでkptr_restrictが否定されていたので投げる気にならない。 というか、どうすればいいんだ?? https://t.co/Rsj5wJ95MP"
まさみさんは語りたいさんのツイート: "%px使えってことなんかな?"
まさみさんは語りたいさんのツイート: "printkの端的な理解を得た。 https://t.co/g6qGem5U1M ・%pxどころか%pもホンマはあかん。意味ない。使えんインタフェースをわざと残すことで、再考して欲しいんや。 ・そもそもホンマにカーネルのアドレスを教える必要なんてあるんか?よう考えてコーディングせい"
まさみさんは語りたいさんのツイート: "あとはkallsymsは何故特例として残されたか、が気になる。kprobesで比較するのはkallsymsだから、これと同じように扱われて欲しい。"
まさみさんは語りたいさんのツイート: "kallsymsはkptr_strictよりも少しきついだけの仕組みなんだけど、これを参考にしたほうがいいのか、%pKを使うべきなのか?"
まさみさんは語りたいさんのツイート: "ごめん、これは間違い。%pKも推奨されない。どうしても必要なら良いけど、基本的にはアドレスをポンポン表示しないこと、らしい。"
まさみさんは語りたいさんのツイート: "一応 %pの修正シリーズ出しておいたけど、4.14でどうなってたっけな?おかしかったらバックポートしないと・・・。"
まさみさんは語りたいさんのツイート: "しかし未だにprintkの%pをどうするべきかが良く分かっていない。今のままだとインタフェースとして意味がないから、なんとかしないといけないんだけど、うーん・・・。"
まさみさんは語りたいさんのツイート: "ふむむ、kptr_restrictはkallsymsがアドレスを隠す仕組みとは全く関係ないっぽいな。これはややこしい。"
まさみさんは語りたいさんのツイート: "LKMLを追いかけて理解した。 - %pは既にアドレスを表示しないようになっている(ハッシュ値) - %pxを明示的に使うことが必要だが、これ以上は必要でなければ使ったら警告される - %pKにすること。"
まさみさんは語りたいさんのツイート: "kallsymsはkptr_restrictが有効でなくても%pKと同じ動作をするようになってる。"
まさみさんは語りたいさんのツイート: "むしろkallsymsの方にスタンダードを併せて欲しい(笑)"
まさみさんは語りたいさんのツイート: "結局kallsymsと同じように振る舞うコードを書いて投げてみた。そのまま通ればそれでいいし、議論になったらなったで今後どうするつもりなのかを確かめてから修正する。"
まさみさんは語りたいさんのツイート: "それ既にLinuxでは削除しようかみたいな流れになってる。代わりに%pはハッシュ値になる。オプションではなく強制。アドレスをどうしても出す場合、%pxを使うことになるが、ダメコードとしてマークされる可能性が。… "

LinuxBoot

Fadisさんのツイート: "LinuxBoot: 「どうしてOSにドライバがあるのにUEFIの為にまたドライバを書かないといけないの?」に対するパンチの効いてソリューション。UEFI PEIの上でLinuxカーネルというファームウェアを動かしてLinuxのカーネルドライバを使ってOSを起動できるようにしよう、というもの https://t.co/e6XcY1J1qS"
LinuxBoot
Ryou Ezoeさんのツイート: "ちなみに推進しているのがGoogleという時点でお察し。… "
Ryou Ezoeさんのツイート: "すでに、デバイス上に転送して使うファームウェアブロブ以外すべてLinuxカーネルにしようというCoreboot、あらゆるブロブを廃止しようというLibreboot/Librecoreがあってですね。今回のはブロブを許容した上でLinuxカーネルを動かそうという試みで自由から一歩遠ざかっている。… https://t.co/6uVPlBJ1ZJ"
suzakiさんのツイート: "私は全てのNICにiPXEをインストールしてほしい。https://t.co/pqlREbcUn2 これがあれば、HTTPSでLinuxが起動でき、危険なTFTPブートを使わなくて済む。【宣伝】私が作っているBare-Metal ContainerではiPXEを使って任意のDockerイメージにLinuxカーネルをつけて、起動できますhttps://t.co/8udmvyyAu2… https://t.co/5EnFZdRJya"
iPXE - open source boot firmware [start]
baremetalcontainer/bmc: BareMetalContainer

NERF

Google Even Fear Intel ME, Reduce Their Attack Vector With NERF - Phoronix
more on Google NERF | Firmware Security
NERF - Trammell Hudson's Projects

blog

DSAS開発者の部屋:mruby を Linux カーネル内で動作させる(2017 ver)
linuxでRyzenの温度センサーを動くようにする - 覚書
Ryzenを積んだマシンで発生した新たな問題とその解決 - 覚書
x86-64 モードのプログラミングではスタックのアライメントに気を付けよう - uchan note
ファッション自作OSマンさんのツイート: "分かった.CPUが割り込み発生時に自動でスタックを整列してくれるんだ.Intel SDM Vol.3 6.14.2 "In IA-32e mode, the RSP is aligned to a 16-byte boundary before pushing the stack frame.""
IBM PC のタイマー事情 - 借り初めのひみつきち
Intel HD Audioで音を奏でよう
Intel HD Audioで音を奏でよう

Qiita

仮想シリアル(COM) ポートドライバ「com0com」によるシリアル通信 - Qiita
Null-modem emulator (com0com) 日本語情報トップページ - OSDN
Linuxの不揮発メモリ対応について - Qiita

Twitter

Fadisさんのツイート: "linux-4.16から/dev/memがデフォルトでペリフェラルにしか読み書きできなくなる。この制限は2.6時代に実装されたが長らくデフォルトでオフだった。オフの場合rootはカーネルメモリを含むあらゆる場所を読み書きできる為、不必要に開けておくべきではないとされている https://t.co/2Z7Q0klUV8"
Linux 4.16 Is Tightening Up Access To /dev/mem By Default - Phoronix
まさみさんは語りたいさんのツイート: "Linux kernelのモジュールも、ファイル名にはハイフンが使えるけど、実際にロードしたあとはアンスコに変換される。ちょっと面倒。"
Fadisさんのツイート: "I3Cってなんぞって思って調べたら、I2Cが遅すぎるけどSPIだとデバイス数に比例して配線増えて辛いからI2Cのようにデータ線とクロック線の2本で沢山のデバイスをぶら下げられて、最大半二重33Mbpsで通信できる次世代I2Cとして作られたバス規格、と…"
Makoto Kato ︎︎さんのツイート: "98NX、登場が2年早すぎて、OSR2.1/2.5のバグに引っかかりまくった記憶しかない。大概ISA PnPのIRQ rebalanceでいろんなものが動かなくなってくパターンだったけど。rtermが安定しないからすぐデバッガがハングアップしちゃってデバッグつらいだけだった"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応ドライバやカーネルコード知らない人向けに補足すると、カーネル側はユーザ側がポインタ指定したデータを取り出すのに copy_from_user/copyin等を介して取り出す必要ありと。 (アドレス空間が違うので直接触ると落ちたり…ただし昔のUNIXは(トップハーフ側なら)直接触れるものが多かった印象)」 / Twitter
FadisさんはTwitterを使っています 「OpenRGB-0.3がリリースされたらしい。OpenRGBは近年よくあるRGB LEDで光るPCパーツのベンダー毎の実装の違いを吸収し、統一された方法でネットワーク越しに色を変えられるようにするデーモン https://t.co/OhwZ8217N8」 / Twitter
OpenRGB 0.3 Released For Open-Source RGB Lighting Control - Phoronix

なぜWindowsの標準ドライバーはすべて「2006年6月21日」のまま更新されないのか? - GIGAZINE
第559回 デバイスの認識をモニタリング・コントロールできる「udevadm」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
スフォルツァートのネットワークプレーヤーがLAN DAC機能に対応 - PHILE WEB
DeviceTree: The Devicetree Specification
devicetree-org/devicetree-specification-released: Released versions of the Devicetree Specification
Virtual I/O Device (VIRTIO) Version 1.0
io386: tool wrapping around ioperm(2), iopl(2), outb(b), etc. | Firmware Security
groeck/lm-sensors: lm-sensors repository
start [HWMon Wiki]
HID over I2C | Microsoft Docs
ConexantのドライバをアンインストールしてPCのイヤホン出力を改善
XMODEM Protocol Overview
レガシーフリーOSに必要な要素技術 legacy free os
FreeBSD Press No.12 NetBSD column デバイスドライバにありがちなi386依存の罠
Kazuho OkuさんはTwitterを使っています 「わかる。上のレイヤで冪等性担保する仕組みがあると、下はすごい楽になる。レイテンシの低い冪等性(再送)アルゴリズムの設計と実装、すごく難しい(楽しい)んですけどね」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「virtio ドライバを実装していたときに思ったけどネットワークとストレージだったら後者のほうが難易度高い。TCP/IPネットワークはパケロス前提でOSが再送するけどもストレージは要求に対して応答が返ってくることが前提だからな。冗長化していても発生する問題を回避できる技術があったらきっと稼げる」 / Twitter

ストレージ

SATA

AHCI

Advanced Host Controller Interface Specification
AHCI - OSDev Wiki
AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
5/1 自作OSもくもく会さんのツイート: "ICH8/9のSATAコントローラは、クラスコードは01h固定だが、サブクラスコードはIDEモード(01h)とAHCIモード(06h)で値が変わるようだ。"
AHCI capability - 総本部日誌
Microsoft Word - dg_sataahciip_refdesign_jp.doc
Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc
Reconf 201506
AHCI奮闘記 - 初期化編 - 無限遠まで突撃中
AHCI奮闘記 - Read/Write編 - 無限遠まで突撃中

ATA-ACS

AT Attachment 8 - ATA/ATAPI Command Set
AT Attachment 8 - ATA/ATAPI Command Set
AT Attachment 8 - ATA/ATAPI Command Set
ATA Command Set - 4 (ACS-4)
ISO/IEC 17760-102:2016(en), Information technology — AT Attachment — Part 102: ATA/ATAPI Command set - 2 (ACS-2)
HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)|あなたの知らないWindows
【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その1 - PC Watch
【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その2 - PC Watch
T13
Home - INCITS
Untitled Page
ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)|次世代Windowsの姿が見えた!
【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch

忘却の彼方

忘却の彼方: DEVSLP(Device Sleep)機能とは
忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
忘却の彼方: SATA LPMの設定方法
忘却の彼方: SATA LPMって知ってますか?
忘却の彼方: SSD/HDD用ベンチマークソフト「TxBench」
実績:ベンチマークソフトウェア TxBENCH|株式会社テクシム ソフトウェア開発・販売

S.M.A.R.T

S.M.A.R.T 情報
CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
Seagate SMART Attribute Specification
S.M.A.R.T. is SMART! 各社対応編
HDDのS.M.A.R.T情報を取得する(UsefullCode.net)
世界基準を作った男。「CrystalDisk」シリーズの生みの親“ひよひよ氏”直撃インタビュー - エルミタージュ秋葉原

SecureErase

忘却の彼方: Linuxを使用したSecureEraseの手順
忘却の彼方: Crucial M500/M550/MX100とSecure Erase
一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
ALL about Linux: SecureErase を実施してみた
ALL about Linux: SecureErase のために frozen 状態を解除する方法
ALL about Linux: 中古 SSD の SecureErase

Wikipedia

Self-Monitoring, Analysis and Reporting Technology - Wikipedia
S.M.A.R.T. - Wikipedia
Aggressive Link Power Management - Wikipedia, the free encyclopedia
シリアルATA - Wikipedia
Serial ATA - Wikipedia, the free encyclopedia
Serial ATA International Organization - Wikipedia
情報技術規格国際委員会 - Wikipedia
International Committee for Information Technology Standards - Wikipedia
ハイブリッドHDD - Wikipedia
Hybrid drive - Wikipedia
ソリッドステートドライブ - Wikipedia
Solid-state drive - Wikipedia
シングル磁気記録方式 - Wikipedia
Shingled magnetic recording - Wikipedia
DevSlp - Wikipedia
Trim (computing) - Wikipedia
Native Command Queuing - Wikipedia

Twitter

✿せかいの底のゆるふぁ✿さんのツイート: "双子のVirtualBoxとVMWareのお話🐤"
✿せかいの底のゆるふぁ✿さんのツイート: "ideのディスク0にハードディスクを構成、ディスク1はデバイスなし🐤 https://t.co/gZtnRd4pNU"
✿せかいの底のゆるふぁ✿さんのツイート: "一方で、VMwareのEXECUTE DEVICE DIAGNOSTICの結果🐣 https://t.co/QhFQuxSl0f"
✿せかいの底のゆるふぁ✿さんのツイート: "両方ともデバイス1がありませんが、各レジスタ-の戻り値が違いますね🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "つまり決定性がないように見えます🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "これをどうやってデバイス1がないことをdetectするのかが問題です🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "答えはATAの仕様に記述されています🐣"

Purchase SATA Specification | SATA-IO
20100521170123066.pdf
dwm013300770.pdf
SATA hardware features - ata Wiki
HDD が AV コマンド対応か調べたい: ひでのブログ

NVMe

Twitter

histric-1

Fadisさんのツイート: "SATAのHDDは最大32個のコマンドを積めるキューをデバイス側に持っている。複数のコマンドを予約しておく事で、デバイスはより効率よくディスクを読み書きできる順にコマンドを並び替えて実行することができる。32個という上限は効率良くヘッドを動かす目的では十分な効果を発揮する長さだった"
Fadisさんのツイート: "しかし大量の不揮発メモリに一斉にアクセスできる時代にこのキューは短すぎる。そこでNVMeでは65536個のコマンドを積めるキューを最大65536個デバイス側に持てるようになっている。キューが複数になったことで個々のプロセッサは他のプロセッサがキューを操作する可能性を考慮する必要がなくなる"
Fadisさんのツイート: "ストレージが極めて高速な時代にその性能を生かすにはできるだけドライバに仕事をさせないことが重要とされている。NVMeではハイパーバイザがゲストにNVMeストレージの一部を見せる際にソフトウェアによる変換を行わなくて良いように、ハードウェアによる仮想化支援が規格化されている"
Fadisさんのツイート: "NVMeの仕様凄すぎて「SATAがおもちゃのようだ…」っていう感想が無限に出てくる"
satさんのツイート: "SSDならI/Oスケジューラが邪魔って話は結構有名でnoopにしようって書いてあることもある。ただしそうすると高I/O負荷状態で特定I/Oリクエストが永久に発行されない問題があるので結局SSDはdeadlineがデフォ。最近はBFSが出てきたが、評価してない。あとこれNVMe SSDだとBFSはどうなるんだろ"
ゆるsyuu1228△さんのツイート: "そういえばNVMeってMQ NICみたいに仕様上はマルチキュー対応してMSI-Xでキュー毎にIRQ持てたはずだけど現物はそうなってるかなぁ、と思って/proc/interruptsみたら確かに割り込みが複数見えるし割り込み先は各CPUに分散されてる https://t.co/ECuH6VTbJN"
nvme-interrupts.txt
中村 実さんのツイート: "NVMeの仕様はInfiniBand & OpenFabricsの仕様を大いに参考にしていると思われます。… "
<4D6963726F736F667420576F7264202D2081A18E9197BF34322D312D32814088CF88F589EF95F18D902E646F63>
satさんのツイート: "(そこでSPDKですよ)"
中村 実さんのツイート: "似ているというか、最初のNVMe仕様書を読んだ時は、用語の選び方や説明の仕方がInfiniBand仕様書にそっくりだと思ったものです。… "
satさんのツイート: "SSD、とくにNVMe SSDくらいだとソフト(カーネル)でI/O発行前に一旦溜めてゴニョゴニョしてる間にI/O発行して制御返ってきますので"
satさんのツイート: "具体的にどんな問題かというと例えばデバイスの尻の方にI/O一発出してからデバイスの頭の方に無限にI/O出すと 1. 前半のI/Oがブロック層でマージ/ソートされる 2. 一定数溜まるとドライバに渡される が延々と繰り返され、最初のはずっと残る。細かい条件は覚えてないけど、だいたいこんなん"
Takeshi HASEGAWAさんのツイート: "NVMはインターフェイス決めたものなのでそれをどう捌けるかはコントローラの問題なんだよな。はやくioDriveにあらゆる視点で勝てるデバイスでてほしい。"
Takeshi HASEGAWAさんのツイート: "Fusion-ioはCPU側でFTLまで実装してしまって、FPGAにあるのはフラッシュメモリへの転送を行うDMAコントローラやECC機能とかだった。OSのブロックレイヤを迂回するために各種小技を使っていた(場合によってはiostatが正しい報告をしなくなり、カーネルによってはunplug bug発生させたりもした)"
Takeshi HASEGAWAさんのツイート: "DDR2やDDR3のメモリ、2GHzのマルチスレッドプロセッサがホストにあるのなら下手に組み込みプロセッサでFTLするより早いだろ?という発想の作りだった。バス幅もクロックも高いし組み込みプロセッサの放熱なども考えなくていい。いま思い出してもいかにシンプルか‥知識が増えた今の方がやばく感じるな"
Takeshi HASEGAWAさんのツイート: "ここ一年でioMemoryの代わりに最新のNVMe評価したエンジニアが「ioMemoryのほうが速かったですね」とコメントしたという件を聞いて頭を抱えた。なんで2013年に設計されたioMemoryが実アプリでの性能評価で最新NVMeに勝ってしまったのか。がEOLになったいま、マジでioDrive麻薬が切れようとしている。"
Takeshi HASEGAWAさんのツイート: "75W消費し、カタログスペックの帯域幅倍近く差をつけられたHuaweiのカードに対して21W設計のioMemory SXが勝っちゃってお客さんに採用されたときも驚いたけどな。「もうさすがにFusion-ioの時代終わっただろ」と思ってパフォーマンスデータみるとケースによっては、かなり健闘していて、正直、びびる。"
satさんのツイート: "noopはたしか - 基本的にはFIFO - ソートはしない - キューの先頭に対してだけはマージしうる なので、似たような場所にI/O出しまくってると永久にマージされ続ける(ある程度溜まったらドライバに渡される)、という話だったと思います。たぶん。 大昔のlinus elevatorはソートもするのでもっと悲惨… https://t.co/WZeoK8XzAR"
Takeshi HASEGAWAさんのツイート: "私自身もioDrive2と某ストレージの比較したら、ioDrive2のほうが速くなっちゃって、あわててベンチマークのメトリック変えたりしたけどね。そのままじゃシナリオ通りにならなかったのでホスト側のバッファ絞って、リード帯域幅がより出せる最近のストレージにあわせてioDrive2より速くなるようにした"
satさんのツイート: "これちょっと訂正。マージはするけどソートは無し。いにしえのI/Oスケジューラと混じってた"
Fadisさんのツイート: "NVMe「プロセッサごとに割り込みを用意して効率よくコマンドの完了を通知… SPDK「割り込みなんて時間かかる処理いらねぇ! 俺はCPUをビジーループさせてデバイスをポーリングするぞ!」"
Fadisさんのツイート: "DPDKもSPDKも他のプロセスにCPUを譲る気ゼロでお前らなんでOSの上で動いてんの感満点である"
Fadisさんのツイート: "NVMeの仕様見てたら、デバイス側のメモリをホストのメモリ空間にマップして読み書きするデータを直接そこに書き込む拡張、とかあって「アッこれGPUでやったやつだ」ってなった。イマドキのストレージはそこまでするのか…"
まさみさんは語りたいさんのツイート: "GPUから直にNVMe読み書きすることもできると聞いた。… "

histric-2

Fadisさんのツイート: "NVMeのストレージ、取り付けたPCが起動していた時間と、正しい手順を踏まずに電源を落とした回数がデバイスに記録されてるwww"
Fadisさんのツイート: "従来のストレージだとSMARTとかでやってたのがNVMe自体の規格に取り込まれてる感じなのかな"
Takeshi HASEGAWAさんのツイート: "レジスタがあるはず。… "
Fadisさんのツイート: "ありますねー https://t.co/Bx6AUA0gzf… "
SPDK: spdk_nvme_health_information_page Struct Reference
Fadisさんのツイート: "NVMeのCMBを使うと、あるLBAにあるデータをCPU側のメモリに持って来る事なく別のLBAにコピーすることが出来るわけで、ファイルシステムは連続した領域を確保するために積極的に保存されているデータを移動させる事も選択肢に入れるべき状況になってきてる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "半導体メモリ系で、連続領域確保の必要性が良く判らない…ブロック(or ページ)未満のフラグメントの話なのかな? 話は飛んで NVDIMM-P。内部のDRAM - 不揮発メモリ間の転送=ページアウト・イン的な動作時に、CPU側のメモリバス帯域を汚さないだろう点に興味があったり。… https://t.co/kLlmmOokle"
Fadisさんのツイート: "昔流行ったioDriveと比較して最近のSandiskのNVMeは秒間にさばけるコマンド数では勝るけど1コマンドあたりのレイテンシでは負けてて、NVMeは性能を活かすにはFSやアプリケーションのレイヤーで「IOの完了を待つな」「できるだけ沢山のリクエストを受け付けてキューに積め」を徹底する必要があるげ"
Takeshi HASEGAWAさんのツイート: "ただ実際のところアプリケーションの動作としてキューに詰めて仕掛り状態で並列に実行できるものなら、という条件がつくんだよね。マイクロ秒の持ち時間で複数スレッドの行更新を調停し、真面目に見たら並列実行できないクエリをグループコミットするアルゴリズムなどで賢くしていくしかないのでは?"
Takeshi HASEGAWAさんのツイート: "なんでNVMe SSDがそんな方向に進化しているかって、そりゃみんな GB/s とか MB/s とか IOPS とかって所に書かれてる大きな数字が好きだろ?"
Fadisさんのツイート: "古典的なゲーム屋さんが燃えるタイプのマゾデバイスだこれ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの非同期I/Oを多用した仕組みに時代が追い付いてきた?… "
syuu1228さんのツイート: "Scylla、まずSSDベンチマーク走らせてIO並列度いくつまで上げていいか計らないとDBの起動が許可されないようになっておる https://t.co/6UBEIFH1D8"
syuu1228さんのツイート: "ほぼ初期からこうなので何の疑問も抱いてなかったけど冷静に考え直すと鬼畜仕様っぽいな https://t.co/qK2c9czbi6"
Takeshi HASEGAWAさんのツイート: "NVMe SSDとioDriveの比較DBベンチマークの取り方の一例。NVMeを強く見せたいなら、システムメモリに収まりきらないDBサイズでOLTP負荷をかければ、読み込み帯域の差で、新しい世代のNANDが載ったNVMeが勝つ。ioDriveを勝たせたければ、メモリに収まるDBサイズでロギング性能勝負にするとioDriveが勝つ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVMe(EVO960 1TB)内でファイルコピーする際、readとwriteを並列発行するのと、交互発行(read完了してからwrite発行)するのでは、2倍近く後者が速い不思議。 (DirectI/O + 1MB非同期I/Oを20個キューイング、Win10) HDDみたいな結果に。 (2.5インチSSDドライブではほぼ速度差なしだった記憶)"

histric-3

Fadisさんのツイート: "SPDKでSandiskの速いNVMeに直接writeを投げてみたら、1ページの書き込みでおよそ10μ秒とかいう計測ミスってんじゃないかって思うような時間で応答が返ってくる ._."
Fadisさんのツイート: "あっ、このデバイスVolatile Write Cacheがついてる。だから書き込みが読み込みより早く返ってくるのか"
Fadisさんのツイート: "spdkのblobstoreさん、デバイスのvolatile write cacheに載ってるデータのflushを行う手段が無いの渋い"
Fadisさんのツイート: "/dev/zeroのスループットが何故か1GB/sくらいで頭打ちになってnvmeから0をreadしたほうが性能が出るの、どうしてそうなった…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "bs=1M とかにしてみては?… "
Fadisさんのツイート: "bsをいろいろ変えて試してるんですが、1GB/sくらいで頭打ちになってるようなんですよ(if=/dev/zero of=/dev/nvme0n1でifをキャッシュに乗っているファイルにした場合もっと出る)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 if=/dev/zero of=/dev/zero bs=1M だと1コアをsys側で使い切った上で、1GB/sとかですか?… "
Fadisさんのツイート: "ほとんどsysですね… "
Fadisさんのツイート: "ただ コアを使い切って はいないようです。sysが60%くらいuserはほぼ無しで安定してます… "
Fadisさんのツイート: "あ、読み間違えてました、両側zeroはまだやってないです… "
Fadisさんのツイート: "両側/dev/zeroだと22.5GB/s出ました。ということはzeroが遅いわけではないって事になりますね… "
Fadisさんのツイート: "どうも/dev/zeroが遅いわけではないことがわかった、何でzeroとnvmeの場合だけ遅くなるんだろ"
Fadisさんのツイート: "NVMeでは複数のキューから命令を受け付ける為、ストレージ内で競合状態を起こす可能性がある。同じデータを触る2つの命令の間に、同じデータを触る別のキューの命令が割り込んで意図しない結果になるのを回避するために、キューに積まれた2つの命令をatomicに処理する為のフラグが用意されている"
Fadisさんのツイート: "SSDさんベンチマークとってると、同じベンチマークを繰り返してるのに突然お腹をこわしてスループットが1/3くらいに落ちたりして、SSDの気持ちを理解するのは難しい"
Fadisさんのツイート: "SSDさんは無口でコントローラが何をしているのか教えてくれないので、対話は困難を極める ._.… "
Fadisさんのツイート: "昨晩の睡眠を犠牲にする事によって「SSDのスループットはカーネルが何もしなくても時間と共に変化する為、2つの条件でとったベンチマークを比較する場合そのベンチマークは可能な限り近い時刻で取らなければならない」という悟りを開いた"
Takeshi HASEGAWAさんのツイート: "前のワークロードの影響を受けるからね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "SSDを2つ並べて、同じタイミングでベンチ開始、という意味ですか? それとも、同じSSDを立て続けにベンチ?… "
Fadisさんのツイート: "立て続けです。2つの条件のベンチマークをそれぞれ10回づつ繰り返して平均をとっていたんですが、SSDが突然速くなったり遅くなったりするので、2種類のベンチマークを交互に行って比をとるようにしたら分散が小さくなりました、という話です… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど! 双方を連続してベンチするだけでなく、何度も(間断なく)繰り返すのがポイントという感じですか。 (単発テストだと、双方を連続してベンチをとっても、最初に試行する側が好成績になりがちな印象があったので…)… "

Fadisさんのツイート: "Fadisさん「NVMe SSDどんなに激しく扱ってもコンテキストスイッチのオーバーヘッドとか誤差なんだけど、Intelはどんな環境でSPDKやってるんだろう」 Intelのドキュメント「Xeonサーバに、NVMe SSDを16本さして、100GbE 2枚にデータを流しても、SPDKならスケール!!!」 Fadisさん「ア、ハイ」"
Fadisさんのツイート: "公式のパフォーマンス報告に書いてある環境が凄すぎて用意できない問題"
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 以前、Win10 + Direct I/O + Async I/O + EVO960実験中に気付いた話。 ReadキューとWriteキューを同時に溜めると大幅に速度低下する。 速度向上に Asyncで並列度を上げるのは大事だが Readキューを連続蓄積&処理した後に、Write I/Oキューを連続蓄積&処理した方が、1.5~2倍速くなる。… https://t.co/wXChry7hxh"
Shirouzu Hiroaki(白水啓章)さんのツイート: "EVO960でRAIDを組むと、SPDK等無しでも 6.5GB/s に。 (M.2-PCIe変換ボード2枚刺し環境) https://t.co/AsDBqJkngG"
Fadisさんのツイート: "NVMeのSSDは、きちんと性能が出るように使うには工夫がいる扱いの難しい子だけど、うまく使うと3万円のNVMeで150万円のioDriveを圧倒するスループットが出る、弄りがいのある子だよ"
hitoさんのツイート: "「まさかの(実用上)Windows専用のNVMe」なんていう概念が誕生していてquirkを強いられるLinux https://t.co/P1X96Gi3hY"
Fadisさんのツイート: "NVMeをソフトウェアのRAID0でより高速にしようというアイデアはやめておいた方が良い。PCI-Expressの帯域不足が問題になる程の勢いでデータを流してくるデバイスに「データを加工して読み書き」なんて工程を追加したら簡単にCPUがボトルネックになる。どうしてもそこを攻めたい時はSPDKを使うと良い"
KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
鯉江さんのツイート: "NVMe->GPUとかFPGAに直接流し込めないものだろうか...… "
Fadisさんのツイート: "その為にNVMeにはController Memory Bufferという拡張があります。対応したデバイスの場合、ホストのアドレス空間にマップされたデバイスのバッファに置かれたデータを対象にread/writeが可能なので、PCI-Expressのデバイス間でデータをDMAして、read/writeコマンドだけCPUから投げる事ができます… https://t.co/v0jTUkofDp"
KaiGai Koheiさんのツイート: "そうするとGTXでP2P DMAができてしまう的な。"
KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
KaiGai Koheiさんのツイート: "そうですね。元Twは昨晩見ましたが、SPDKがそういった10GB/sとかで押し寄せるデータの処理・加工に有効に作用するようには思えませんので、(?_?)という感じでした。… "
Takeshi HASEGAWAさんのツイート: "なるほど… "
Takeshi HASEGAWAさんのツイート: "ただ条件句うんぬんの処理がさばききれなくなるのが、mdraidじゃなくSPDKでさばけるようになるという話しだとすると、直感的によくわかりません。うーん、RTしたツイートだけで考えるのはよくないですね。あとで流れを読み直してみるか。… "
Takeshi HASEGAWAさんのツイート: "んーしかし元ツイートの趣旨がよくわからんな。 帯域幅当たるほどのスループット出そうとするとブロックサイズ大きくなってきてCPUサチらないんじゃ。というかそもそもNVMeインターフェイスとブラックレイヤーとmdraid介してI/Oして、どんながCPUサチるどんなワークロードだろ。"
KaiGai Koheiさんのツイート: "たぶん、NVME-SSDから読み出したデータを何がしかCPUで処理しようとする(例えばレコード毎に条件句の判定する)と簡単にサチるのという主旨ではないかと理解しました。右から左へ流すだけなら、まぁ、変な作りしてなければ。… "
hiyohiyo (Noriyuki Miyazaki)さんのツイート: "CrystalDiskInfo 8.1.0 Beta2 - Intel RST NVMe サポート - ついにDELL製NVMeモデルに対応しました! ダウンロード: https://t.co/Zf6OWgakVP ソースコード: https://t.co/pSOA7DRXhT… https://t.co/BDttKZG7wD"
CrystalDiskInfo 8.1.0 Beta2 · hiyohiyo/CrystalDiskInfo@902b408
Kazuho Okuさんのツイート: "erase block単位で書込してればtrim不要だしスループットもよくなると思うんだけど、汎用fs+クラウドだと難しいのかなぁ / https://t.co/H7CFUW1zee"
高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
Takeshi HASEGAWAさんのツイート: "Fusion-ioはTRIM相当操作がめっちゃ速いようにカーネルに反応してて、それを前提で全力でTRIMしまくるコードをSATAかなんかのSSDで使ったらほぼ息しなくなって、カーネルのバグじゃないかとLKMLで疑い始めたが、結果として「SSDがマジでTRIMで固まってるね」でスレ終了したの思い出す… https://t.co/i6IjtpSLZ4"
Nobutoshi Ogataさんのツイート: "“高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ” https://t.co/PKMUway6w3"
品川 高廣さんのツイート: "そういえば Apple の NVMe コントローラおかしい問題は BitVisor でも苦労してたな。https://t.co/T926JEyT59… "
Fadisさんのツイート: "AppleのNVMeストレージを使うためのパッチがLinux 5.4でのバニラカーネル入りを目指している。2018年以降のMacに載っているApple製のNVMeがNVMeの規格に沿っておらずLinuxのNVMeドライバで使えなかった問題を解消するらしい https://t.co/Hd1ZC8QkK7"
The NVMe Patches To Support Linux On Newer Apple Macs Are Under Review - Phoronix
Takanari HayamaさんはTwitterを使っています: 「@utshina2 はい。BitVisor ベースの vThrii では対応済みです。なので、vThrii を入れると Linux も T2 が載った Mac で動いたりします。」 / Twitter
品川 高廣さんはTwitterを使っています: 「@taki_igel なるほど、vThrii を入れると Apple NVMe が標準的な NVMe に化けるわけですね。これは面白いですね。」 / Twitter
FadisさんはTwitterを使っています 「先日LinuxのENAの初期化を速くしていたlitelが今度はNVNeの初期化を速くしたらしい。方法はENAの時と同じでデバイスが利用可能になったかを100ms間隔でチェックしていたのを1ms間隔に変更するというもの。NVMeの初期化は通常100msもかからないため起動時間の短縮が見込める https://t.co/WgQbiHnMt8」 / Twitter
NVMe SSD Systems May Boot Slightly Quicker With Linux 5.7 - Phoronix
FadisさんはTwitterを使っています 「NANDフラッシュは5GB/sを1ブロックづつ処理して達成できる程高速ではない。それでもNVMeが高いスループットを達成出来るのは重複しないブロックに対する操作を同時に行う事で単位時間あたりの性能を稼いでいるから。言い換えるとNVMeは高スループットの割に高レイテンシという特徴を持つデバイスなんだ」 / Twitter
NV(*´ω`*)さんはTwitterを使っています 「@fadis_ 利用者からは高速に見えるけど、実態はNANDの積層とキャッシュでごまかしているというやつですな」 / Twitter
FadisさんはTwitterを使っています 「@nvsofts キャッシュが詰まると突然性能が落ちるし、flushをきちんと待つと小さいI/Oの性能が全然出ないたのしい」 / Twitter
FadisさんはTwitterを使っています 「PS5が採用するかは知らないけど、NVMeはコントローラのバッファをホストのアドレス空間にマップする拡張(CMB)があって、これが使える場合CPUはread要求だけ投げて、バッファに上げたデータはCPUにまわさず直接GPUが持っていくみたいな事ができる。対応してたら絶対楽しい」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.9からNVMeのZoned Namespaceがサポートされるらしい。Zoned Namespaceではストレージは256MBくらいのZoneに分割され、各Zoneは追記または丸ごと消去しかできない。この制約によりFTLの仕事が大幅に減り、不便だが性能の良いストレージが実現する https://t.co/fIyJD0eGg1」 / Twitter
NVMe ZNS Makes It Into Linux 5.9 Along With MD RAID Fixes - Phoronix
FadisさんはTwitterを使っています 「NVMeのZNSやSMRを直接公開するハードディスクはZonedStorageと呼ばれ、Linuxではブロックサイズが異常に大きく特殊なコマンドを受け付けるブロックデバイスという扱いを受ける。こうしたブロックデバイス上で動くファイルシステムには専用の対応が必要で、現状F2FSとBtrFSが対応している」 / Twitter
FadisさんはTwitterを使っています 「NVMeに今年追加されたsimple copyをLinuxが使えるようにするパッチが出ている。simple copyは「デバイス内の複数箇所から読んで一箇所に書く」をデバイス側で完結させるコマンドで、F2FSのログやZNS上に作ったログの整理、CoWなFSで頻発するコピーの性能向上が期待できる https://t.co/7ytVV5pwYg」 / Twitter
NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「このNVMeのsimple copyの狙いって表向きは処理のオフロードだけど、多分デバイス屋は書き込みの目的がコピーであることをデバイスに明示することで、FTLが複数の論理アドレスに1つの物理アドレスを割り当てる(=コピーしたことにする)を可能にするとこまで考えてるよな」 / Twitter

NVMe準拠のPCIe 3.0接続となるIntel製SSD「SSD 750」レビュー。SATA 6Gbps比で2倍以上という圧倒的な速度性能を確認する - 4Gamer.net
SATA AHCI SSD から、NVMe SSD へ|株式会社アークブレイン
NVM Express | 低いレイヤの話
NVM Express » Specifications
koie blog : いってきた: MemoryPlus Workshop
www.snia-j.org/tech/WH/PCIe_SSD/files/PCIe_SSD_101_J.pdf
CrystalDiskInfo 6.7.0-3 | Crystal Dew Blog
NVM Express | tous les jours
NVMe: Controller Initialization and Shutdown Processing | tous les jours
福田昭のストレージ通信 SSDインタフェースの現在(3):PCIe SSDの性能を引き出す「NVMe」 (1/2) - EE Times Japan
NVM Express - Wikipedia
NVM Express - Wikipedia
Non-Volatile Memory Express
Hisaki Oharaさんのツイート: "NVMeFを使っても割込みがなくなるわけでないからSPDK使おうぜ、とかそういう話になるんだろうか"
spdk/lib/nvmf at master · spdk/spdk
「NVMe over Fabrics」でストレージ環境が一変する――注目の技術革新を解説 (1/2) - TechTargetジャパン サーバ&ストレージ
NVM Express1.3 - 約2年半振りのNVMe規格アップデート | PC Core
qemuのNVMeが微妙なlegacy割り込みをする話 - livaの雑記帳
NVMe ストレージの揮発性内部キャッシュ - 誰かの役に立てばいいブログ
徹底解説:SSD向け次世代接続規格「NVMe」、存在感を増す新規格の全貌 (1/2) - TechTargetジャパン サーバ&ストレージ
極めて速いストレージとの付き合い方 - Speaker Deck
BitVisor Summit 7「3. Interesting Issues During NVMe Driver Developmen…
2019年1月18日号 discoの開発,各種ハードウェアサポートの拡充とカーネルパッチ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
NVM Express Revision 1.2 の仕様が公開されるも肝心の NVMe over Fabrics は含まれず - 教育は参考ブログ
NVMeドライバをLinux上でuioを用いて開発してみたが間に合わなかった - /var/log/hikalium
NVMe HMB機能を使ってみた - Fixstars Tech Blog /proc/cpuinfo
NVMe ドライバの HMB (Host memory buffer) 初期化処理のバグフィックス - Fixstars Tech Blog /proc/cpuinfo

SD

Simplified Specifications - SD Association
新規格「ビデオスピードクラス」に対応したSDカードが登場、SanDisk製 - AKIBA PC Hotline!
cat pics RT bot(代理)さんはTwitterを使っています: 「SDHC 4.xだと64bit addressingは96/128bit descriptorなのかー。ADMA3かー」 / Twitter
cat pics RT bot(代理)さんはTwitterを使っています: 「Apollo LakeだとAPL18 erratumのせいで96bit descriptorでDMAしないと駄目なのかー、なるほどね」 / Twitter
cat pics RT bot(代理)さんはTwitterを使っています: 「ADMA2でも96/128bit descriptorが使えるのか。建て増し増しで訳が分からなくなってきた(最初から分かっていないという説有り」 / Twitter
FadisさんはTwitterを使っています 「2行の変更でRasPi4のSDカードのデータ転送を倍速にするパッチが現れたらしい。SDカードにはクロックの上げ下げ両方でデータを送るDDRモードがあり、RasPi4のハードウェアはこのモードをサポートしているが、誰も有効にしていなかった、という物 https://t.co/ZRS4ooPLGW」 / Twitter
Linux Patch Proposed To Double Raspberry Pi 4 Transfer Speed To eMMC/SD Storage - Phoronix

virtio-blk

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第20回 bhyveにおける仮想ディスクの実装

バックアップ

一ノ瀬 いろはさんはTwitterを使っています: 「バックアップからの復元を行わなければならない時は、大体焦って普段やらないミスをしてしまうので手順はなるべくシンプルな方が良いと言う主張をして行きたい。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップは本当に札束で殴るしかない印象ある。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップの怖いところは、リストアしてみるまで思い通りにバックアップできてるかどうか、個人だと特にテストのしようがないのがつらい。」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています: 「@d_toybox 同型の予備機とか現実的では無いですからねぇ。」 / Twitter

暗号化

Shinji KonoさんはTwitterを使っています 「fs全体を暗号化はアホ過ぎる。しかし、HDD全体を暗号化すれば消す時にはキーを捨てるだけで良いってのはある。しかし、ちゃんとキーを消せるのかってことになる。キーの市場みたいなのができて、そこに売れるとか…」 / Twitter
https://twitter.com/wakatono/status/1308455622317203461
https://twitter.com/shinji_kono/status/1308457516703989762
https://twitter.com/wakatono/status/1308455207903272961
Shinji KonoさんはTwitterを使っています 「必要な部分だけ暗号化すれば良いが、そこから取り出した平文なコピーはどうする。メモリ上にはそういうものがたくさん。メモリも暗号化するのか? 何が目的かによるね。漏洩と暗号化は直交したもの。暗号化したから良いってものではない。」 / Twitter

Twitter

マルチスレッド

κeenさんはTwitterを使っています 「これ面白い。それなりのサイズのファイルに大量にアクセスするとき、SSDだとマルチスレッドで性能が上がるけどHDDだとマルチスレッドで性能が下がる。 Performance Impact of Parallel Disk Access | Piotr Kołaczkowski https://t.co/kj6UYmToWh」 / Twitter
Performance Impact of Parallel Disk Access | Piotr Kołaczkowski
κeenさんはTwitterを使っています 「そこでハードウェアごとにスレッドプールを使いわけて、HDDにはシングルスレッド、SSDにはマルチスレッドでアクセスする話。Rustだと所有権絡みでスレッドプールが複数あると扱いにテクニックが必要になる。 Multiple Thread Pools in Rust | Piotr Kołaczkowski https://t.co/M5yHbnSsDH」 / Twitter
Multiple Thread Pools in Rust | Piotr Kołaczkowski
κeenさんはTwitterを使っています 「HDD x マルチスレッドで性能でないのはそれぞれのリクエストが入り乱れてランダムアクセスになるから。小さいサイズのアクセスならOSがリクエストをソートしてくれるからむしろ速くなる。SSD x マルチスレッドで性能が出るのはリクエストキューを埋められるから。」 / Twitter

histric-1

matsuu@ババウさんのツイート: "ほう。ioping知らなかった。各種パッケージシステムにすでにあるらしい / “linux-freebsd-openbsd-macosx-find-disk-io-latency-with-ioping” https://t.co/iD1Ah5iFTL"
How to find disk I/O latency with ioping monitoring tool on Linux - nixCraft
Yoshihiro OKAMOTOさんのツイート: "SeagateはコンシューマPC向けHDDでSMR採用になったみたいだけど、酷かったArchiveの頃とは違い、故意にSMRの苦手なワークロード走らせたりしなければ普通に使えるようになってるみたいね"
まさみさんは語りたいさんのツイート: "SMRはSMR対応のログファイルシステムがきちんとOSネイティブで実装されていないと使いたくないなあ・・・。どうなったんだっけか。"
Fadisさんのツイート: "DPDKでreadするとプリアンブルを除いたイーサネットフレームが返ってくる。SPDKでreadすると指定したLBAから始まる領域の値が返ってくる。レイヤーとしては大して変わらないのにSPDKの方はなんとかなりそうな気がしてDPDKは険しい道に感じるの、どう考えてもTCPを実装するのが人類には難しすぎるからだ"
Fadisさんのツイート: "SPDKのblobfs、ファイル操作のAPIは根本的に形を変えないと近代的なストレージの性能を活かせないという低レイヤーからの要求と、従来のAPIから使い方を大きく変えると既存のアプリケーションが移行できないという高レイヤーからの要求がぶつかり合って出来た残念のカタマリって感じがする"
Fadisさんのツイート: "blobfsの下まで完全に非同期のストレージデバイスの操作を引っ張ってきたのに、ここでブロッキングI/Oになるのか…"
Fadisさんのツイート: "ぁーそんな気はしてたけど、SPDKのblobstore、複数のスレッドから別々のチャネルを使って書き込むと壊れるか…"
Fadisさんのツイート: "いや、じゃなくてこれ、メタデータを触る操作を複数スレッドから行うと壊れるだけで、個々のスレッドが別々のblobのデータを触っている限りは壊れないとかそういうアレかな"
ウェアレベリング - Wikipedia
hiyohiyo@個人開発21年目さんのツイート: "こういう結果を見るとブロックサイズが128KiBよりも大きなシーケンシャルリード/ライトテストは必須なんだなぁ・・・。- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch https://t.co/jT657G1d14"
まさみさん⋈語りたいさんはTwitterを使っています: 「この手の話、もう組み込みlinuxでは十年以上前から当たり前で、mount時にnoatimeつけるとか、rootfsをinitramfsにするとか、フラッシュにはログだけ書く、ログはファイルシステムを使わない(寿命をある程度見定めるため)、まである。 https://t.co/XcBHA6WOKV」 / Twitter
とみながたけひろさんはTwitterを使っています: 「フラッシュメモリ書き込みすぎて車全体が文鎮にってすごいな。組み込みだったらライフで書き込む量とか結構まじめに計算して安全係数もそれなりにかけるし、エンターテイメントシステムとかは他と分けたりすると思うんだが、、、https://t.co/9w6OOhIAtl」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@mhiramat あと今時のemmcなら書き換えの多いパーティションは(疑似)SLC領域にして書き換え可能回数増やすとか、普通のベンダーに相談したら色々と教えてくれますよねえ」 / Twitter
FadisさんはTwitterを使っています: 「@ponkotuy LBAが利用できるようになる前にハードディスク上の位置を表すのに使われていたのがシリンダ、セクタ、ヘッド。かつてはそれぞれ半径方向、円周方向、何枚目のプラッタかを表す値だった。今のハードディスクはより複雑な形で記録しているため、これらの値から1つのLBAが求まるだけの値になっている」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています: 「SSDの方が消去されたディスクからデータを復元するみたいのはるかに難しいというかほとんど無理だろうに何でHDDよりSSDにデータ消去に課題があるみたいな論調なの…???:HDDからSSDへ いいことずくめ?データ消去に課題:朝日新聞デジタル https://t.co/4aQNOtOBEM」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@syuu1228 確かにTrimで消えるので楽に思えるんだけどそのタイミングで不良セクタ化しちゃうと中途半端な状態でデータがチップ内に残っちゃったりするし、そもそもTrimがいつ効いたかって外形的にはわからないので、1bitも残すなと言われると、残ってる可能性を突き詰めていくと途方に暮れるんですよこれが…」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「SSDの完全消去は「無理」というのは言い過ぎですが、ちゃんと消えるかわからないとされる根拠は2011年USENIX FAST11で発表されたこの論文です。 https://t.co/grCIYTIA9L Secure Eraseに対応しているにも関わらず、コマンド発行してもデータが消えないSSDが当時見つかってます。今はどうでしょうね… https://t.co/LzOwI6vpWJ」 / Twitter
Wei.pdf
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@goodmoon @syuu1228 他にも物理的破壊に関するいくつかの研究があります。有名なのはこれ。 https://t.co/ZOjttFXoaj 2008年当時の話ですが、NANDフラッシュメモリが熱や電気や…に対していかに堅牢かが分かります。簡単には消えないのです。ただ当時と比べてだいぶチップの構造が変わったので、追試の必要はありますが。」 / Twitter
Recovering data from USB flash memory sticks that have been damaged or electronically erased | Proceedings of the 1st international conference on Forensic applications and techniques in telecommunications, information, and multimedia and workshop

FadisさんはTwitterを使っています 「SSD、out-of-placeで書く事で消去の遅さを隠蔽するから書き込みの度にゴミが出て、それをガベコレが後で回収するんだけど、SSDのコントローラの性能は有限だからSSDでより高いスループットを得る為の近年の工夫が「ガベコレが回収しやすいようにゴミを出せ」になってて、なんて難しいデバイスなんだ…」 / Twitter
FadisさんはTwitterを使っています 「NANDの制約を隠蔽するSSDのコントローラが複雑になって性能を出すのが難しいから、「アプリケーションがNANDの制約を受け入れる」から「コントローラで複雑な処理をせずにデバイスを直接見せろ」というZoned Storageが台頭するの、かつてのGPUの流れに似ていて面白い」 / Twitter
FadisさんはTwitterを使っています 「Intelが Optane DC Persistent Memory(DCPMM)のファームウェアをLinuxからシステム全体を再起動せずに更新できるようにするパッチを投げている。DCPMMはDIMMスロットにさして使う不揮発メモリデバイスだが、どうもデバイス側にファームウェアを持っているらしい… https://t.co/JKojaTBOY5」 / Twitter
Intel Adds Capability To Linux 5.9 For NVDIMM Firmware Updates Without Reboots - Phoronix
FadisさんはTwitterを使っています 「FTLがブロックの割り当てを変更するSSDにおいて「ファイルを削除する前にゼロクリアしたからディスクを漁ってもファイルの内容は取り出せない」というHDD時代の作法は意味を持つだろうか。SSDにおいてはSecure Eraseが実際にSecureにEraseしない場合確実にデータを消す方法は無いのではなかろうか」 / Twitter
FadisさんはTwitterを使っています 「そもそもHDDの時代においても、CoWなファイルシステムの場合ファイルをゼロクリアしてファイルの内容がディスク上から消えたつもりになるのは誤りなわけだが」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ログ構造化だけでなく、NTFSの圧縮ファイルでも同様の指摘があった記憶。 たぶんファイルシステム層orデバイス層で「本当のデータ消去」APIを用意してもらうしか、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号ファイルシステム(or 暗号対応HDD)を使って、rawデータを読み取っても無効というのがまあ無難な対処かな? (その状態なら、NTFSでのLBAを信用した0上書きでも undelete系の無効化に十分意味あるだろうな)」 / Twitter
suzakiさんはTwitterを使っています 「思い出してメモ OS内に残るデータのライフタイムについて。 古いけどこの論文は面白い。 Understanding data lifetime via whole system simulation 13th USENIX Security Symposium (2004) Chow, J., Pfaff, B., Garfinkel, T., Christopher, K., Rosenblum, M. 共著はVMwareを創業したRosenblum先生」 / Twitter
suzakiさんはTwitterを使っています 「@fadis_ ちょっと古いですが、SSDで完全に消去するのは難しいことを述べた論文。Secure Eraseについても言及しています。 USENIX FAST’2011 Reliably Erasing Data From Flash-Based Solid State Drives https://t.co/ymWRsLBrVB」 / Twitter
Wei.pdf
suzakiさんはTwitterを使っています 「@fadis_ メモ追記。 IEEE S&amp;P 2013でのデータ消去に関するSoK論文。 SoK: Secure Data Deletion https://t.co/tgBWUloTnV」 / Twitter
SoK: Secure Data Deletion - IEEE Conference Publication
FadisさんはTwitterを使っています 「コントローラが1ブロックのatomicな書き込みを保証してくれるNVMeと違い、NVDIMMでは一度にバスに流れる64bitがatomicに書ける単位になる。もっと大きな物を電源が落ちても途中で途切れないように書くには、ソフトウェアでトランザクションをやらなければならない。PMDKのlibpmemobjがまさにそれ」 / Twitter

日本初となる内蔵SSDデータ消去ソフトの評価制度が開始 - PC Watch
ハードディスクの正しい消去
Category:ATA - OSDev Wiki
ATA PIO Mode - OSDev Wiki
Disc rot - Wikipedia
otakuto/CrazyDiskInfo: CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems.
マイクロソフトが、データセンター ハードウェアのストレージとセキュリティの業界標準を築く – Cloud and Server Product Japan Blog
Thanos - 無制限ストレージを備えたスケーラブルなPrometheus
【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch
トーバルズ氏:Linuxでフロッピーディスクドライバーは「面倒を見る人がいなくなった」 - ZDNet Japan
Linuxでのフロッピーディスクのサポート打ち切りをリーナス・トーバルズが発表 - GIGAZINE
SCSI Block Commands - 3 (SBC-3)
PC Insider 解説目次 - @IT

FS

その他

Gfarm

Publications
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館

@hei_nyan

okamo(aged 5 yrs.)さんはTwitterを使っています 「lustreの動きと仕組みはなんとなく理解してると思うので、beegfsあたりの動きをちょっとみてみたいな。AWSのマーケットプレイスにあるので触ってみるか」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「分散ファイルシステムの振る舞いと実装って各システムが独自進化していってる感があって、よくわからんというのが正直なとこなんですよね」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「セマンティクスの定義はunix semanticsとsession semantics、以上、で細かい話し始めると色々疑問が出てくる。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「"session semantics - no changes are visible to other processes until the file is closed." これ厳密に守ろうとするとバージョン管理が必須になるけど、そこ頑張ってるシステムは聞いたことない。DAOSとか最近のシステムの実装はわからんが https://t.co/PLW0SipacJ」 / Twitter
Distributed File Systems
okamo(aged 5 yrs.)さんはTwitterを使っています 「session semanticsの出自がどこかはわからないんだけど、業界ではNFSのclose to openがイコールで語られる。 でもNFSってcloseしてなくても別プロセス/クライアントから書いたデータ読めちゃうよね?となる。実用としてそこは気にならないんだろうけど、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「実態はclose前のデータは読めるかもしれないし読めないかもしれない、なんだろうな。とは言え実用としてはこの辺りの中途半端な状態は未定義で、closeしたら次のopenで読めますよ!が分かりやすいんだろう。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「namespaceのセマンティクスに関しては全く言及が無いし、実際NFSでもファイルをrenameして同名で作ったファイルを別クライアントからopenしたらrenameされたファイルが読めてしまうことはあったはずなので、色々複雑である。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「まとめると、FSのセマンティクス(そもそもセマンティクスてなんだ)って結構いい加減なので、期待される最低限以外は自由に作ってくださいな、になるんだろうと思った次第。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「unix semanticsはそれなりに厳しい。多分external consistencyレベルは維持しなきゃ成り立たなくて、Lustreは基本的にこれ。 (というかlinearizabilityとの作り上の違いをちゃんとわかってないので雑魚)」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustreは排他周りが非常に複雑で20年を超えたシステムの成熟度合いを感じざるを得ない。使い手からは何したら良いのかわからん、みたいな話は聞くけどこれはunix semanticsを維持することの限界と勝手に思ってる。複雑すぎる」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「そういえばLUMIがCephを入れてるのには結構興味ある。DAOSとかHPCメイン(?)で開発されたオブジェクトストレージじゃないCephをどう使ってくのか。IB対応とかも見かけるけど、割と一般的なオブジェクトストレージは敬遠されてたイメージなので、、、弊社の姿勢だけなのかもしれんが」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter

MBR(Master Boot Recode)
Episode 04: Filesystem on NVM / Self-Driving Car on Dessert – Misreading Chat
【USBメモリー】 最適なアロケーションユニットサイズ 【SSD&HDD】 | USBメモリー収集家のブログ
USBメモリのフォーマットを変更して高速化する - ぼくんちのTV 別館
浪費のような、そうでないような。: スマホでSD Formatterは使ってはいけない
closeがEINTRを返したらどうするべきか - Togetter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「前方に上書き可能領域があるから、ロジックは比較的簡単に実現できるが、有効領域サイズ分のwriteは必要と。 昔からログファイルで有用な、サイズ指定ローテーション可能なファイルシステム欲しいと思うことある。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「1TBのストレージの中に入っている700GBのテキストファイルの先頭3億行を削除したいのだがどうすればいい?」 https://t.co/33NRL4WSbI」 / Twitter
shell - How do I remove the first 300 million lines from a 700 GB txt file on a system with 1 TB max disk space? - Unix & Linux Stack Exchange
FadisさんはTwitterを使っています 「mpoolがバニラカーネルに入りたがっているらしい。mpoolはblock deviceの上で動くオブジェクトストレージで、書き換えにコストを伴う近代的なSSDで性能を出せるようにfsより制限されたデータの操作方法を提供する。SSD向けのKVS HSEがバックエンドとして使っている https://t.co/fb2k2yH8Un」 / Twitter
Micron Looks To Upstream Their Media Pool "Mpool" Object Storage To The Linux Kernel - Phoronix
[論文紹介] Snowflake - NSDI '20 -
FadisさんはTwitterを使っています 「HSEのような手法は「ハードウェアの構造化ログとファイルシステムの構造化ログは連携できない」という前提の上に成り立っているから、ハードウェアがより高レイヤーの操作(この書き込みは何の為の書き込み?)を理解するようになると、また事情が変わってくるんだよな」 / Twitter

ISO image

UDF

ユニバーサルディスクフォーマット - Wikipedia
Universal Disk Format - Wikipedia
パケットライト - Wikipedia
Packet writing - Wikipedia
Standard ECMA-167
UDF(ユニバーサルディスクフォーマット)とは - IT用語辞典
書き込み型BD・DVDのファイルフォーマット(UDF)まとめ : Web Memo.SE

ISO image - Wikipedia
ISO 9660 - Wikipedia
ISO 9660 - OSDev Wiki
Standard ECMA-119
Joliet Specification
El Torito (CD-ROM standard) - Wikipedia
El-Torito - OSDev Wiki
注目の脆弱性:Power Software PowerISO、ISO のコード実行の脆弱性
Comparison of disc image software - Wikipedia
【レビュー】指定したフォルダをISO形式のディスクイメージファイルへ変換する「Folder2Iso」 - 窓の杜
品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"

fsync

まちカドおるみんさんはTwitterを使っています 「にわかに信じがたいけど,こういうの往々にしてあるものなのだな…… &gt;&gt; Can Applications Recover from fsync Failures? | USENIX https://t.co/PeV1TVBVxU https://t.co/ixaWDV3Qeq」 / Twitter
Can Applications Recover from fsync Failures? | USENIX
まちカドおるみんさんはTwitterを使っています 「https://t.co/A01UYtXyq4」 / Twitter
FOSDEM 2019 - PostgreSQL vs. fsync
まちカドおるみんさんはTwitterを使っています 「“PostgreSQL had been using fsync incorrectly for 20 years”」 / Twitter

fsck

ファイルシステム小噺(仮) - Qiita
docs.oracle.com/cd/E19253-01/819-0386/fstroublefsck-51788/index.html
エンタープライズ:Linux How-To 第1回:起動スクリプトを知って基礎を理解しよう
Linuxファイルシステム技術解説(3):ジャーナリングファイルシステムが保護する「情報」 (1/2) - @IT
fsck(えふえすしーけー)とは - コトバンク
linux - ルートファイルシステムを復旧させたいのにfsckが上手く使えない - スタック・オーバーフロー
Linuxファイルとファイルシステムのリカバリ | OSDN Magazine
ファイルシステム入門
fsckによるファイルシステム修復 | hajichan.net technical version
fsck - ArchWiki
Linux ジャーナリング・ファイルシステムの徹底調査
【3分でわかる】Linuxのシャットダウンと再起動
【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
スーパーブロック (ファイルシステム) - Wikipedia

デフラグメンテーション

デフラグメンテーション - Wikipedia
The Desktop Files: The Truth about Defragmentation
インタビュー - ファイル断片化を元から断つ、デフラグの概念を大転換!:ITpro
無料デフラグソフト一覧 - フリーソフト100
【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
デフラグのやり過ぎはHDDの寿命を縮める | スラド ハードウェア
デフラグで最適化 - デフラグソフト比較、断片化の理由 - Windows高速化への道
ファイルシステムの基本~ファイルはどのように記録されているのか~ - Yahoo!知恵袋
ファイルシステム圧縮による空き容量と、デフラグについて - すっきり!! デフラグのヘルプ
効率の良い『デフラグ』で性能低下を防ぐ 【桜PC情報】
NAS(LAN HDD / ネットワークハードディスク)は何故デフラグできないのか
ファイルシステム入門
しつこくデフラグ話【日記 2011/11/25】
デフラグって実際どうなの? 実力を徹底検証 - Windows7から話題のWindows10まで対応! (1) 知らないうちに断片化するデータ群 | マイナビニュース
「ディスククリーンアップ」と「ディスクデフラグ」の違いとは?|エンジョイ!マガジン
デフラグとは | Diskeeper 日本語版 公式サイト
ファイル・サーバのデフラグメントについて考える - @IT
知ってる?デフラグの力 - デフラグのメリット&デメリット
本の虫: ディスクのフラグメント防止に関する興味深いペーパー
NTFSFrag.pdf

NTFS

Wikipedia

NTFS - Wikipedia, the free encyclopedia
NT File System - Wikipedia
NTFS-3G - Wikipedia
NTFS-3G - Wikipedia, the free encyclopedia
Filesystem in Userspace - Wikipedia
Filesystem in Userspace - Wikipedia, the free encyclopedia

Twitter

ソート順

Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、NTFSのソート順(btree)は名前を大文字変換した後、UTF16コードでソート。 Explorerも大文字変換は同じだが、アンダースコア等が特別扱い、数字群は数値として比較とか、色々特殊。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "数字群を数値として比較することを、natural sort と言うらしい。 https://t.co/xATZlBNZ9a"
Natural sort order - Wikipedia

@shirouzu

復元不能にする方法

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのNSA方式削除では内部的に2モードあり、上書きバッファ用乱数はメルセンヌツイスタで初期化される。 だが、iniのcopy_flagsに OVERWRITE_PARANOIA(=0x2000)を追加すると、バッファをCryptGenRandomで初期化される。 (エントロピー不足か、死ぬほど乱数生成が遅いのでお勧めできない)… https://t.co/qgGp2ypCiM"
とつげき東北🌘さんのツイート: "復元防止をセキュリティ的にマジで考えると、単に物理的に上書きしたくらいでは足りないですね。0か1かはHDDの場合磁気的に保存されますので、一度書き込んで消しても、アナログ情報が残って再現できてしまう。 そういう「形跡」さえも消すには、何十回も0と1を繰り返し書かないとダメですね😇… https://t.co/qlwlO08Wky"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なかなか豪快なソフトですね(笑) ファイル単位の復元防止だと(削除前に)truncate無しの上書きが定番(ただしNTFS圧縮だと別セクタに書かれるので無意味)だと思うんですが、実はtruncateした後に上書きしてました、とかですかねぇ…逆にカジュアルな復元ができる下手を打つ方が不思議な気も。… https://t.co/7T3hvZtC5P"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ですね。NSA方式とかDoD方式とか、3~7回の乱数や0(or 0xff)での上書きを定めるものが多いみたいです。 (FastCopyだとNSA方式削除をサポートしてます)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、メルセンヌツイスタもシードだけは std::random_device(=CryptGenRandom)を使っている。"

histric-1

SHIROUZU(白水啓章)さんのツイート: "タイムスタンプとファイルサイズ(とファイル名)を使った、ファイル重複検出ツールって、意外と無い不思議。 それとできれば、MFTによる高速検査があると最高なのだが…自分で作るかな。 ファイル名は編集距離誤差を許す設定ができるとさらに良さそう。"
SHIROUZU(白水啓章)さんのツイート: "FastCopyのI/O設定、Win10 + Gbit NIC以上だと1発行1MBで多重度2以上がベストで、1発行が4MBとかになると(多重度を上げても)逆に遅くなるな…パラメータのデフォルトを変えた方がいいかもしれない。"
SHIROUZU(白水啓章)さんのツイート: "それと、ver3 の I/O設定はちょっと判りづらい点を直した方がよいかな… 最大I/O単位=1発行サイズ * 重畳数、という意味なので、1発行1MBで多重度4だと、4MBに設定する必要がある。"
SHIROUZU(白水啓章)さんのツイート: "10G NIC と NVMe(960-EVO)を載せて、FastCopyで転送実験。 双方向でほぼ10Gbps出るようだ。 IPMsg転送だと5Gbpsが今のところ限界、さらにAES暗号化すると80Mbpsまで低下。"
SHIROUZU(白水啓章)さんのツイート: "CoffeeLake(i5-8600K)では、FastCopy + SMB で 10Gbps転送中のCPU使用率は概ね10-15%程度。"
SHIROUZU(白水啓章)さんのツイート: "ただし、非同期I/Oをやめると5Gbpsに一気に遅くなる(I/Oサイズを広げてもダメ)。 つまり、相変わらずアプリケーション側が先読み的な動作をさせないと、性能を十分出せない、WindowsのSMB実装ということかな。 (なお双方とも Win10 Pro for Workstat… https://t.co/DMind304I8"
SHIROUZU(白水啓章)さんのツイート: "そういえば、これ6コアだから、16%で1コア使い切りレベルだった。 4コア時代の25%基準で考えてしまう癖が。"
SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkでの速度とFastCopyの速度が違ったので調べてみると、Crystal…の KB/MB は 1000^n、FastCopyの KB/MB は 1024^n という違いだった。FastCopyは正確に KiB とか MiB とかにしたほうが良いかな…"
SHIROUZU(白水啓章)さんのツイート: "C/C++でのポインタ同士の減算結果の型は size_t ではなく ptrdiff_t で「符号付」整数となる点に注意。"
SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkの速度測定には、MSのdiskspdというコマンドを利用していた。 https://t.co/kwsrzWX6rv ちなみに「NCQ対応」は、diskspdを見る範囲では WinAPIのOVERLAPPED I/Oを行う=NCQ、という解釈かな。 (… https://t.co/CDXRmvKlMp"
Microsoft/diskspd: DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
SHIROUZU(白水啓章)さんのツイート: "実際、SATAのNCQは32個までだが、OVERLAPPED I/O自体は(手元で試した範囲では)128個発行なども可能だったりする。"
SHIROUZU(白水啓章)さんのツイート: "FastCopyで、複数物理ドライブを束ねたボリュームでの物理ドライブ判定が正しくなかった。(別物理ドライブ同士が同一ドライブ判定になるケースが存在)"
SHIROUZU(白水啓章)さんのツイート: "SMB経由で確認した範囲では、btrfsは4KB * n で整列されたwrite後に、そのサイズより僅かにサイズ縮小するftruncateを発行すると、ext4やNTFSに比べて大変時間が掛かる不思議。 SMB経由でbtrfsかの識別する方法はないのかしらん?"
SHIROUZU(白水啓章)さんのツイート: "最近はNASでもbtrfsという選択肢が出始めているようなので、ちょっと対策しておきたいところ。"
SHIROUZU(白水啓章)さんのツイート: "OS、AntiVirus(MS純正)、NTFSのいずれの問題か不明だが、dir-entryを全削除した直後に、そのdirを削除しようとすると稀に「空でない」というエラーになることがある。その時、FindFirstでentryを調べると一瞬だけ削除したはずのentryが見える。 ローカルFSなのにアトミック性が破れてるな。"

histric-2

SHIROUZU(白水啓章)さんのツイート: "GetVolumeInformation APIで取れるファイルシステム名(lpFileSystemNameBuffer)、LTFSだと"LTFS"が返るのかしらん?"
Kengo Sawatsuさんのツイート: "結果でましたー。 ちゃんと'LTFS'と入ってきますね。 OS:WindowsServer2012R2 python3.4からwin32apiコールです。 results = win32api.GetVolumeInformation("J:\\") pprint.pprint(results) で、出てきたタプルです。 https://t.co/MnBOttlcJu… https://t.co/mOcNmgdTr1"
Kengo Sawatsuさんのツイート: "ちなみにLTFS実装はIBM純正の2.2.1です。 HPなどのその他実装では結果が異なることもあるかもしれませんが、各社のLTFSドライバはすべて?IBMが元なので、大丈夫じゃないかなあとは思います。… "
SHIROUZU(白水啓章)さんのツイート: "Win32非同期I/Oを使った連続read/write実験、少なくともネットワークドライブ(Win10 Pro Enterprise同士)相手に対しては、4MB*4重畳よりも1MB*4重畳の方が5~10%高速になるのは何故だろう?(ファイルサイズが20~30MBならおおよその理由は判るのだが、数GBでも同じ傾向)"
SHIROUZU(白水啓章)さんのツイート: "非同期RPCのやりとりをWireSharkで調べてみるのが近道かな。"
Kengo Sawatsuさんのツイート: "いつもありがとうございます。 smb multichannelとの関係など、結構調べないといけない話題は多いですよね。 なにかの折にまたデータをとってみます(40Gはストレージ側の性能引き出すのがちょっと難しいですが) また、https://t.co/GT7eFdWffLへの40GbitNIC貸与ができないか、社内で調整中です。… https://t.co/9ZffXqTPmb"
SHIROUZU(白水啓章)さんのツイート: "FastCopy英語掲示板に「もっとスレッド数を増やして高速化を」という要望が出ているのだが、何の処理を行うスレッドを増やしてほしいのだろう? ごく一部環境を除き、I/O (read or write) 並列化(連続命令の非同期I/O化を除く)は、遅くなるだけと思うのだが。"
Fomalhaut Weisszwergさんのツイート: "おそらく「スレッドをたくさん作れば早くなるんでしょ」と思っているだけだと思います。わたしもそういう人の相手をする羽目になったことがあります (ログファイルへの書き込みを並列化したところで高速化はできないということを理解してもらうのにすごいコストかかりました)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "先ほど、レスパスビジョンさん(https://t.co/lLhGI6a3Ro)のご厚意で、FastCopy進化用のMellanox 40Gbit NIC*2とケーブルが届きました! それにしても、さすがは40Gb用ケーブル、昔の放送用ケーブルかと見まがうゴツさ…QSFPという10Gを4本束ねたものらしい。 https://t.co/JPjOt4kQMq"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB転送速度に与えるレイテンシの影響は、非同期I/O数が4以上ならどの条件でもレイテンシに比例して速度低下。だが、ジッタが大きい場合だけは、I/Oサイズ*非同期I/O数=32MB以上の方が性能が出る(落ちづらくなる)不思議。 (前者でも、性能が落ちづらくて良さそうなのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "前者でも…というのは、I/Oサイズ * 非同期I/O数を大きくする≒TCPにおけるウィンドウサイズ拡大と類似した効果をSMB上に与えても不思議ではないため。 ただ、API上の非同期数に対して、SMB上の非同期I/O数に上限があるなら、そうならなくても不思議ではない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "だからこそ、自前転送の高速化の余地が大きいということではある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "40Gb転送中にRAM Diskアクセスすると、そのI/O速度分だけ速度低下する様子(CPU使用率にはまだ余裕がある)。 PCIeを空けても、メモリバスがネックとなっている? CoffeeLake i5-8600K + Z370の方は大丈夫のようだが、SkyLake i5-6500 + Z170程度だと性能が不足しているようだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "論理セクタが512byteでも、本当のブロックサイズは4KBだったりする現在、末尾の端数部分はブロックサイズ単位で書いてtruncateではなくて、端数だけappendの方が良いかもしれない、特にネットワークの場合。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前の話ではXeon + WinServer + SMB Directを使っても、40Gbpsを使いきれていないらしい?最新サーバ同士だとどうなんだろう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの重複データブロック削除機能=De-Duplicationだと思うのだが、DeDupと書くより、DeDupeと書く方が多い不思議。"

Shirouzu Hiroaki(白水啓章)さんのツイート: "10GのWin10Pro同士だと、ほぼ10G素直に出ていたのですが、samba経由だといろいろあるんですねぇ…(ただ、ジャンボパケットでないとダメだったかも)… "
Kengo Sawatsuさんのツイート: "10Gのsmb.confのパラメータを色々試して、Fastcopyとの組み合わせでざっくり810MB/secくらいまでは速度出るようになったけど、カーネルパラメータいじるのは面倒かつ危険なのでこれ以上の追い込みはやめておくマン"
Kengo Sawatsuさんのツイート: "今更ですが、これの効果は劇的です <I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上 10Gbps環境下でスイッチを2~3個経由していても、1ファイル数GBを超えるファイルであれば1000MB/secで張り付きっぱなしになります。 40Gbps環境にも恩恵あるはず。… https://t.co/cmKIS1WbNy"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.50正式版をリリースしました。 Source選択で、ファイルとフォルダを同時に選択できるように。 I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上(レイテンシ大の環境では、Explorerや従来版に比べて2倍以上高速に)等 https://t.co/L7jJavdtio"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「BSD系がreadlinkでA更新しないのは知らなかった。 あとは、移動で対象ファイルCが変わる/変わらないの件…Cはinode更新時間(A更新以外)なので、Cが変化する実装=(atomicなので外部観察はできないが)内部でdst-ent追加でリンク数+1、src-ent削除-1操作、がC変化の原因かな? https://t.co/VwDT93ijU4」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、rename/move はファイルシステムを作った経験があれば判ると思うが、atomic性を満たすのに一番厄介。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「src/dst/target の3つロック(create/removeなら、親dir → targetだけのロックで済む。3つの場合、ロック順序保証が通常の親→子でないのもネック)、さらにtargetがdirの場合、dstがtargetツリーに存在しないこと確認する必要もあり。 (でないと、外部からの参照のない循環参照dirに)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さらに、dstのtarget配下の非存在確認した後、移動が完了するまでは、src/dst/target配下が絡むdir関連rename操作はブロックしないといけない、みたいな話もあったり。 (でなければ、volレベルでジャンボロックするか…Linux2.0当時の実装を見たら、そうなっており、ああ手抜きだなと思った記憶)」 / Twitter

研究千年牛酪情報保管庫菩薩さんのツイート: "NTFS、しくみおもしろいなあ。これだとWinFSを作りたくなる気持ちがわかる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(POSIX対応のため)NTFSが大文字小文字違いを別ファイルとして扱える機能を持つのは知っていたが、(POSIXサブシステム経由だけでなく)Win32サブシステム経由でも(レジストリ変更で)大文字小文字区別したアクセスができるとは知らなかった。… https://t.co/LRLCQ3BWBn"
品川 高廣さんのツイート: "Cygwin 上で Linux カーネルをクロスコンパイル on @Qiita https://t.co/UATrQHnqhU"
Cygwin 上で Linux カーネルをクロスコンパイル - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSのハードリンクは、UNIX系と違い、片方のファイルを変更しても、もう片方にタイムスタンプがすぐに反映しない。 1度目は必ず古い情報を掴まされ、2度目のlookupから正しく取れるという、UNIX inodeとdirentyのような関係ではあり得ない挙動を示す。 ちなみに、ハードリンク上限もわずか1023。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSの設計者は「POSIX準拠機能なんて、本格的に使うわけないよね」と思っていたとしか思えない(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回の件、海外からFastCopyのコーナーケースのバグ報告?と思って調べたところ、NTFS側の問題だったというオチ。"
Egtra (ysk-noh)さんのツイート: "https://t.co/QJTi32Ys8q Windowsが初期設定だとシンボリックリンク作成を管理者に絞っているのは、Symlink attack対策なのだと思う。 https://t.co/nIkiEyVnaJ https://t.co/I0Zm2JxVqy"
PhoronixさんはTwitterを使っています 「"NTFS3" #Linux Driver Spun Up An 11th Time With More Optimizations https://t.co/qvrZtkQZHm」 / Twitter
"NTFS3" Linux Driver Spun Up An 11th Time With More Optimizations - Phoronix

NTFSの読み方 - Qiita
kusano/ntfsdump: Extract files from NTFS Volume
暗号化ファイル・システムを使うとWindows Updateができなくなる / SAFETY JAPAN [Windows XP プロの常識] / 日経BP社
最後に知っとく“Windows 8.1重箱の隅”10選 - AKIBA PC Hotline!
上原 哲太郎 - これは話が正確じゃないのでMSやWin10がかわいそう。要はNTFSをリムーバブルメディアで使っては... | Facebook
Why NTFS is a dangerous filesystem for external drives ... - PentaxForums.com
Windows 7/8.1をWebページから停止させることも可能なNTFSのバグ | スラド IT
Transactional NTFS (1) - NyaRuRuが地球にいたころ
日記 (2013 年 4 月中旬)
NTFSのトンネリングとHardlink - ひよこメモ
Shirouzu Hiroaki(白水啓章)さんのツイート: "これが成功したら、あっという間に終了(or 非推奨化)した「トランザクションNTFS」も復活したりするのかしらん? https://t.co/oVhrlxprop… "
トランザクションNTFS - Wikipedia
Transactional NTFS - Wikipedia

ReFS

Shirouzu Hiroaki(白水啓章)さんのツイート: ""CreateHardLink(この要求はサポートされていません。50)" というメッセージが出て何だろうと思ったら、ReFSはハードリンクをサポートしていなかった様子。 ---- https://t.co/Ss1hcvHxrq"
Windows の次世代ファイル システム: ReFS – Building Windows 8
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系のハードリンクはinodeとdentの仕組みを素直に使っている。NTFSハードリンクは当該ファイルスロット(≒inode)に別名エントリを格納していく変態方式のため1023リンクが上限だった。で、ReFSではサポートすら止めると。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSは全力で非同期writeするより、アクセスに僅かに空き時間を与えた方が速度が5~10%程度、増すなぁ。 非同期I/Oで連続アクセスすると、ReFS固有の付加的な作業が合理的に差し挟めないのだとすると、ファイルシステムドライバの作りが悪いとしか思えないのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSのBlockCloningを使うと、巨大なファイルの内部的なログローテーション的な動作が、実質データコピー無しで出来そう。 (現行ファイルの先頭クラスタ以外をクローンして、次ファイルを作るイメージ) https://t.co/wjy0lTy4Lm とはいえ、ReFS自体に余り良い評判を聞かないので微妙だが。"
Block Cloning | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSはディレクトリ探索負荷だけで、6コアが100%になり(System(pid:4)が大半)、各プロセスのタスクスイッチもロクに回らなくなり、各ウィンドウ描画が止まり、音楽再生も切れる。 (画像は探索を止めて、ようやく再描画再開されたタイミングでキャプチャ) https://t.co/DEljgQ0Hxj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ディレクトリ探索を続けると、何かのタイミングでこの状態が続く。アクセス数に比例したり、特定ディレクトリがトリガーでもない様子)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「どうも妙な挙動が多いので、ReFSを相手にするのは止めようかな… https://t.co/uZfbmqm9oO」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSは設計思想以前に、実装がダメダメなんでは疑惑。 (手触りが悪いというか、不自然に重いというか)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「仕様云々より、実装が悪いのだろうなぁ、、、。 なおMSは流石に無いと思うけど、仕様を作って外注に作らせるパターンだと、そういう品質がほぼ宿命に。」 / Twitter
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「ReFS、server2016で実運用してるとSMBのわけわからないタイムアウト(ファイルシステムから30秒応答返ってこない)とか本当に散々な目にあってるので、当面本番用途で使う予定ないのだが、相変わらずの様子・・・。。 MSは今すぐデビッドカトラーを連れてくるべき」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一度、腐ったものが出来上がると、性能・品質改善はほぼ望めず、作り直すのが最善手になる。 ただ初期コストの大きさから、改善で済まないか試みた挙げ句、無理なことを悟って作り直すという、一番高コストな道を辿るのが典型パターン(笑)」 / Twitter

FAT

FatFs 汎用FATファイルシステム モジュール
FatFs - Generic FAT Filesystem Module
FATファイル システムのしくみと操作法
「DataRecovery」「Fat32Formatter」のソースコードを公開 - 窓の杜
exFAT - Wikipedia, the free encyclopedia
exFAT - Wikipedia
k-takata.o.oo7.jp/diary/exFAT.txt
Microsoft、パナソニックに大容量ファイルシステム「exFAT」のライセンスを供与 - ITmedia エンタープライズ
マイクロソフト、exFATのライセンスプログラムを発表 - CNET Japan
exFATのライセンス提供開始に見え隠れするMicrosoftの知財戦略 - builder by ZDNet Japan
FUSEベースのMicrosoft「exFAT」実装、「fuse-exfat 1.0」がリリース | OSDN Magazine
FAT仕様書日本語訳.doc - Google ドキュメント
Tech TIPS:FATとexFATの違い - @IT
テクノロジ IP ライセンス | IP (知的財産) ライセンス - マイクロソフト イノベーション センター
Licensing exFAT | Microsoft IP Licensing
File Allocation Table - Wikipedia
File Allocation Table - Wikipedia
8.3形式 - Wikipedia
8.3 filename - Wikipedia
Microsoft Word - FAT32 Spec _SDA Contribution_.doc
Microsoft readies exFAT patents for Linux and open source | ZDNet
exFAT file system specification - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(2年前の話ながら)exFATはMacOSXでファイルが壊れるという話があるのでご注意あれ。 https://t.co/C2UcXBRLYg https://t.co/Sm10ANvYuN https://t.co/06fENVA0jy」 / Twitter
Kengo SawatsuさんはTwitterを使っています: 「「Win/Mac両方で読み書きできたまじ便利ってネットの記事に書いてあった」 「macOSで選べるんだから大丈夫でしょ?」 exFATの実装仕様もライセンスも不明瞭だらけでジャーナルも無いウンコFSなのになぜAppleはフォーマットできることにしてるのか。。 #exFATは使うな死ぬぞ」 / Twitter
2019年8月30日号 Ubuntu 18.04.3 LTS 日本語 Remix リリース・eoanのFeature Freeze・exFATの仕様書:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
exFAT について - 借り初めのひみつきち
米Microsoftが「exFAT」の技術仕様を公開、Linuxカーネルへのマージを認める | OSDN Magazine
Microsoft、ExFATのLinuxカーネルでの実装方法を明確に
品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
実は危険??「exFATフォーマット」との付き合い方|L'espace Vision
日記 (2015 年 10 月上旬)

UEFI

The rEFInd Boot Manager: Using EFI Drivers
Free Software EFI Drivers
pbatard/efifs: EFI FileSystem drivers
日記 (2014 年 8 月下旬)

9P

9P - Wikipedia
9P (protocol) - Wikipedia
ASCII.jp:Win32側からWindows Subsystem for LinuxのVolFsへのアクセスが可能に (2/2)
Plan 9 Wiki (Plan 9 wiki)
Plan 9: ILプロトコル
9P (Plan 9 Filesystem Protocol) VFS
https://www.kernel.org/doc/Documentation/filesystems/9p.txt
“どうやって実現してるのかというと、まさかの9P(Plan 9 Filesystem Protocol)です。令和の時代にまさからPlan9の単語を聞くとは思わなかったですが分散OSなので、こういうのには向いてるのかもしれないです” - twatw のブックマーク / はてなブックマーク
Plan 9
IL (network protocol) - Wikipedia
The IL Protocol
A sane distributed file system
intro page from Section 5 of the plan 9 manual

Net

その他

ネットワークバイトオーダーの公式な参照先はエイプリルフール:Geekなぺーじ
第661回:レイテンシー とは - ケータイ Watch Watch
第627回:トラフィック とは - ケータイ Watch Watch
「NetworkManager 1.6」リリース、MACsecに対応 | OSDN Magazine
MACアドレスランダム化が加わった「NetworkManager 1.2」 | OSDN Magazine
RFC標準を調べるための知識やツール - Qiita
Chrome・Firefox・Edgeなどブラウザは初回起動時にどのような通信を行っているのか - GIGAZINE
本の虫: Chromeが起動時に三つのランダムなドメインに接続しようとする理由
amp-script の実用性について考える - mizchi's blog
WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
WebPackaging の Signed HTTP Exchanges | blog.jxck.io
Webbundle によるサブリソース取得の最適化 | blog.jxck.io
ブラウザの更新 スーパーリロード
抽象ソケットアドレス abstract socket address - hibomaの日記
[linux] abstract socket address - hibomaのはてなダイアリー
Pure Python Tracepath | IIJ Engineers Blog
Compact TLS 1.3の提案仕様 - ASnoKaze blog
ダウンロードもMixed Contentsの対象となる話し - ASnoKaze blog
インターネットの心臓部を支える「BGP」をより柔軟に使うにはどうすればいいか? - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「kernel bypassなー、HPCなら意味あると思うけどインターネットだとsegmentation offloadで十分な感じがすごいするんだよなー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「受信側だと割込コストでかいから、そこをなんとかしたいというのは分かるけど、まあ、、、」 / Twitter
NAT Slipstreaming攻撃とブラウザ側の対策 - ASnoKaze blog
Prometheusが利用するOpenMetricsの仕様がIETFに提出された - ASnoKaze blog

キープアライブ

ハートビートとは|heartbeat - 意味 / 定義 / 解説 / 説明 : IT用語辞典
キープアライブとは|キープアライブパケット|キープアライブ機能|keep alive - 意味 / 定義 / 解説 / 説明 : IT用語辞典
ヘルスチェックとは|health check - 意味 / 定義 / 解説 / 説明 : IT用語辞典
セッションとは|session - 意味 / 定義 / 解説 / 説明 : IT用語辞典

lwIP

lwIP - A Lightweight TCP/IP stack - 概要 [Savannah]
lwIP - Wikipedia, the free encyclopedia
IPv6 - lwIP Wiki
LwIP IPv4/IPv6 stacks - lwIP Wiki
lwIP 1.3.0
JVNVU#98989920: uIP と lwIP の DNS リゾルバにキャッシュポイズニングの脆弱性
lwip.git - Unnamed repository; edit this file 'description' to name the repository.
lwIP - Wikipedia
Raw/TCP - lwIP Wiki - Wikia
BitVisorのlwIPを使ってシリアルポートに書き込まれたデータをTCP/IPで送信する - Qiita

VLAN

タグVLAN 設定例 | YamahaルータのタグVLAN
特集:ネットワーク構築の基本はVLANから(1):VLANの基本的な仕組みを攻略する - @IT
VXLAN(RFC7348)を学ぶ:VXLANが登場した理由、他の実装との違い、特徴を整理しよう (1/3) - @IT
Virtual Local Area Network - Wikipedia
IEEE 802.1Q - Wikipedia

IP

IPv10

draft-omar-ipv10-06 - Internet Protocol version 10 (IPv10) Specification

IPv6

NAT66

TECHNICAL MANUAL - NAT66/NAT6
情報セキュリティ技術動向調査(2010 年上期):IPA 独立行政法人 情報処理推進機構
NGNを介したIPv6インターネット接続 - トンネル方式入門(後編):ITpro
www.geekpage.jp/blog/data/2009/ipv6ops0904/2.txt
SEIL でNGN IPv6 ネイティブ(IPoE) ひかり電話なし接続をするには : やすひでぶろぐ

Geekなぺーじ

RFC系統図で見るIPv6の変化:Geekなぺーじ
ややこしいIPv6アドレス自動設定の話:Geekなぺーじ
IPv4アドレスを含むIPv6アドレス表記:Geekなぺーじ
日本国内携帯3社、2017年度中にIPv6導入:Geekなぺーじ
RFC 8106によってRFC 6106が廃止に:Geekなぺーじ
IPv6でセキュリティがスカスカになってませんか?:Geekなぺーじ
IPv6基本仕様のRFC 2460が廃止:Geekなぺーじ
IPv6関連RFCの上書き(廃止)まとめ:Geekなぺーじ
IPv6アドレスのテキスト表記 - RFC 4291とRFC 5952:Geekなぺーじ
ネットワークエンジニアではない方々向けIPv6勉強会を開催しました:Geekなぺーじ
ネットワークエンジニアではない方々向けのIPv6入門 // Speaker Deck
ネットワーク技術者ではない方々向けIPv6セミナー2の発表資料:Geekなぺーじ
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
IPv6本を書きながらネットワークエンジニアではない方々向けのIPv6勉強会をやって思った、IPv4とIPv6の大きな違い:Geekなぺーじ
DHCPv6の基本仕様が改定 - RFC 8415:Geekなぺーじ
IPv6アドレスのテキスト表記に名前がついてない:Geekなぺーじ
IPv6アドレスのテキスト表記の解説動画を作りました:Geekなぺーじ
NAT64とDNS64の解説動画を作りました:Geekなぺーじ
動画「IPv6の勘所」を作りました:Geekなぺーじ
IPv6基本仕様概要の解説動画を作りました:Geekなぺーじ
「IPv6はIPsecで暗号化されるので安全」という誤解:Geekなぺーじ
リンクローカルユニキャストIPv6アドレス:Geekなぺーじ
IPv6マルチキャストのスコープとゾーン:Geekなぺーじ
ULA(Unique Local IPv6 Unicast Address):Geekなぺーじ
IPv6とIPv4の違い:Geekなぺーじ
インターネットプロトコルにおけるパケットサイズに関して:Geekなぺーじ
IPv6 IPoEとIPv6 PPPoEの解説動画を作りました:Geekなぺーじ
DS-Liteの仕組み:Geekなぺーじ
IPv6がIPv4よりも速い理由:Geekなぺーじ
IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成:Geekなぺーじ

@fadis_

Fadisさんのツイート: "RFC8135 浮動小数点数および複素数を含むIPv6アドレス https://t.co/mhbr8EKKwW"
Fadisさんのツイート: "Complex Addressing in IPv6、ネットワークの文脈でComplex Addressingといった場合普通はルータが頭を抱える「複雑なアドレス」の事なわけだけど、Complexには複素数って意味もあるから「複素数なアドレス」について考えてみた、と"
https://tools.ietf.org/rfc/rfc8135.txt
Fadisさんのツイート: "浮動小数点数アドレス、「従来のIPアドレスは整数で表現されていたが移動体通信が増えている中小数点の位置が固定のままで良いのかは議論の余地がある」とか「rootアドレスはクライアントの浮動小数点数演算器で計算することができる」とか言ってて腹筋の危機"
Fadisさんのツイート: "RFC8136 IPv4からIPv6への移行を促すために、IPv4で「悪意ある通信が自分に悪意がある事を通信相手に明示して適切に蹴ってもらう」為のフラグevil bitをIPv6でも使えるようにする話 https://t.co/UTlNhsxSws"
https://tools.ietf.org/rfc/rfc8136.txt
Fadisさんのツイート: "ジャンボグラム: IPv6の拡張ヘッダでIPv6のヘッダに元々含まれている16bitのデータ長で表現できない巨大なパケットを表現する為に用いられる。この拡張によってIPv6は最大4GiBのUDPデータグラムを投げつける事ができる https://t.co/ujb5sGy0c8"
https://tools.ietf.org/rfc/rfc2675.txt
FadisさんはTwitterを使っています 「IPv4のヘッダにあったチェックサムはIPv6では廃止されている。ヘッダにはパケットを中継する機器で書き変わるTTLのカウンタが含まれているため、IPv4チェックサムは中継する機器全てで計算し直す必要があり、そのコストが深刻な問題になっていた為だった」 / Twitter
FadisさんはTwitterを使っています 「そうはいってもヘッダが化けた状態でパケットがネットワークを徘徊すると困るので、IPヘッダチェックサムに相当する機能をTCPやUDPの疑似ヘッダを含むチェックサムに求めることになった。結果、IPv4では任意だったUDPのチェックサムは、初期のIPv6では必須になった」 / Twitter
FadisさんはTwitterを使っています 「この結果「データが化けていても届いたほうが良い」用途でUDPを使っている場合IPv6に載せられないという困った問題が生じた。このためIPv6上のUDPはチェックサムの無効にしても良いと言う変更が後から加えられた」 / Twitter
FadisさんはTwitterを使っています 「後から仕様を変えられてもインターネット上のあらゆる機器が即座に追従できるわけが無いので、IPv6かつチェックサムなしUDPは「運が良ければ届く。試しに飛ばしてみて届いたら使え。」という微妙な位置づけになってしまった」 / Twitter

@uchujin17

ウチューじん・ささきさんのツイート: "IPv6の拡張ヘッダは固定長フィールドではなく可変長TLVパケットの数珠つなぎになっていて柔軟性が誇られていたけど、RFCが出るたびにその並び順についての文言がどんどん追加され、「MUST rejectのオプションを受け付けた」という理由でFailが出て、そのためだけのチェックを追加して…"
ウチューじん・ささきさんのツイート: "IPv6近隣探索(MACアドレス解決、IPv4で言うとこのARP)も「ARPみたいな継ぎ足しじゃなくIP仕様内に取り込んだ」「ブロードキャストではなくマルチキャストにして効率化した」「タイミングやステート状態が明文化された」ことが誇られていたけれど…"
ウチューじん・ささきさんのツイート: "これまたRFCが改訂されるたび「Queryを発信する前にSolicited Advertiseを受信したらUnsolicitedで発信してはならない」みたいなクソくだらない文言が追加されて、数分に1度発信される(かもしれない)冗長なマルチキャストを1つ減らすためだけのフラグやifが増えて。"
ウチューじん・ささきさんのツイート: "究極はRFC3484「Default Address Selection」、インターフェースに複数のアドレスを付けられるIPv6において発信先・発信元のアドレスを選択するための条件を定義した仕様書だけど、これが「アホかー!アホかアホかアホかアホかアホかーっ!」という考えすぎの産物。"
ウチューじん・ささきさんのツイート: "RFC3484をくっそまじめに実装したらループが3つとifが15個くらい並んだんだっけ。アドレスを選ぶため「だけ」に。IPv6ならアドレス1つで世界中と通信できます、って言ったのはどこのどいつだ?"
ウチューじん・ささきさんのツイート: "RFC3484はRFC6724にアップデートしているらしいけど、もうRFCなんて読む義務もないし読みたくもねぇ。"

Finite-tweet machineさんのツイート: "ルータがRDNSS(RAでのDNSサーバ情報配布)に対応していない中、AndroidはDHCPv6に対応してないので困ったねという話など。へー / IPv6-only at Microsoft | APNIC Blog https://t.co/9fJbzfVtaD"
IPv6-only at Microsoft | APNIC Blog
IPv6 RFC 改版の提案はなぜ議論紛糾したのか? // Speaker Deck
IPv6 の arp -a
Windows管理者のためのIPv6入門:第3回 L2アドレスを解決する近隣探索プロトコル (2/2) - @IT
第2の個体識別番号にならないか心配 (#3123556) | スマートフォンのインターネット接続、来年夏ごろにIPv6がデフォルトに? | スラド
近隣探索プロトコル - Wikipedia
Neighbor Discovery Protocol - Wikipedia
T28-1.pdf
IPv6のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 only ネットワーク を作ってみる
Yoshinobu Matsuzakiさんのツイート: "IPv6アドレスの傾向を調べる調査。使われたIPv6アドレスを35億ぐらい集めてエントロピーを調査。サーバは手動設定、ルータはEUI-64、クライアントは匿名アドレスの利用が多そうと。特定スマートフォンで変な実装がありそうとか面白い https://t.co/JW8XbsFYFI"
57-RIPE74-Foremski-EntropyIP.pdf
Kentaro Ebisawaさんのツイート: "SRv6実装、Ciscoが(1部)スポンサーしてるのね。流石。 SOSR2017: IPv6 Segment Routing to the End Host: A Linux Kernel Implementation PDF: https://t.co/AgQVq6lUFQ"
Kentaro Ebisawaさんのツイート: "IETF I-D “SRv6 Network Programming” 実装。Vargant/VirtualBoxで試せるらしい。 https://t.co/9L32qVfWJa"
Kentaro Ebisawaさんのツイート: "SRv6 Linux 実装、Kernel 4.10 に入った "IP Networking Lab (Belgium)" と Kernel Module の "Networking Group (Rome)" の機能比較表を発見。 https://t.co/MaJgelavJ5"
【IETFトピックス2016-17】 20歳を超えたIPv6の現状、修正版RFCで廃止/アップデートされる仕様も - INTERNET Watch
IPv6への移行完了は2067年4月か、月0.15%の割合で増加 | マイナビニュース
AndroidのDHCPv6実装の議論状況とRFC7934 (Host Address Availability Recommendations) - Qiita

IPv4

IAB、IPv4を前提とした標準化を行わないことを求める声明を発表:Geekなぺーじ
LACNIC、IPv4枯渇の最終フェーズと発表 | マイナビニュース
GOROman@謙虚さんのツイート: "IPアドレス は0は省略できる 127.0.0.1は 127.1 192.168.0.1 は 192.168.1 https://t.co/jSdjF02boo"
ゆたかさん🐱さんのツイート: "# arping -c 1 -D IPアドレス でIPv4アドレスのコンフリクトチェックができます。 競合するアドレスが存在しない場合は、$?がゼロになります。 BusyBoxにも入っているので、組み込みLinuxでも利用できるのでおすすめです。 https://t.co/sR92x6H6pL"
https://tools.ietf.org/rfc/rfc6864.txt
【IETFトピックス2016-17】 IPv4をどのように終わらせるか――IPv6普及拡大の前に片づけなければならない課題 - INTERNET Watch
奇妙なIPv4アドレス表記:Geekなぺーじ
0.0.0.0にはアクセスしないこと - Qiita
127.0.0.1とlocalhostと0.0.0.0の違い - Qiita
IPv4アドレス「0.0.0.0」の意味は? | マイナビニュース
ASCII.jp:「特別なIPアドレス」を正しくわかっているのは誰?

平田豊ひらたゆたか🐬さんのツイート: "pingコマンドとglibcの実装調べてみたけど、getaddrinfo関数が内部でinet_aton関数を呼んでいて、当該関数の仕様として、 a.b.c.d a.b.c a.b a の4形式を受理するようになっていました。 今回のケースは最後の「a」に相当します。 https://t.co/2lovAH99ZG"
APIPA - Wikipedia
lionsoul/ip2region - Git@OSC - OSChina.Net
lionsoul2014/ip2region: 准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java,php,c,python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法,妈妈再也不用担心我的ip地址定位!
Happy Eyeballs Version 2 の仕様 - ASnoKaze blog
IANA — Number Resources
192.168.0.1などのプライベートIPアドレスは途中で作られた:Geekなぺーじ
僕の💩自作OS💩が研究室のネットワークを破壊するわけがない - livaの雑記帳
Happy Eyeballs Version 2 (RFC 8305):Geekなぺーじ
Fadisさんのツイート: "WireGuardはパケットの送信時にパケット長が16の倍数になるようにパディングをしてから暗号化を行う。受信側では復号後パディングを取り除く為に元のパケット長が必要だがWireGuardのヘッダにはその情報は書かれない。論文によると「暗号化するパケットのUDPヘッダに本来の長さが書いてあるから不要」"
Fadisさんのツイート: "IPv4ヘッダとIPv6ヘッダとIPXのデータグラム長はいずれも先頭から2バイト目に2バイトで置かれているからプロトコルを判別しなくてもパケット長は取れる、という知見を得た"
Fadisさんのツイート: "オンラインゲームでUDPを使う一番のモチベーションは「再送制御にコンテンツを把握しているレイヤーが口を出したい」って所なんだ。例えば「Aさんが1歩右に歩いた」という通知が3連続で届かなかった場合、それらを個別に再送するんじゃなくて、「Aさんが3歩右に歩いた」にまとめて再送したい"
Shirouzu Hiroaki(白水啓章)さんのツイート: "未だに、RealTek NIC のUDPチェックサム・オフロードのバグを踏む事例が出るとは。 https://t.co/7tT9MO3ysD"
相手との接続ができているのに送信キューに溜まる - Google グループ
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、このための hack を入れておいたはず(=後ろに64バイトの余分な0x0を付与)だが…と確認してみると、v4.5以降同士のIPDict形式に限り、このhack化パケットは受け取らないコードになっていた。後で直しておこう。… https://t.co/RkcP17o5Ho"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この hack は最後のリトライで発動する形。 (最初から付与していては意味がないので)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UDP Checksum Offloadで問題を起こすのはRealTek NIC。 10数年前に見つけた話だが、未だに発症する環境があるのが何とも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UDPフラグメントかつ、最終フラグメントのペイロードが15バイト以下(だったか63だったか)の場合のみ、オフロードでのチェックサムが狂うという、確かに見つけにくいバグではある。"
Kazuho OkuさんはTwitterを使っています: 「recvmsg で destination address を取るには IP_PKTINFO もしくは IPV6_RECVPKTINFO を使う、と。linux 以外だとどうやるのかな」 / Twitter

TCP

その他

Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について : 革命の日々 その2
Programming TCP for responsiveness
TCPのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
ns3でTCPの輻輳制御を観察する - Qiita
人生の全てはTCP/IPに学んだ:Geekなぺーじ
相手がいないのに ESTABLISHED になってる TCP ポート - @tmtms のメモ
saminiir's hacker blog
saminiir/level-ip: A hacker's userspace TCP/IP stack
tcprewrite
robertdavidgraham/masscan: TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
Linux kernel TCP 実装にサービス運用妨害 (DoS) の脆弱性(CVE-2018-5390) について解説 - Qiita
Information on RFC 8548 » RFC Editor
Information on RFC 8547 » RFC Editor
堅牢なTCPサーバを作るために - katsubushiの知見から/kamakura.go#5 - Speaker Deck
第1回 TCPの輻輳制御とは何か:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
TCP Slow Startを改善する HyStart++について - ASnoKaze blog
DSAS開発者の部屋:第一回 KLab Expert Camp「TCP/IPプロトコルスタック自作開発」を開催しました
DSAS開発者の部屋:xv6にネットワーク機能を実装した
WEBサーバのTCPコネクション数に上限はあるのか? - Qiita
TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
ブラウザからTCP, UDPソケットを操作するRaw Sockets API - ASnoKaze blog

TCP Pacing

パケットペーシング

HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog
世界最速通信で考えるインターネットの将来 | 日経 xTECH(クロステック)
OCNモバイルONEが始める「httpsのページング」とは何か
PowerPoint Presentation
【予告】9/25より利用混雑時における通信速度改善に向け、新たな取り組みを始めます。 : LINE MOBILE 公式ブログ
通信の最適化によるお客さま影響について(ペーシング) | スタッフブログ | マイネ王
CiNii 論文 -  パケットペーシングによる全対全通信の最適化とシミュレーション評価
20120306-IPSJ74-PktPacing.pdf
HPCS2011Shibamura.pdf
【LINEモバイル】利用混雑時における通信速度改善に向け、新たな取組を実施 | LINE Corporation | ニュース

Shirouzu Hiroaki(白水啓章)さんのツイート: "linuxの一部のバージョンでは、tcp pacingがデフォルトで有効と。ちなみに Windows/winsockには無さそう。 https://t.co/k3LYxmE5jt"
Is TCP PACING enabled by default on linux? - Unix & Linux Stack Exchange
TCP pacing - Wikipedia
paper.dvi
FQ-pacing-results.pptx
ieeexplore.ieee.org
TCP Pacing [LWN.net]
RT2001-066.doc
ns0601-takano.pdf

Multipath TCP

本の虫: Multipath TCPについて
本の虫: MultiPath TCPのLinuxカーネル実装
Kentaro Ebisawaさんのツイート: "iOS11でMultiPath TCP(MPTCP)が本格サポートされるとのこと。WiFiと4G/5Gの共有・切り替えなどが本格化した時に通信キャリアとその中のネットワーク機材に必要とされる(必要とされない)機能ってなんだろう。 https://t.co/Qk4uYjrNt2"
Michio Hondaさんのツイート: "@ebiken @n_kane この辺にmiddleboxの具体的な挙動に対してMPTCPがどう設計されているか書いてあります!https://t.co/xeKPpsGyol"
Kentaro Ebisawaさんのツイート: "両端のnodeだけで通信が完結することは無く、常にミドルBOXがある前提で考えねばならぬ。逆に言うと、MPTCPが最も効果的なモバイル環境のVNFやスイッチ・ルーター等ミドルBOXは、TCP拡張がある前提で設計&実装する必要がある。 https://t.co/bhFbq5Pl4C"
Kentaro Ebisawaさんのツイート: "MPTCPをペイロード又はTCP Optionに載せるか。ACKの受け取り方。シーケンス番号はSub Flow単位かTCP Sessionの番号を共有すべき... 今時(5年前だけど)のミドルBOX実装を考慮した考察があって楽しい。 https://t.co/bhFbq5Pl4C"
nsdi12-final125.pdf
iOS 11でMultiPath TCPを使う - ASnoKaze blog
RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses
RFC 6181 - Threat Analysis for TCP Extensions for Multi-path Operation with Multiple Addresses
Multipath TCP(MPTCP) – ビットログ
Multipath TCP - Wikipedia
まさみさんは語りたいさんのツイート: "mptcp、生きていた!よかった・・・。… "
Hajime Tazakiさんのツイート: "Linux ではなんとか生き残ってる感じですね。。… "
ゆきさんのツイート: "TCP Extensions for Multipath Operation with Multiple Addresses https://t.co/26oHTNrSkK マルチパスTCPのv1がLast Call中だけど、v0 (RFC6824)と互換性ないんだなー。デプロイが進むと良いなー。"
draft-ietf-mptcp-rfc6824bis-13 - TCP Extensions for Multipath Operation with Multiple Addresses
JPNIC News & Views vol.1717【臨時号】第105回IETF報告 [第4弾] トランスポートエリア関連報告 - JPNIC
2020年8月21日 Red Hat,マルチパスTCPをRHEL 8.3のテックプレビューとして実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「RedHatがLinux 5.6に入ったMPTCPをRHEL8にバックポートしている。MPTCP(RFC6824)は1つのsocketのopenに対して複数の経路でTCPのコネクションを作り、生きているコネクション全てで通信する事で、帯域の向上、冗長化、WiFiとモバイル通信のスムーズな切り替え等を実現する https://t.co/ONMtfU69ou」 / Twitter
Red Hat Bringing Multipath TCP To RHEL 8.3 As A Tech Preview - Phoronix
FadisさんはTwitterを使っています 「MPTCP、最初の3way handshakeで以降コネクションを追加するために使う鍵をそのまま流してるから、経路上に居る悪意ある第三者は勝手にコネクションを追加できるように見えるんだけど、まぁこれが見えるところに居るホストはそもそも従来のTCPでも勝手にパケットを挿入できるじゃろ?って事なのかな」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@fadis_ それはアプリケーション層でやれということでは。」 / Twitter
FadisさんはTwitterを使っています 「diffie-hellmanくらいすればいいのに」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fadis_ ふつうのTCPでもシーケンス番号がわかればコネクション乗っ取りできるわけで。 そういうのは上の層でやれってことなんでしょうね。」 / Twitter
Linux 5.6 から Multipath TCPが使える - ASnoKaze blog
貧弱なインターネット回線をたくさん束ねて強くできる「OpenMPTCProuter」レビュー - GIGAZINE

TCP Fast Open

Twitter

@rockridge07

Rockridgeさんのツイート: "Microsoft Edgeの開発版がTCP Fast Openをサポート。既に接続を確立したことがあるIPアドレスのホストに対し3 Way Handshakeを簡略化できる。デフォルト無効。参照:… https://t.co/CfGCdbLpNA"
Rockridgeさんのツイート: "Fx55:TCP Fast Openをサポート。 / “1188435 - Support TCP fastopen” https://t.co/46NKFeE3i1"
Rockridgeさんのツイート: "Fx57:HTTPS接続の場合を対象に、TCP Fast Openがデフォルト有効化。 / “show_bug.cgi?id=1394818” https://t.co/ZnkWMjJRPv"
Rockridgeさんのツイート: "Fx59:Windows版でTCP Fast Open(TFO)が使える環境をWindows 10 Fall Creators Update以降に限定した。TFOが安定して動作するよう、もともとWindows 10限定だったのを、… https://t.co/hHplpuVnGg"
Rockridgeさんのツイート: "Firefox 59/60のリリース版ではTCP Fast Open(TFO)が初期設定で無効化されている。 / “1431738 - Disable TFO on release for now” https://t.co/eg7vGQq9sF"
Rockridgeさんのツイート: "Fx65:NightlyチャンネルでもTCP Fast Open(TFO)が無効化。エラー率が高いらしい。 / “1503573 - Disable TFO” https://t.co/EJg6gwWg3F"

@fadis_

Fadisさんのツイート: "Googleさんの、HTTPで3wayハンドシェイクしてたら時間がかかりすぎるからTCPを拡張して3wayハンドシェイクを省略できるようにしたTCP fast openを実際に運用してみたら、そんな拡張知らないファイアウォールや侵入検知がパケットを蹴り始めたから俺はUDPにHTTPを乗せる事にしたぜ、って流れ実に激しい"
Fadisさんのツイート: "普通すでに広く普及しているTCPを置き換えるぞ!なんて言ってもそうそう実現するものではないんだけど、GoogleのサーバとChromeが対応するとWebのトラフィックのそれなりの割合が新しいプロトコルで通信するようになるの、Googleつよい"
Fadisさんのツイート: "で、そんなGoogleのQUICさん元に標準化されたQUICを作る作業がIETFで進んでいる、と https://t.co/IFv33tf1ky"
quicwg/base-drafts: Internet-Drafts that make up the base QUIC specification
Fadisさんのツイート: "QUICではTCPヘッダにあった殆どの情報は暗号化されたペイロードの中に突っ込まれていて、鍵を持っていない経路上のホストが読めるのはUDPヘッダとどの鍵で復号できるかを指事するコネクションIDと、バラバラに届いたパケットをどの順で復号すれば良いかを表すパケットナンバーだけ、と"
Fadisさんのツイート: "ルータはUDPの通信がいつ終わったのか知ることができない為、NAPTが通信の途中でポートの割り当てを変える可能性があるが、QUICは何処から飛んできたパケットでも正しい鍵で復号できる限り通信が続いているものとして処理される。副作用的に通信環境がころころ変わるモバイルデバイスも幸せになる、と"

@kazuho

Kazuho OkuさんはTwitterを使っています: "tcp fastopen接続確立後にパケット通さなくなるとか、片方向だけ通すやつとかあるから、クライアント側でフォールバック処理実装したほうがいいとか。そういうネットワークは0.1%以下らしいけど #ietf94j"
Kazuho Okuさんのツイート: "最新のWindows Insider PreviewではEdge(HTTPS)でTFOデフォルトオンっていいな。TFOの時代が来そう"
Kazuho Okuさんのツイート: "Windows 10 Anniversary Update で TCP RACK がデフォルトなのか! IW10にもなって、EdgeにTFOを試すオプションがついたとも"

@jovi0608

Shigeki Ohtsuさんのツイート: "AppleのTCP Fast Open導入苦労話。ミドルボックやIDSが原因で80%ぐらいしかTFOが通らない。IDSがTFOハンドシェイク完了後にブロックするのは泣ける。 / “TFO.key” https://t.co/fdDyDs06H9"
Shigeki Ohtsuさんのツイート: "ミドルボックスが知らないTCPオプションを削除するのは予想できるけど、SYN/ackのシーケンス番号までチェックしていてTFO Cookieが通るのに戻りでTFOがブロックされるのは辛いなぁ。"
Shigeki Ohtsuさんのツイート: "おぉ! MicrosoftがTCP Fast Open/TLS False Start/TLS1.3のサポートを表明。TCP FOは既にEdge Previewに実装されているのか。 / “Building a faster a…” https://t.co/yLWx3f3Pue"
Shigeki Ohtsuさんのツイート: "皮肉にも今日のアップデートでMS EdgeのTFOがdefault無効に変更されちゃいました。https://t.co/DXt5ymbAxg / “TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaz…” https://t.co/Rq4wJJgmBS"
May 9, 2017—KB4016871 (OS Build 15063.296 and 15063.297) - Windows Help

ゆきさんのツイート: "[chromium] Remove TCP FastOpen support. https://t.co/5hLiI60gdH"

TCP Fast Open - Wikipedia, the free encyclopedia
RFC 7413 - TCP Fast Open
TCP Fast Open を試してみる - nigakyのブログ
TCP Fast Open – Webを速くするためにGoogleがやっていること Make the Web Faster 4 – | HTML5Experts.jp
TCP Fast Open ‐ 通信用語の基礎知識
TCP FAST OPENとは? | REDBOX Labo
Linux 3.7リリース、目玉はARMアーキテクチャサポートの強化 | OSDN Magazine
マイクロソフト、より高速な「TCP Fast Open」など採用へ、Windows 10の大型アップデートとWindows Server 2016で - Publickey
MSのネットワーク高速化に向けた取り組み--「Windows 10」と「Windows Server 2016」で実現へ - (page 2) - ZDNet Japan
TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze’s diary
Archive
Enhanced Performance and Privacy for TLS over TCP Fast Open
2020年2月17日 IPFireがDNSリゾルバをエンハンス,TCP Fast OpenとTLS 1.3をサポート:Linux Daily Topics|gihyo.jp … 技術評論社

CUBIC

"CUBIC: A new TCP-friendly high-speed TCP variant"を読んだ - ゆううきブログ
SACSIS.TCP
03gun_04hen_02.pdf
なまえだよさんのツイート: "iOS/AndroidのTCP輻輳制御アルゴリズムはロスベースのCUBICです。時間経過でウィンドウサイズが変動します。ロス率が上がったタイミングに巻き込まれてUDPのDNSパケットも捨てられると悲惨な感じです。 https://t.co/3oqt2RLtJA"
Shigeki Ohtsuさんのツイート: "TCP Cubic が RFC8312 に。 / “RFC 8312 CUBIC for Fast Long-Distance Networks” https://t.co/l9IflDyZwR"
Information on RFC 8312 » RFC Editor
第3回 CUBIC-TCPの登場:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社

BBR

BBR

Kazuho Okuさんのツイート: "BBTは他の輻輳制御アルゴリズムと公平に動作することを期待されてるので、この結果は、測定手法に問題がある(ボトルネックがモバイルキャリア内にない等)か、キャリアのシェイピングの動作による挙動か、BBRのバグ / https://t.co/LjcWzAk2DJ"
モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life
Kazuho Okuさんのツイート: "か、このVPNソフトが公平性無視してる"
Kazuho Okuさんのツイート: "追試するなら、同一サーバからファイルダウンロードをBBRとCubicでやってみるといいと思いました"
Kazuho Okuさんのツイート: "同一パケロスパターンで10倍速!ってのを一人がやりだすと、皆がそれを真似することになって、結果パケロスが増えてネットワークの利用効率が下がるから、輻輳制御アルゴリズム間の公平性重要という理解"
(´,,•ω•,,`)JustinZhuさんのツイート: "確かにBBRによって効果があると思いますが、でもSSRによるパケットパタンの変化が本当の原因かなと思います。正しいといえば、SSRはVPNではない(安全性はそこまで保証できないから)、パケットパタンの変化と内容を難読化が着目された特化したトンネルです。公平性もこれによって崩れたかもしれません… https://t.co/qd6Xr8HXXR"
Kazuho Okuさんのツイート: "例えば、vpnトンネルを10本のtcpに見せかけて構築し、それぞれのtcp接続において輻輳制御をする、というのはtcpに偽装するvpnとしては妥当な戦略だと思うけど(単一のtcp接続を使う場合は二重の輻輳制御が問題になる)、そのvpn上で一本のtcpをベンチマークすると、生のtcpに比べて10倍速になるよね"
Kazuho Okuさんのツイート: "いや、このケースだとならないか"
Kazuho Okuさんのツイート: "いや、vpn内のtcpの処理次第か"
SODA Noriyukiさんのツイート: "空いてる時間帯ならともかく、元記事は「昼時の通信が集中する時間帯で五倍以上の通信速度が出た」って書いてるわけで、kazuhoさんが指摘してる通り、まず間違いなくデフォルトのTCPのパラメータに対して公平性を欠いてるよね。こういうものをみんなが使いだしたら破滅が待ってる。"
#セコンさんのツイート: "こんな環境で再び測定してみたのですが、やはりBBR有効なSSRのみ速度が出るようで、SSRのソフトウェアがTCP公平性を崩しているため、この速度になっているのでしょうか。知識不足で判断できず…。 https://t.co/GV2VN4pvtN… "
TCP BBR + ShadowsocksR + fast.com の速度を macOS + テザリング環境で測定 - Qiita
#セコンさんのツイート: "kazuhoさんの指摘の通り、BBRアルゴリズムが高速化に寄与しているわけでは無く、BBR有効なSSRサーバへ接続していると、キャリアのトラフィックシェイピングの挙動が変わり、キャリアの意図と反して割り当てが増えTCP公平性に反した行為をしてしまっているように思えてきました。… https://t.co/UpXZRgSmoR"
Yusuke MURAMATSUさんのツイート: "モバイルキャリアなら TCP Ack Clocking に類することやってるだろうから色々ありそう"
Yoshifumi Nishidaさんのツイート: "BBRはlossにreactしないアルゴリズムなのでlossにreactするアルゴリズムと大きな差がでることも一応起こりえるという気はします。10倍以上というのはちょっと大き過ぎる気がするので、どこかに問題がありそうですが、条件さえ揃えば有り得なくはないという気もします。… https://t.co/7kzuMb6tuM"

Kazuho Okuさんのツイート: "Cubicに比べてLTE回線での1MBダウンロードが44%高速化ってすごいな / “BBR Congestion Control: An Update” https://t.co/cKnkPo8sTI"
Kazuho Okuさんのツイート: "従来の輻輳制御だとBDP超えてデータツッコミがちなので応答性が悪くなるってのは(僕が)忘れがちな論点だなぁ。そして、BBRだとつっこむデータ量がBDPの2倍まで減少すると。無線のモデル化をもっと進めればさらに減らせそうと。"
Amazon Linux 2017.03で新しいTCP輻輳制御アルゴリズムBBRを試してみた | Developers.IO
Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始 - Publickey
Shigeki Ohtsuさんのツイート: "BBRによるYouTubeのスループットの改善幅が日本だけ突出して良くなってる。日本ではモバイル接続が主流でパケットロスの影響が強く輻輳制御改善の恩恵がそれだけ大きいということか。 / “Google Cloud Platfor…” https://t.co/yQLN8Ljfzg"
draft-cardwell-iccrg-bbr-congestion-control-00 - BBR Congestion Control
GoogleのTCP BBRでTCPを高速化しProxyもその恩恵にあずかる - Qiita
Ryousei Takanoさんのツイート: "いろいろ懐かしい。TCP CUBICで決まりかなと思ったのですが、最近はGoogleがBBRってのを提案したりと局所的には盛り上がってそうです。… "
第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社

輻輳制御手法

Kazuho OkuさんはTwitterを使っています 「インターネットのパケロスはランダムに発生するのではなく、複数のパケロスがまとまって観測される、という話。これ伝統的な輻輳制御手法の根本にある考え方だし試験に出ますよ / https://t.co/CtHe5SqQBH」 / Twitter
Parsing QUIC logs and assessing packet losses | Christian Huitema
Kazuho OkuさんはTwitterを使っています 「だからネットワークシミュレータで、パケットロスn%、みたいな設定をしても、現実の環境のシミュレーションにはならない(ことが多い)」 / Twitter
(´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho それなら1/2の確率で捨てるかどうかを確定、捨てるの場合連続ランダム個パケットを捨てて、指定したパケロスn%を超えた場合しばらく捨てないって言うシミュレーションがもっと現実と近いかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@zlm2012 実際のキューの挙動をシミュレートした方が良いのでns3とかはそうしてますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@zlm2012 パケロスは確率事象じゃなくて、キューオーバフローの結果なので」 / Twitter
kazさんはTwitterを使っています 「@kazuho @zlm2012 横レス失礼。 TCP-BBRの論文もそんなこと書いてあった気がしますね。」 / Twitter
(´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho でもルーターに「賢い」こと(同じ IP-IP:port のパケットをまとめて処理とか?)をやってエンドユーザーがセルラーのNATとかの後ろにいる時、エンドユーザーから見ると確率事象になる可能性もそこそこありそうな気がしますね」 / Twitter

Wikipedia

TCP congestion control - Wikipedia
二人の将軍問題 - Wikipedia
Two Generals' Problem - Wikipedia

Twitter

Kazuho Okuさんのツイート: "ルータがTCP ACKにバンド幅情報等を載せる仕組みの提案 / “Throughput Guidance” https://t.co/ojqyCdaxHB"
Kazuho Okuさんのツイート: "「64bitのシーケンスナンバーが10年後には求められるようになるだろう。TCP/IPスタックが対応するにも、そのくらいの期間がかかるだろう」"
Kazuho Okuさんのツイート: "tcpm で getsockopt(TCP_INFO) 標準化の機運がにわかに盛り上がってきた!!!!"
Kazuho Okuさんのツイート: "古いネタにマジレスだけどパケロスがゼロなら距離関係ないし、パケロスがあってもCubicとか最近の手法なら距離関係なかった気がする > 「RTTである「R」が大きくなればなるほどTCPのデータ転送性能は低下する」 / “Geekな…” https://t.co/h7xFnahBIL"
Kazuho Okuさんのツイート: "RFC 8311でECT(1)を実験用に空けたわけだけど、具体的にどういう風に使うつもりなんだろう"
RFC 8311 - Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation
ぬるぽへさんのツイート: "TCPのEnd-toEndのRTTが縮小できるのでTCPプロキシがある場合が速いことがある, TCPのLong Fat Pipe問題 #tcfm"
ぬるぽへさんのツイート: "TCP splittingとかいう概念を初めて知った、勉強になります #tcfm"
matsuuさんのツイート: "プロトコルにもよるけどアクティブクローズをするのは大抵受信側で、TIME_WAITで残るのも受信側だからほとんど問題にならないとの認識(HTTP-Keepaliveはそんなことないか)。間違ってるなら誰か教えて欲しい。 / “n…” https://t.co/T2LFEFSmeJ"
net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
Kentaro Ebisawaさんのツイート: "F-Stack: DPDK使うとNetwork Stack自作する必要があるのを、FreeBSD Network Stack を Userspace にポートする事で解決したのね。Tencent Cloud やりますな~ https://t.co/XPyI4avazp"
F-Stack/f-stack: F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
Fadisさんのツイート: "RFC1122のTCPに関する要件の所に「データがくっついているRSTを許容すべきである。フォーマットについて標準化はまだなされていないが、RSTのデータにRSTした理由がASCIIテキストで含まれる可能性がある」って書かれててRSTが溢れて不思議な踊りを踊る実装が存在する可能性にワクワクせざるを得ない"
Kazuho Okuさんのツイート: "RFC793bis(TCPのRFCのアップデート)、100ページ超えてるのやばい https://t.co/yJtL3nhg3s"
draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
Kazuho Okuさんのツイート: "!!!!!… "
Hideki Sekineさんのツイート: "RFC793の内容を含んでいること、RFC793の時点で85ページあること、を考えるとむしろコンパクトな気もしますね。… "
Kazuho Okuさんのツイート: "たぶん僕の発表に絡んだ話だと思うので。ソースは https://t.co/as5VM63uWb です。そして、クライアントがハンドオーバー中とかでackが返って来ないときにどうやるかという話なので、ミドルボックスに何かのシグナルを出してもらう必要があります… https://t.co/KSkUPf7aXe"
TCP Optimization: Opportunities, KPIs, and Considerations
女子会さんのツイート: "ネットワーク事業者側がTCPをバッファリングして、パケットの番号を整列することでパケットの再送要求を減らして、5%程度帯域を減らせた事例があるという話があったけど、それがQUICの導入によりクライアント側でやれるようになれば効果が大きそうな気がしている。クライアント側の実装依存だけど。"
Kazuho Okuさんのツイート: "あーソースは他にも mobile tcp optimization とかでググれば色々でてきます"
Fadisさんのツイート: "TCPヘッダが20バイトもあるのに対し、IPは最小で8バイト毎にフラグメント化することが可能で、結果TCPのヘッダは途中で分断して送信することができて、雑にフィルタリングを行なっているファイアウォールがこうしたパケットの先頭だけを見て誤ったフィルタリングを行う事が90年代に指摘された"
Fadisさんのツイート: "TCP、再送が必要になると、その情報が既に無価値になっていたとしても再送するまでその後ろの通信内容を読ませてくれないから、ミリ秒から秒単位で更新される情報を同期するようなタスクにおいてはあまり幸せになれない。問題はTCPでは辛いとなるといきなりUDPに放り出される点。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Web会議ASPを開発していた頃、セッション概念あり、再送&順序制御なし(できればFECあり)、パケット(データグラム)指向なプロトコルが欲しかった記憶。 そして、UDPでこれらを満たすレイヤを作ったけれど、これって皆が通る道なんだろうな(笑)… https://t.co/N6fdHptaQL"
鹿さんのツイート: "TCPでフロー制御して欲しいけど再送遅延は抑えたい時のために TCP Thin Stream があると思うのだけどそれではダメなのかな。再送回数抑えれば200ms x 3回とかで諦めてくれるので捗る。… "
Fadisさんのツイート: "TCPが最初に規格化されたRFC793(1981年)当時のRFCには今日ではおなじみのMUSTとかSHOULD NOTとかいったキーワードがまだなくて、RFC1122(1989年)でRFC793に書かれている仕様が必須なのか推奨なのかが追記されてるの規格としてはアレだけど面白い"
Fadisさんのツイート: "TCP、互換性のある通信をするために必要なパラメータの範囲に関するRFCが結構2010年代に入ってから作られてて、お前今までどうやって通信してたんだ感が凄い"
Fadisさんのツイート: "TCPを実装する上で読むべきRFCが多すぎてどれを読めば良いか分からん問題に対処するために、RFC7414でTCPに関する情報はどのRFCをあたれば良いかが纏められているんだけど、RFC7414自体がReference以降のぞいて41ページもあるんだ…"
Kazuho Okuさんのツイート: "https://t.co/fmiFuSkkys は、まだちょっと問題ある感じなんでしょうか… "
draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
Fadisさんのツイート: "いえ、欲しかったのはまさにこういうドキュメントでした。これがあればTCPの基本的な機能については歴史を辿って読む必要がなくなりますね… "
Kazuho Okuさんのツイート: "おお。歴史や実装に詳しくない人が、これ読んで分かりにくいところをフィードバックしたりすると喜ばれるんじゃないかなと思います… "
suzakiさんのツイート: "EuroSysネットワーク4つ目。LinuxのTCP処理はカーネルで97%の時間が使われる。これを効率化するために各処理をFast Path、Slow Pathに分けて行うTAS: TCP Acceleration as an OS Serviceの提案。 Fast PathではData Segment作成, Ack, Flow Controlの処理を行う。Slow Pathでは IP Routing, ARPを行う"
suzakiさんのツイート: "TAS: TCP Acceleration as an OS Service のHP  https://t.co/w6mHTo4i0O"
Kazuho Okuさんのツイート: "面白い。TCPはウィンドウサイズを送受信ともに1MTU以下にすれば実装簡単になりそうな気もするけど、TCPを知らずに育った世代なので自信ない / https://t.co/xMM5ma1odH"
3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo - Speaker Deck
Yoshifumi Nishidaさんのツイート: "結構単純になると思います。uIPはウインドウサイズ1MSSのTCP実装でサイズが5Kバイト程度です。… "
YAMAMOTO Masayaさんのツイート: "すごい。microps は pthread に甘えて実装が楽になってるけどこちらはだいぶ大変そう。@kazuho さんがコメントしているように、TCP は Window Size の広告を小さくすれば 1 セグメントづつのキャッチボールにできてシンプルになるのでぜひ頑張って欲しい(microps はその方法で tcp.c が 700行くらい)… https://t.co/RBHtoKVQCy"
Kazuho Okuさんのツイート: "再送と輻輳制御、コードにバグがあった場合、修正方法を探り当てる難しさが TLS とかと段違いに難しいイメージ。動くんじゃダメで、あらゆるパターンにおいて、ネットワークに適切な負荷をかけつつ、そのケースで想定される時間内に回復処理を行わなければならない、ってむちゃくちゃ難しい"
Kazuho Okuさんのツイート: "TCPを使うプログラムの書き方、切断処理は接続処理のだいたい100倍くらい難しいイメージ"
Kazuho Okuさんのツイート: "パイプラインを使わないリクエスト・レスポンスプロトコルの場合のみ例外的に簡単です"
Fadisさんのツイート: "LinuxをリモートからPANICさせる脆弱性SACK Panic。LinuxはMSS最小48バイトのTCPを受け付けており、その場合データは8バイトになる。キューは17*32KB分あるが16bitのindexでフラグメントを識別しており、キューに長蛇の列ができるようにSACKを投げるとindexが溢れてPANICする https://t.co/wmOGq3bwVQ"
Netflix Uncovers TCP Bugs Within The Linux & FreeBSD Kernels - Phoronix
Fadisさんのツイート: "SACK Panicを修正するパッチは既に本件カーネルに取り込まれているが、古いカーネルをしばらく使う必要がある場合MSSが小さすぎる通信をiptables等で蹴る、SACKを受け付けないようにする、といった方法で回避できるらしい"
Kazuho OkuさんはTwitterを使っています: 「accept (2)、ローカルアドレスも返してくれたらいいのに。unbound socket を listen (2) している場合に、いちいち getsockname (2) 呼ばなきゃいけないのめんどくさい」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「s/unbound socket/0.0.0.0/」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「すごい分かる。そして10ページじゃ足りないと思う https://t.co/g02E7UUZpV」 / Twitter
成瀬さんはTwitterを使っています: 「TCPのFIN、socketのcloseの話だけ10ページくらい使って説明して本とかないんですかね」 / Twitter
FadisさんはTwitterを使っています 「TCPの新しいRFCのドラフト、緊急ポインタの説明が1段落目からいきなり「実装間の違いと経路上の機器の影響の結果、緊急ポインタは新規アプリケーションで用いるべきではなくなった。でもTCPの実装はまだ緊急ポインタをサポートしていなければならない。詳しいことはRFC6093みてネ」でとても良い」 / Twitter
FadisさんはTwitterを使っています 「RFC1122、「TCPで通信するとき、slow startするようにして、再送する時は一定じゃない時間待ってから再送するようにしたら輻輳を回避出来たから、TCP喋るやつはみんなこれしろ」って書かれてて、それまでのTCPはどんな世紀末な通信してたのってなる」 / Twitter
FadisさんはTwitterを使っています 「1981年公開のネットワーク対戦ゲームTCP(RFC793)は当初酷いバランスだった事が知られている。バッファ枯渇後復活したホストに対してすぐ細切れのデータを送るリスキルが横行しスループットは急落した。そこで1989年のアップデートRFC1122では復活後バッファが十分空くまで殴れなくする変更が加えられた」 / Twitter
FadisさんはTwitterを使っています 「Silly Window Syndromeの対策もRFC1122だったんだな。やっぱり1989年より前のTCPは世紀末…」 / Twitter
FadisさんはTwitterを使っています 「TCPはストリームなので、前のパケットが失われて再送になると後ろが一緒に詰まる、というのはQUICがTCPを捨てた大きな理由だったけど、後ろのパケットはホストまで届いているんから、再送を待たずに投機的に処理して再送されてきた前のパケットとシーケンス番号が噛み合ったら確定、は出来るんだよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ sack付tcpでは、ある程度そんな動きで、ただユーザランドでは欠けたパケットが届くまで詰まったように見えてしまう、というお話でしょうか?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu そうですね。BSDソケットを使っている場合確定していないパケットはアプリケーションから見えないので詰まってしまいます。ただこれはプロトコルの制約というよりAPIの制約であって、たとえ話DPDK上でアプリケーションが自力でTCPを喋っている場合もっと攻められる、とか考えていたところでした」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なるほど。 マルチプレクサ的なストリーム利用の場合は、データグラム的なデータ境界が欲しくなりそうですね(笑)」 / Twitter
FadisさんはTwitterを使っています 「あれ、もしかしてTCPの規格は再送パケットのデータが最初に送ったパケットのデータと一致している事は要求していない…? (新しいおもちゃを見つけた顔」 / Twitter
Motonori ShindoさんはTwitterを使っています 「@fadis_ TCPで再送する時に、最初に送ったのと同一のパケットになる保証はありません。後続のセグメントとくっつけて再送するのもアリなので。」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@tagomoris @_ko1 listening socket を close することで、他のスレッドで実行中の accept が終了するのって、portable じゃないんじゃないかなぁ。(昔、いろいろな環境で動くように WEBrick を直したときに、DragonFly BSD 3.6.2 では close しようが shutdown しようがブロックしつづけることを確認した)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「えっlinuxのTCPのフローコントロールってオーバープロビジョニングしてるの? パケロスが発生した場合に tcp_rmem 変更しろ、とか書いてあるんだけど。それとも僕のsysctlの理解が間違ってるのかな / https://t.co/5QIoVVA8OX」 / Twitter
TCP ソケットバッファーを調整する - Red Hat Customer Portal
(1) ultravioletさんはTwitterを使っています 「@kazuho tcp_rmem を変えると連動して wndow size だか auto tuning だかに関連するパラメタも変わったような気がするのだけれど、前の職場から移るときに「すべて忘れます」誓約書にサインしたので思い出せない (嘘、たぶんサインしなくても思い出せなかった)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock ですよね、フローコントロールのオーバープロビジョニングはしないですよね。だから、パケットを受信したなら、バッファサイズが足りなくて取りこぼすことはないと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 同感です。TCPのwindow sizeとして求められている役割に違反してますよね。 # メッチャ厳密にいうと、メモリ不足でカーネルが死にかけてる状況なら取りこぼす可能性についてはないとは言えないとは思いますが、それはwindow sizeを広げるとむしろ悪化する筈なので、この回答はどちらにせよ変。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock こうやって頻繁にパケット落としちゃうと、適切にフローコントロールしてる場合よりも速度低下しますもんね(そして、ごく稀にしか発生しないなら Knowledge Base で取り上げる必要がないと思う)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock はい。 現実にパケットロスしている場合、たいていは中間にある機器のバッファサイズが不足していて、それはwindow sizeを小さくするとむしろ改善する(ことがある)わけで、このアドバイスはトラブルシューティングの経験とは真逆のことが書かれてます。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 気になってもう少し調べてみたんですが 「~packets collapsed」の方は重複したsk_buffをgarbage collectしているだけで実害なさそうでした。 問題は「~ packets pruned」の方で、歯抜けになったsk_buffに重複してない部分があるせいgarbage collectできずSO_RCVBUFを越えてしまってる状況みたいです」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock で、そういう lossy なネットワークでせっかく受信したパケットを捨ててしまうことになりもったいないので、tcp_rmem を増やしてやれば捨てることがなくなって状況が改善する…ということみたいです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock なお Linux 素人なので、まったく勘違いしてるかも。専門家の意見を聞きたいところです。 ググったら https://t.co/uYFqZcCfuV の「9.2.1 tcp_prune_queue()」近辺に記述が見つかりました。」 / Twitter
TCP/IP Architecture, Design, and Implementation in Linux - Sameer Seth, M. Ajaykumar Venkatesulu - Google ブックス
Tatsuya MoriさんはTwitterを使っています 「(備忘録)昔の知識だとTLSハンドシェイクは時間がかかる印象なのだけど、2013年のRFC6928でTCP初期ウィンドウは10まで許可されている。サーバは1発目のターンでhello, certificate, exchange, doneをバルクで返せるようになった。 古い教科書ではTCP初期ウィンドウは1という説明が多い。」 / Twitter
Tatsuya MoriさんはTwitterを使っています 「TCP初期ウィンドウサイズを増やす提案は下記の ACM SIGCOMM CCR 論文 (2010年) が元ネタになっている。 https://t.co/alUfKku76K Linux では2011年からカーネルの標準設定になっているので、"code then spec" の典型例かな。コミュニティは副作用を気にしたのかもしれない。」 / Twitter
An argument for increasing TCP's initial congestion window | ACM SIGCOMM Computer Communication Review
Kazuho OkuさんはTwitterを使っています 「TCP は packet number (シーケンス番号)が再送時に変化しないから自動的に late-ack 対応ができる。そのかわり、確実なロス検出が困難になる。QUIC は、再掃除に変化してロス検出の精度が上がるかわり、意識して late-ack 対応のコードを書く必要がある。これもまたトレードオフですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「というと QUIC で複雑になったようにも聞こえるけど、persistent congestion 検出にやすさでいうと、どのみち late-ack 前提のデータ構造使ってる必要があり。。。みたいな」 / Twitter

UDP GSO

Kazuho OkuさんはTwitterを使っています 「UDP GSO、カーネル内で完結してるわけじゃなくて NIC によって I/O error が返る、みたいな感じなのかぁ。DeskMini A300 は gbe も wifi もダメだった。これは 5gbe とかの USB NIC 買うしかないな。。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なんで UDP GSO やってるかというと QUIC の最適化においては重要だからです。手元だと 25% くらい速くなる https://t.co/XstTROh5VK」 / Twitter
willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
Kazuho OkuさんはTwitterを使っています 「結果まとめた https://t.co/7WOYW85ZGQ」 / Twitter
add support for GSO by kazuho · Pull Request #293 · h2o/quicly
VさんはTwitterを使っています 「@kazuho 25% ですか!それは凄い。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「しかし Intel Core をデチューンした状態でgbeサチるのが難しいとなると、なかなか10gbe導入の正当化がしづらい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーこれは結局NICのtx checksummingがオンになっているか否か、という問題でした(論文にあるようにUDP GSOはtx checksum offload必須)。Realtek r8169はデフォルトオフのところオンにできた。Intel AC 3168は非対応」 / Twitter
Kazuho OkuさんはTwitterを使っています 「UDP GSO自体は、ハードウェアがGSO非対応でも動作するらしい。ドライバのキューに突っ込まれるところまでsegmentationを遅らせることに意味があるから https://t.co/ganmK5L9EO」 / Twitter
Queueing in the Linux Network Stack | Linux Journal
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議作ってた頃は udpパケットが、pppoe や vpnでフラグメント起こさない値として、1344を使っていたっけ。 (分割検出の度に短くなっていった。なおエラーにならないので気付き辛い)」 / Twitter

NIC

RNDIS

Android USB Tethering - Gentoo Wiki
Android テザリング - ArchWiki
Android tethering - ArchWiki
[Linux] USB Ether gadget(g_ether) の使い方等 - Qiita
Overview of Remote NDIS (RNDIS) | Microsoft Docs
[MS-RNDIS]: Remote Network Driver Interface Specification (RNDIS) Protocol
RNDIS について | WDDDC

CDC-ECM

cdce(4)
Develop
Ethernet over USB - Wikipedia
AN64465 - West Bridge® Integration to Android on OMAP Zoom II MDP:RNDIS, CDC-ECM, and Mass Storage Functions | Cypress Semiconductor

CDC-EEM

CDC EEM
DriverCore
XLsoft Corporation : エクセルソフト デバイスドライバ開発ツール : USB Communication Device Class
MCCI Windows drivers for CDC EEM
CDC EEM Subclass Architecture

CDC-NCM

USBのNCM(Network Control Model)仕様が世界標準に | 共同通信PRワイヤー
MCCI Network Control Model (NCM) class drivers
CDC: Communication Device Class (NCM)
TR-018_Ver1.0.pdf
TR-017_Ver1.0.pdf

MBIM

USB-IF、モバイルブロードバンド・インターフェースモデル仕様の提供を発表 | Business Wire
次世代Windows OSで変化する無線ネットワーク環境とファイルシステム (1) 無線ネットワーク機能をブラッシュアップする「モバイルブロードバンド」 | マイナビニュース

CDC-WMC

Support for the Wireless Mobile Communication Device Class (Windows Drivers)

ASIX

AX88772 - ASIX Electronics Corporation
AX88772B - ASIX Electronics Corporation

virtio-net

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第3回 I/O仮想化「デバイスI/O編」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第11回 virtioによる準仮想化デバイス その1「virtioの概要とVirtio PCI」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第12回 virtioによる準仮想化デバイス その2「Virtqueueとvirtio-netの実現」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第19回 bhyveにおける仮想NICの実装
virtio(vhost)の概要 - tkokamoの日記

NIC(Intel)

Intel® ICH 8/9/10 and 82566/82567/82562V: Developers Manual
Intel® 82541PI Gigabit Ethernet Controller: Specification Update
Intel® Gigabit CT Desktop Adapter Product Brief
Intel PRO/1000 GT Desktop Adapter
www.intel.com/content/dam/doc/manual/8255x-10-100-mbps-ethernet-controller-software-dev-manual.pdf
Intel® PRO/1000 PT Desktop Adapter - Overview
Intel 8254x - OSDev Wiki
download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf
PCIe* GbE Controllers Open Source Software Developer’s Manual
PCI-PCI-X GbE Family of Controllers Software Developer’s Manual

NIC(Realtek)

www.cs.berkeley.edu/~kubitron/cs194-24/hand-outs/rtl8029as.pdf
akizukidenshi.com/download/RTL8019AS.pdf
www.intrasoft-spb.ru/pdf/Gigabit_ethernet_controller_RTL8169.pdf
RTL8111B_8168B_Registers_DataSheet_1.0.pdf

NIC(Broadcom)

Ethernet NIC Driver Support

NIC(Marvell)

Marvell_88E8053.pdf

自作OSに10GbE NICを移植する – Raphine Project
既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
MII-RMII
Yojiro UOさんのツイート: "某NICの内部カウンターのインクリメントタイミングを決めている定格80MHzのオシレータ、しばらく計測した結果80.003MHzくらいで発振してることがわかった。<40ppmくらい。なるほど。 微妙に時間がズレる。"
Yojiro UOさんのツイート: "NIC内カウンター、クロックタイミングごとの加算値をキャリブレーションするためのレジスタがあるので、そこをほげると補正できるはず。"
Yojiro UOさんのツイート: "80MHzのオシレータが3KHzもずれていると、1クロックあたり4.6psくらいずれていく計算になる。 1秒で0.36ms。 今時の腕時計でもこんなにずれない。"
Yojiro UOさんのツイート: "昨日みてた某NICの内部クロック、個別にキャリブレーションして一晩ちょっとフリーランしておいた結果を眺めた。ずれは1/20くらいにはなったけどまだずれてる。 一秒あたり1usecくらい。 内部クロックだけの精度でさらに1/10くらいに追い込めそうな気はする。"
中村 実さんのツイート: "1/4nsってPTPの仕様上の分解能の限界だがな。一番下の桁でカウントアップしているだけじゃないかしらん? https://t.co/YPNbMUCDqo"
Yojiro UOさんのツイート: "ちなみにintel x550のタイムスタンプの時間分解能は12.5nsのはず。"
IzNoMaさんのツイート: "日本では10年前に 4ns分解能のがありました。特定のアトリビュートを持った udp データグラムにのみ打刻するタイプですね。 現時点での 250ps分解能はそのまま FPGAの性能向上を示してる気がします。^^ https://t.co/Ig78TWsA6k https://t.co/pQrSeaoihC"
ryoさんはTwitterを使っています: 「動的解析の結果謎レジスタの意味がわかった。どうやら0x80000000がRSS Enableのフラグで残りはprotocol毎のRSS ringの数(2^n)のようだ。https://t.co/gwFKqbTNei 謎数値の埋め込みやめてw」 / Twitter
aqtion-freebsd/aq_hw.c at master · Aquantia/aqtion-freebsd
技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します! - へにゃぺんて@日々勉強のまとめ
ふつうのNICでハードウェアL3スイッチング; あるいはSR-IOV switchdev modeとTC hardware offloadの使用例 - yunazuno.log
tc flowerオフロードを利用してNICハードウェア上でパケットフィルタを実施する - yunazuno.log

SMB

脆弱性

WindowsおよびSambaの重大なバグ「Badlock」、4月12日のパッチリリースが告知される | スラド セキュリティ
WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 | スラド IT
JVNVU#92232364: Microsoft Windows および Samba の認証機能に脆弱性 ("Badlock")
ASCII.jp:95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か|Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート
Windowsの通信プロトコルに脆弱性報告、SMB v1は無効化を - ITmedia ニュース
ニュース - WindowsのSMBに新たな脆弱性見つかる、企業担当者はファイアウオールの再確認を:ITpro
WannaCryの危機再び。新たな拡大感染型ランサムウェアGoldenEye/Petyaが全世界で拡散中。 | LAC WATCH | 株式会社ラック
Windows SMBの脆弱性「SMBLoris」の再現を確認しました | LAC WATCH | 株式会社ラック
Windows 10/8.1の「SMB v3」に未解決の脆弱性、Windowsをクラッシュさせてブルースクリーンに -INTERNET Watch
WindowsのSMB v3脆弱性を悪用し、ウェブサイトのリンククリックでシステムをクラッシュさせる手法、SecureWorksが公表して注意喚起 -INTERNET Watch
被害拡大のランサムウェア「WannaCryptor」は「SMB v1」の脆弱性を悪用、サポート終了のWindows XP向けにも緊急パッチ提供 -INTERNET Watch
新種ランサムウェア「GoldenEye」が世界各地に感染拡大、SMB v1の脆弱性「MS17-010」を突いて感染 -INTERNET Watch
猛威を振るったランサムウェア「WannaCry」を振り返る - INTERNET Watch
Google、SMBv1にのみ対応するAndroid用Sambaクライアントを公開 | スラド セキュリティ
google/samba-documents-provider: Access network file shares directly from the Android Downloads/Files app
Petya ランサムウェア攻撃に対する Windows 10 プラットフォームのレジリエンス – 日本のセキュリティチーム
アップグレードの重要性: 2017 年のランサムウェア拡散時に高い効果を証明した Windows 10 の次世代型セキュリティ – 日本のセキュリティチーム

MS

[MS-SMB]: Server Message Block (SMB) Protocol
SMB 3.1.1 Pre-authentication integrity in Windows 10 – Microsoft Open Specifications Support Team Blog
SMB 3.1.1 Encryption in Windows 10 – Microsoft Open Specifications Support Team Blog
Encryption in SMB3 – Microsoft Open Specifications Support Team Blog
SMB 2 and SMB 3 security in Windows 10: the anatomy of signing and cryptographic keys – Microsoft Open Specifications Support Team Blog
Extended DFS referral for SMB 3 – Microsoft Open Specifications Support Team Blog
SMB3 Secure Dialect Negotiation – Microsoft Open Specifications Support Team Blog
SMB 2.x and SMB 3.0 Timeouts in Windows – Microsoft Open Specifications Support Team Blog
CIFS and SMB Timeouts in Windows – Microsoft Open Specifications Support Team Blog
Encryption in SMB 3.0: A protocol perspective – Microsoft Open Specifications Support Team Blog

SMB Direct

Remote Direct Memory Access

Remote Direct Memory Access - Wikipedia
Remote direct memory access - Wikipedia
リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報

Improve Performance of a File Server with SMB Direct
Windowsファイルストレージ(SMB) - メラノックス テクノロジー
SMB Direct - Windows Server 2012 / R2 - SSD情報
SB_Accelerating_Remote_Storage_Mar_2014.pdf
SANsymphonyパススルーとRDMAの組み合わせ - Qiita
SMB direct の性能 : kommy の備忘録

@IT

Windowsネットワークの基礎:第7回 ファイル共有プロトコルSMBの概要 - @IT
その知識、ホントに正しい? Windowsにまつわる都市伝説(23):ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編) - @IT
Tech TIPS:SMBのマルチチャネル転送機能でファイルサーバーへのアクセス速度を向上させる - @IT
ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(23) - @IT
ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(24) - @IT
Linuxはサンバ(Samba)で踊る――WindowsとLinuxのファイル共有のいま:その知識、ホントに正しい? Windowsにまつわる都市伝説(25) - @IT
SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(26) - @IT
SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(27) - @IT
再チェック! ファイル共有プロトコル「SMB」のためのセキュリティ対策:山市良のうぃんどうず日記(83) - @IT
ランサムウェア「Wanna Cryptor」に対し、異例のセキュリティパッチをWindows XPに提供する意味:山市良のうぃんどうず日記(94:緊急特別編) - @IT
ランサムウェア「WannaCry」対策で安心してはいけない――いま一度、見直すべきWindowsの脆弱性対策:山市良のうぃんどうず日記(95:特別編) - @IT

MIT Kerberos V5-1.16
日本Sambaユーザ会 - Microsoft の CIFS 仕様ライセンスで、Samba Team が声明
SMBとは|Server Message Block - 意味 / 定義 / 解説 / 説明 : IT用語辞典
Server Message Block - Wikipedia
Mac のファイル共有で接続する方法 - Apple サポート
「Samba 4.6」リリース | OSDN Magazine
クラスター共有ボリューム (CSV) を利用する環境での SMB Multichannel 設定の考慮事項 | Ask CORE
2017年9月4日 Linux 4.13がリリース,SMB 3.0がデフォルトCIFSに:Linux Daily Topics|gihyo.jp … 技術評論社
Kengo Sawatsuさんのツイート: "朗報(悲報):3年間ずっと間違って評価してたaio_readを正しく実装してみたら、SMB越しのreadの性能が適当な環境ですら20%以上伸びる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルサーバ(種別不明)にコピーしたら、途中でエラー123(ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません)が出たという話。 ファイルサーバがUNIX系でも / 以外は禁止文字が無いはずで、コピーの途中で出るパターンって、何かあったかな…?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "手元で試すと、sambaでファイル名長(パス要素長)がファイルシステム上限を超える時にエラー123となるようだ。 (UNIX系は255バイト上限が多いため。NTFSはUNICODEで255文字まで作れる)"
「Samba 4.10」リリース、PythonバインディングでPython 3をフルサポート | OSDN Magazine
uchanさんはTwitterを使っています 「ls -lで表示される末尾の+は拡張属性というもので,getfacl &lt;file&gt;コマンドでチェックできるようだ。」 / Twitter
uchanさんはTwitterを使っています 「smb.confの[global]セクションに nt acl support = no を加えたら解決した。 どうやら,Windows側でファイルを保存するとACLが付与されて,それがLinux側では拡張ACLという形でファイルに付与され,グループの実行権として見えてたみたい。」 / Twitter
uchanさんはTwitterを使っています 「さらに検証したら nt acl support = no だけだと不十分で, map archive = no をさらに付ける必要がありそう。」 / Twitter
マイクロソフトが「SMB over QUIC」ファイル共有プロトコル実装中。VPNなしでもインターネット上で安全にファイルサーバへのアクセスを実現へ - Publickey

AirPrint

IPP

Internet Printing Protocol - Wikipedia
Internet Printing Protocol - Wikipedia, the free encyclopedia
IPP ‐ 通信用語の基礎知識
IPP 1.1: Model and Semantics Main
williamkapke/ipp: Internet Printing Protocol (IPP) for nodejs
RFC 8010 - Internet Printing Protocol/1.1: Encoding and Transport
RFC 8011 - Internet Printing Protocol/1.1: Model and Semantics
FadisさんはTwitterを使っています 「PAPPL 1.0のRCが出たらしい。PAPPLは従来CUPSなどで使われていたgutenprint等のプリンタドライバをバックエンドとして、IPP Everywhereを喋るデーモン。最初からIPP Everywhereを喋るナウいプリンタを期待するナウいアプリケーションが太古のプリンタで印刷出来るようにする。 https://t.co/BH6ztn7FMR」 / Twitter
PAPPL 1.0 RC1 Released With A Goal To Replace CUPS Printer Drivers - Phoronix

CUPS

CUPS.org
apple/cups: Official CUPS Sources
Common Unix Printing System - Wikipedia
CUPS - Wikipedia, the free encyclopedia
Line Printer Daemon protocol - Wikipedia, the free encyclopedia
Job Definition Format - Wikipedia, the free encyclopedia
2017年1月6日号 『ドライバレス』でのプリンタ対応・UWN#492・493:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Ubuntu 17.04 その8 - ドライバーがなくてもプリンターから印刷可能に・IPP Everywhereプリンターをサポートするためテストの呼びかけ - kledgeb
3Dプリンタに対応した「CUPS 2.1」リリース | OSDN Magazine
印刷システムCUPSが15周年、最新版となる「CUPS 2.0」をリリース | OSDN Magazine
Apple傘下で開発が進められているUNIX向けプリントシステム「CUPS」、1年ぶりの新バージョン「1.6」がリリースされる | OSDN Magazine
Mantaroh@media=printさんのツイート: "CUPS ダイジェストから見る限り、1万の仮想プリンタを用意したテストを走らせてるってことね。仮想デバイスが作れる環境だとやりやすそう。"
「CUPS 2.3」リリース、新たなライセンスで提供 | OSDN Magazine
FadisさんはTwitterを使っています 「*NIXでお馴染みのオープンソース印刷システムCUPSの開発が死んでいるという話。2007年以降CUPSはAppleの下で活発に開発されてきたが、今年に入って行われたコミットは1個だけ。CUPSの主要な開発者が今年の頭にAppleを退職している事と関係しているのではないか、とされている https://t.co/Lc4ceKgQLK」 / Twitter
CUPS Printing System Open-Source Development Has Seemingly Dried Up - Phoronix
Appleによるプリンタードライバーの開発がひそかに幕を閉じていたと判明 - GIGAZINE

AirPrint について - Apple サポート
AirPrint - Wikipedia
AirPrint - Wikipedia, the free encyclopedia
BonjourPrinting
Adobe Serial and Parallel Communications Protocols Specification
外出先でAirPrintに挑戦: あれやこれや備忘録

DNS

DNS-over-TLS

Yoshinobu Matsuzakiさんのツイート: "次期バージョンのAndroidでは標準でDNS over TLSがサポートされる模様。海外事業者のネームサーバを使うのも簡単。DNSを使った #ブロッキング は更に難しくなるよ https://t.co/YqSJjurcy3"
Google Online Security Blog: DNS over TLS support in Android P Developer Preview
Google Developers Japan: Android P Developer Preview が DNS over TLS をサポート
Kazuho Okuさんのツイート: "セキュリティの観点からはローカルで署名検証をやるべきだけど、プライバシーの観点からはDoHあるいはDNS over TLSで一般的なスタブリゾルバにつなぐべきというのが、現在存在するジレンマです… "
まきひろさんのツイート: "DNSのセキュリティはローカルにDNSSEC有効なフルリゾルバを置くのが確実だよ"
Rockridgeさんのツイート: "Android 9 PieではプライベートDNSモードがサポートされており、プロバイダを設定するとDNS over TLSが利用できる。 / “Enable Private DNS with 1.1.1.1 on Android…” https://t.co/2iUFRUsNHp"
Google Online Security Blog: Google Public DNS now supports DNS-over-TLS
Kazuho Okuさんのツイート: "DHCPが平文のプロトコルなので、DoHやDoTの設定配るのはセキュアになりようがないよね、というのが標準化における懸念だと理解してる #doh_study"

DNS-over-HTTPS

Google Public DNS
DNS-over-HTTPS  |  Public DNS  |  Google Developers
Google Public DNS の様々な活用方法 - Qiita
Google Public DNS over HTTPS を試す | IIJ Engineers Blog
DNS Queries over HTTPS の標準化 - ASnoKaze blog
DNS over HTTPSの標準化開始:Geekなぺーじ
Rockridgeさんのツイート: "Mozillaの開発者がNightlyチャンネルの半数のユーザーを対象に、期間限定で、新機能であるHTTPSを通じたDNSクエリ(DoH)のテストを行おうとしたところ、オプトイン制にすべきとする反対意見が続出した。 / “Goo…” https://t.co/hGahs0RhLy"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組み自体はFx60で実装済み。Firefox Nightly 61におけるテストで問題になったのは、常にCloudFlareのパブリックDNSへとDNSクエリが送信されてしまう点だ。 https://t.co/pu72EWz8a8"
Firefox, DNS over HTTPS and a controversial Shield Study - gHacks Tech News
Kazuho Okuさんのツイート: "既に www . google . com:443 に接続してから、GET /resolve?name=fqdn&type=A Host: dns . google .com とかリクエストして名前解決できるようになってるので、防ぎようがないです… https://t.co/v4tkVgyjj5"
Kazuho Okuさんのツイート: "なんと。request-uriに絶対URIを指定する場合とHostヘッダを使う場合とで挙動が異なるのは Google さんのリバースプロキシのバグっぽい雰囲気ですね… "
bosturboさんのツイート: "(echo -e 'GET https://t.co/sO5tOOs2PT HTTP/1.1\nHost: https://t.co/qComyDKBcL\n'; sleep 0.5) | openssl s_client -connect https://t.co/1aMcXHKitu) だと確かに200 OKを返してくるな…… 『GET 』の後にパスから書くと404だけど。… https://t.co/RMGjVzX8wz"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組みを解説し、CloudFlareと提携したことで信頼できるDNSリゾルバを確保できたと説く。平文のDNSクエリの危険性を説明したマンガは、いつも通りわかりやすい。 / “A cart…” https://t.co/TRrsh0Iav0"
Rockridgeさんのツイート: "記事の末尾に、HTTPSを通じたDNSクエリ(DoH)の設定を有効化する方法が掲載されている。 / “Improving DNS Privacy in Firefox – Firefox Nightly News” https://t.co/s1gB4iIlGy"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)に関連する、Firefoxの各種設定について、規定値や役割などが紹介されている。また、DoHはFirefox 62でデフォルト有効化される計画だという。 / “Inside Firefox…” https://t.co/eRXDiT9ZRI"
DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog
Kazuho Okuさんのツイート: "Public DNSにDoHで接続すると平均遅延は僅か(6ms)悪化するが、パケロスや品質の低いDNSの悪影響がなくなり体感が向上したという検証結果 / “Firefox Nightly Secure DNS Experimen…” https://t.co/osmlqtTOaf"
Rockridgeさんのツイート: "MozillaがFirefox Nightly 63のユーザー2万5000人を対象にDNS over HTTPS(DoH)のテストを実施(CloudflareのクラウドDNSを利用)。6ミリ秒程度のクエリ遅延が起きる(一部環境では… https://t.co/Y0W9xstTgT"
Rockridgeさんのツイート: "Fx62:DNS over HTTPS(DoH)のdraft-12仕様をサポート。 / “1466860 - TRR: update to latest DOH draft version” https://t.co/JyzIPfrLEG"
Rockridgeさんのツイート: "Fx63:オプションの〔一般〕の「ネットワークプロキシ」欄で、接続設定の詳細項目にDNS over HTTPSの接続設定が追加された。 / “1482271 - DoH preferences” https://t.co/v2WMDQx2UX"
Rockridgeさんのツイート: "DNS over HTTPSのデフォルトプロバイダをブラウザが指定すると、プロバイダの寡占を招き、中立性や政府の介入といった点で将来的にユーザーに不利益になるのでは、との意見。 / “On Firefox moving DNS …” https://t.co/DVrrPRJuRv"
https://www.rfc-editor.org/rfc/rfc8484.txt
DNS-over-HTTPS Policy Requirements for Resolvers | Mozilla Security Blog

EDNS0

インターネット用語1分解説~EDNS0とは~ - JPNIC
「EDNS0」とは何ですか?:DNS Tips - @IT
008-「512の壁」を越える
EDNS0 ‐ 通信用語の基礎知識
ことなかれblog 備忘録 « EDNS0
512バイトを超える DNSパケット
RFC 2671 - Extension Mechanisms for DNS (EDNS0)
digコマンドでEDNS0の動作を確認する。 - labunix's blog

DNSSEC

rick.eng.br/dnssecstat/
DNSSEC はなぜダメなのか
KSKロールオーバーについて - JPNIC
「ランチのおともにDNS」より~変化するDNSとサーバー証明書の関係【Internet Week 2017】 - INTERNET Watch
インターネット用語1分解説~EDNS0とは~ - JPNIC
008-「512の壁」を越える
OARC's DNS Reply Size Test Server | DNS-OARC
ニュース速報:読売新聞(YOMIURI ONLINE)
DNSインフラを狙う攻撃増加、ICANNがDNSSECの導入を呼び掛け - ITmedia エンタープライズ
SODA Noriyukiさんのツイート: "DNS関係で今現在の最大の問題はリフレクション攻撃の踏み台として使われているってとこだと思うんですが、DNSSECは踏み台攻撃の増幅効果が大きくてむしろその問題については対策ではなく穴を大きくする方なんですよねえ。あと毒入れ系の対策としての効果も限定的( https://t.co/JPsDVfGKZh の8.)だし… https://t.co/IkDx25Jd7B"

DNSCurve

DNSCurve - Wikipedia
インターノット崩壊論者の独り言 - DNSSECイラネ - DNSCurve を適用しました , DNSCurve と CurveCP で高速安全というDJBの話
NetAgent Official Blog : DNSCurveの紹介
Introduction to DNSCurve
mdempsky/dnscurve: Tools for DNS curve implementation
DNSCurve vs DNSSEC - Togetterまとめ

Dnsmasq

Dnsmasq - Wikipedia
dnsmasq - Wikipedia
Dnsmasq - network services for small networks.
Man page of DNSMASQ
dnsmasqで始めるプライベートDNSサーバ - GeekFactory
Dnsmasqのproxydhcp機能を使ってiPXE chainloading - Qiita

NSD

UnboundとNSDの紹介 BIND9との比較編
NSDでおてがるにDNSサーバをたちあげる - Qiita
NSD 4 – 日本Unboundユーザー会
NLnet Labs - NSD - About
Unbound + NSD で DNS
NSD (ソフトウェア) - Wikipedia
DNSサーバ”NSD”の紹介 | ICTSC tech-blog
NSDとUnboundで社内用DNSサーバを立てた話 | エンジニア ブログ
bind2other
第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

INTERNET Watch

ネット史上初めての「KSKロールオーバー」が始まる、名前解決できなくなる前にDNSサーバーの設定確認を! 今年9月は特に注意 - INTERNET Watch
萌えドメインなのに……「anime.moe」の登録をICANNが禁じている理由とは -INTERNET Watch Watch
「KSKロールオーバー」に伴い講ずべき措置、総務省が国内関係者に告知、9月19日以降にウェブアクセスやメール送信ができなくなる場合も -INTERNET Watch
「KSKロールオーバー」で一部DNS応答サイズが増大、4人に1人のインターネット接続に影響? JPNICが確認を呼び掛け -INTERNET Watch
IANA — Domain Name Services
【IETFトピックス2016-17】 インターネットを支え続ける老舗プロトコル、「DNS」30年超の歴史を振り返る - INTERNET Watch
【IETFトピックス2016-17】 熱い議論の続く、DNSプロトコル拡張と今後 - INTERNET Watch
KSKロールオーバーのテストプラットフォーム、ICANNが提供 -INTERNET Watch
大きく変化していくDNSの規格 ほか~「DNS DAY」の話題から - INTERNET Watch
「KSKロールオーバー」で問題を起こしそうな箇所はここだ! 9月19日だけでなく10月11日にも注意 - INTERNET Watch
10月11日の「KSKロールオーバー」鍵更新は延期、未対応のISPなど「相当な割合」あることが判明 -INTERNET Watch
「KSKロールオーバーはまだ終わっていない」~今年の「DNS DAY」の話題から【Internet Week 2017】 - INTERNET Watch
KSKロールオーバーの鍵更新がさらに延期へ -INTERNET Watch
KSKロールオーバー、10月11日に実施か - INTERNET Watch

Geekなぺーじ

TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ
ざっくり詳解 - NAT64とDNS64:Geekなぺーじ
なぜIPv6とIPv4の名前解決は別々に行なわれるのか?:Geekなぺーじ
KSKロールオーバーが延期:Geekなぺーじ
ユーザの近くにある偽DNSサーバの話:Geekなぺーじ
[書評]「DNSがよくわかる教科書」は、すごくイイ!:Geekなぺーじ
RFC 8501 : Reverse DNS in IPv6 for Internet Service Providers:Geekなぺーじ

ASnoKaze blog

DNS ANAMEレコードの提案仕様 - ASnoKaze blog
.internal ドメインを予約する提案仕様 - ASnoKaze blog
HTTPSで接続するための追加情報を格納するHTTPSSVCレコード - ASnoKaze blog
HTTPSの接続情報を通知する "HTTPS DNSレコード" の提案仕様 - ASnoKaze blog
DNSのエラー理由を通知するExtended DNS Errorsの仕様 - ASnoKaze blog

OSDN

Google Chrome 26リリース、スペルチェック機能の強化やMac/Linux版での非同期DNSリゾルバ実装などが特徴 | OSDN Magazine

スラド

DNSのCAAリソース・レコード、使っていますか? | スラド IT

GitHub

blechschmidt/massdns: A high-performance DNS stub resolver for bulk lookups in C
GitHubがどのようにDNSインフラストラクチャを改善したか
DNSCrypt - Official Project Home Page
jedisct1/dnscrypt-proxy: A tool for securing communications between a client and a DNS resolver

Wikipedia

TSIG - Wikipedia

Twitter

Kazuho Okuさんのツイート: "オープンリゾルバが絶滅し、リゾルバはTCPでのクエリを受け付けるべきという規定が実現可能になったという背景があるのかな / “TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ” https://t.co/vuJYimFp5T"
Kazuho Okuさんのツイート: "DNSキャッシュサーバにTCPでの応答が求められるになっただけであって、権威サーバはあいかわらずUDP-onlyでいいのよね?"
Kazuho Okuさんのツイート: "DNS権威サーバへの攻撃対策は、初見のアドレスからクエリを大量に受信し始めたら無視すれば良い #ietf97j"
Yusuke Endohさんのツイート: "https://t.co/TVeOG3Tk3j に書いてあるとおり、https://t.co/B5msekD4Um は大量の IP が割り当たっててパケットサイズでかくなるので、DNS over UDP で失敗したあと、DNS over TCP が必要になる。(続く)"
[debian-users:57972] Re: yomiuri online に接続できなくなった
Yusuke Endohさんのツイート: "なお、ツイッターが全部 https://t.co/B5msekD4Um にしてくれちゃってるけど、www付きで"www.yomiuri.co.jp”と書いたつもりでした。"
浸透いうな/伝播いうな/反映いうなさんのツイート: "@n_soda @hoshi_takanori @ReijiAbe そこがポイントです。誰も問い合わせしないキャッシュサーバは永遠に更新されることはありません。"
SODA Noriyukiさんのツイート: "「浸透の言い換えを考えているようではダメ」って、こういう意味なのね。設定変更の遅延がユーザーに見えることはほぼ防ぐことができるので言い換え自体必要ないと(もし設定ミスで遅延が生じたら、「浸透」で誤魔化さずにちゃんと謝ろうと)。 https://t.co/AtolVVuFhI"
浸透いうな/伝播いうな/反映いうなさんのツイート: "@nhhi122 技術者は素人に向かって浸透といわなきゃいけない状況を回避すればいいのですよ。それが技術者というものでしょう。そして回避ができないときはちゃんと理由を説明すべきです。"
(び)さんのツイート: "DNSでは、recursive queryとiterative queryそれぞれ定義があるので。… "
Kazuho Okuさんのツイート: "djbdns 歴が長すぎて知らないんだけど、最近だと BIND でもキャッシュのエクスパイヤを絶対時間で設定できるようになってたりするのかな。あれは浸透とは程遠い動作だと思う"
Kazuho Okuさんのツイート: "HTTPのキャッシュについて「浸透を待ってください」という人は聞いたことない。皆「リロードしてください」と言う。つまりは、DNSの場合、事前の対処法を知らないもしくは事後の対処法がないから「浸透を待ってください」と言うのだろう"
Kazuho Okuさんのツイート: "F5押しても権威DNSサーバまでクエリが飛ばないの、僕はうんこだと思ってます"
Kazuho Okuさんのツイート: "DoHではドウかなーって思ってドラフト確認してみたら、HTTPレイヤのキャッシュについてはバイパスする(がDNSレイヤにキャッシュがある場合は無理)って話になってた。まあそうだよね。DoHリゾルバがDNSレイヤでのキャッシュもってなければF5でリロードかかるし良い… "
Kazuho Okuさんのツイート: "別の言い方をすると「浸透」という単語の問題ではなく、「浸透を待たなければならない」という認知を強化する可能性の問題なのだ"
Kazuho Okuさんのツイート: "「浸透」という表現が「変更が伝わるまで待たなければならない」ことを含意するからダメなんですよ。正しく設定していれば待つ必要ないのに / “DNSで浸透って言っちゃだめなの? - @tmtms のメモ” https://t.co/bMxaRBcCzf"
DNSで浸透って言っちゃだめなの? - @tmtms のメモ
Shigeyaさんのツイート: "キャッシュされたRRがキャッシュから無くなるタイミングは、権威サーバで指定されたTTL(Time-to-live)の秒数で決まります。一度キャッシュされたRRは、そのTTLすぎるまでは「そのキャッシュでは」そのまま用いられます。だからコレを短くすれば、反映されるまでの時間は調整できます… https://t.co/c8JjRRsSXU"
Kazuho Okuさんのツイート: "DNSの上に認証レイヤを構築完了したので満足なう。これでDNSに悩まされないですむわー"
Kazuho Okuさんのツイート: "Amazon Route 53 のエスケープシーケンスはバックスラッシュ+8進数、Azure DNS はバックスラッシュ+10進数です。さて問題です。RFC 1035 に合致しているのはどちらでしょう"
Kazuho Okuさんのツイート: "DNS クイズを出したが回答がない。シーンとry"
Kazuho Okuさんのツイート: "「君のDNSサーバ、なんでTXTレコードを127バイトごとにチャンクするの? 255バイトでいいはずなのに」僕「djbdnsだから!!!!」"
Kazuho Okuさんのツイート: "細かなとこだけど、TXTレコードには文字列ではなく任意のバイナリシーケンスを登録可能です / “アプリケーションエンジニアが知るべきDNSの基本” https://t.co/G28FjQ9B4f"
Basics_of_DNS_that_application_engineers_should_know - Speaker Deck
Kazuho Okuさんのツイート: "DNSの「再帰」と「反復」の違いが話題になってるけど、そもそも何が違うの? 原典だと「recursive」にあたる単語に別々の訳語をあてて混乱してるとかじゃないよね???"
Kazuho Okuさんのツイート: "複数のリカーサが設定されている場合に、それぞれに順次問い合わせることを反復と言ってるのかな"
Kazuho Okuさんのツイート: "自己解決。リカーサが順次権威サーバに問い合わせていくことを「反復的(iterative)」と呼んでいるのか… "
Kazuho Okuさんのツイート: "「反復」問い合わせをした結果を返すことを「再帰」と呼んでいるのであって対立する操作ではない、と説明すべきなのかな"
ゆきさんのツイート: "Domain Contact Information (WHOIS) over DNS https://t.co/p4h4RXeTLq WHOIS over DNS #yuki_id"
ゆきさんのツイート: "「DNS Resolver Information Self-publication」 https://t.co/bFuxni3R35 Googleの人とICANN勢の共著。DNSどのようなトランスポート・機能に対応しているか確認できるようになる。こういうの必要よね #yuki_id"

c-ares: library for asynchronous name resolves
c-ares-1.12.0
tornado.platform.caresresolver - C-Aresを使った非同期DNSリゾルバ - Tornado Web Server — Tornado 3.2.1(日本語)
実用 BIND 9で作るDNSサーバ(5):スレーブ・サーバのゾーン転送とセキュリティ (3/3) - @IT
JPNICが管理する逆引きゾーンのネームサーバ一覧 - JPNIC
無料で安全なDNSサービスの一覧 | ハルパス
DNSで負荷分散を可能にするLBレコードの提案 - ASnoKaze blog
技術書典4で販売された「DNSをはじめよう」をフォローする感じの記事にしたい - Qiita
DNSトンネリングの手法 / A technique of DNS tunneling (#ssmjp) // Speaker Deck
Google Online Security Blog: Google Public DNS turns 8.8.8.8 years old
Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗 - CNET Japan
GoogleがクラウドDNS転送を発表
Google Chromeは「DNSルートサーバー」に大きな負荷をかけている、その理由とは? - GIGAZINE
CloudflareやAppleなどが協力して新プロトコル「Oblivious DNS over HTTPS(ODoH)」を開発 - GIGAZINE

Multicast DNS

Avahi

Avahi - Wikipedia
Avahi (software) - Wikipedia
avahi-daemonを設定してDNSサーバ運用をやめた - Qiita
Raspberry PiでAvahi を使ってホスト名でアクセスする | 株式会社インデペンデンスシステムズ横浜
第216回 Avahiとローカルエリアネットワーク:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Avahi - ArchWiki
Linuxでのavahi-daemonの停止 - weblog of key_amb
[Ubuntu] Avahiのコマンド一覧 - Life with IT
avahi - mDNS/DNS-SD
どーでもいい日々: mDNS、Avahi、Bonjour
avahi-daemonのシステムログの内容について | アットマークテクノ ユーザーズサイト

Source Browser
jevinskie/mDNSResponder
RFC 6760 - Requirements for a Protocol to Replace the AppleTalk Name Binding Protocol (NBP)
RFC 6761 - Special-Use Domain Names
RFC 6762 - Multicast DNS
RFC 6763 - DNS-Based Service Discovery
Multicast DNS
Multicast DNS - Wikipedia, the free encyclopedia
IPマルチキャスト - Wikipedia
Zeroconf - Wikipedia
Zero-configuration networking - Wikipedia
TCPやUDPにおけるポート番号の一覧 - Wikipedia
DNS Service Discovery (DNS-SD)
TCP/IP環境に革新もたらすZeroConfネットワーク「Bonjour」~概要と仕組等~
形式 - マニュアルページセクション 1M: システム管理コマンド
dns-sd(1) Mac OS X Manual Page
Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ
DNS-SD(Bonjour)をUniversal Windows Platformから利用してサービスを探す - ぷろじぇくと、みすじら。 - Misuzilla.org
Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ (1)
OS X 10.11のDNS64らしき動きをするDNSサーバを作る - yunazuno.log

LLMNR

RFC 4795 - Link-local Multicast Name Resolution (LLMNR)
Link-Local Multicast Name Resolution - Wikipedia
Link-Local Multicast Name Resolution: The Cable Guy, November 2006
Windows管理者のためのIPv6入門:第6回 LLMNRを使ったローカル・セグメント上での名前解決 - @IT
Vistaネットワーク大解剖 - 名前解決(2)--IPv6でも使えるLLMNRによる解決手法を追加:ITpro
ASCII.jp:Windowsネットワークの名前と番号 (5/5)|完全解剖「名前とアドレス」
Web系雑記: Windowsにおける名前解決の挙動(DNS・LLMNR・NBT)
KASAGO LLMNR 図研エルミック
日々記: コンピュータ名での名前解決ができない
プロトコルについて

ICMP

本の虫: Pingプログラムの話
packet socketsを使用してパケットを送信する - ゾンビ狩りクラブ
libnetを使用してパケットを送信する - ゾンビ狩りクラブ
おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ - GIGAZINE

ARP

internal22-265-アドレスの解決 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
internal22-264-データ構造 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
アドレス解決プロトコル - Linuxカーネルメモ
ARPスプーフィングしてみた - Qiita
FadisさんはTwitterを使っています 「ARPのヘッダのHardware Type、IANAのドキュメントには0x0001はEthernet(10Mb)って書かれてるけど、Fast EthernetだろうとGbEだろうと、そもそもEthernetですらさない802.11でも0x0001って言ってて、Ethernetと同じ長さのMACアドレスがあったらEthernetでいいや感が漂ってる https://t.co/XIxzAJPPzF」 / Twitter
Address Resolution Protocol (ARP) Parameters
FadisさんはTwitterを使っています 「ノードの識別にEthernetのMACアドレスと異なる形式を用いるネットワークではARPのHardware TypeはEthernetとは別の値になっていて、TCP/IP over アマチュア無線の為の規格AX.25ではノードをコールサインで識別する為Hardware Type = 0x0003が割り当てられている、と」 / Twitter

SNMP

SNMP MIB

MIBを確認するために便利なツールとか – ネットワークエンジニアが日々の出来事を語る
Windows用MIBブラウザ
SNMP Informant Standard

Simple Network Management Protocol - Wikipedia
Simple Network Management Protocol - Wikipedia
管理情報ベース - Wikipedia
Management information base - Wikipedia
net-snmp download | SourceForge.net
Net-SNMP - Wikipedia
100% recycled matsuuさんのツイート: "わかるー。接続数が多いサーバにsnmpd経由で取得しようとするとCPU負荷が悲惨なことになる。ちなみにnetstatも同様の事象が発生するのでss使おうな。 / “本当に恐ろしいsnmpd - Qiita” https://t.co/tvfn3GLPWl"
本当に恐ろしいsnmpd - Qiita

HTTP

Status

Twitter

Masanori OginoさんはTwitterを使っています: "HTTP status code 451、江添さんが「政治的に」と訳したので政治(プログラミング)方面でネタになってるけれど、本来はfor legal reasonsなので法的な要求
Kazuho Okuさんのツイート: "ついに単著のI-Dを出してしまった / “draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints” https://t.co/rbnpHGcVkf"
draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints
Kazuho Okuさんのツイート: "HTTPステータスコード103のドラフトがラストコールにかかりましたなう / “Working Group Last Call: draft-ietf-httpbis-early-hints-02 from Mark Notti…” https://t.co/6lEa62hMDs"
https://tools.ietf.org/id/draft-ietf-httpbis-early-hints-02.txt
Fadisさんのツイート: "これ、HTCPCPがBREWするときに指定するプロトコルバージョンについて何も規定しなかった(従って元となる規格のHTTP/1.1のままになった)ことによる規格レベルの不具合だ…"
Hypertext Transfer Protocol (HTTP) Status Code Registry
https://www.rfc-editor.org/rfc/rfc8297.txt
渋川よしきさんのツイート: "HTTPステータスコード。POSTに対しては201 Createdでいいとして、PUTで更新するときに20X Updatedみたいなのがあったら対称的で良いのだけど、ないのだよね。200 OKか。"
Yosuke FURUKAWAさんのツイート: "むしろ PUT が 201 の事を書いてるドキュメントもあるので一概にどっちが正しいか微妙ですね。 https://t.co/6bFPSQdcPD… "
201 Created - HTTP | MDN
渋川よしきさんのツイート: "mjk… "
Kazuho Okuさんのツイート: "POSTは既存のリソースに対する操作だから201になることは基本ないのでは?… "
渋川よしきさんのツイート: "新しいリソース作成で、新しいURLが予想できる場合はPUT、そうじゃない場合はPOSTで作成・・・・みたいな説明をよく見かける気がします。オライリーのRESTful本とかも。… "
Kazuho Okuさんのツイート: "ああごめんなさい location で生成されたリソースの uri を返しつつ 201 というのは基本のパターンですね… "
Yuki Yugui Sonodaさんのツイート: "HTTP statusのreason phraseはサーバーが好きに書いて良いので、細かい情報を載せたいなら変なstatus codeを勝手に作るんじゃなくてそっちを使え、と言い続けてきたけど、割といろんなサーバーが勝手拡張コードを使ってるのね。Teapot以外は認めたくない。"
渋川よしきさんのツイート: "「存在している」という「情報」をログインしていないユーザーに見せない、という意味では404が正しいこともありえますね。… "
渋川よしきさんのツイート: "Real World HTTPでは403の代わりに404を返す可能性については一言だけ触れていたけど、あんまりきちんと説明してなかったので、今度改定のチャンスがあったとき用のネタ帳に追記しておこう。… "
$κ@夏休み/人畜無害🍼さんのツイート: "githubのプライベートリポにログインしてない状態で行くと、404っていうけど、この場合403では?って思った。… "
ĉ̨̨̝͉̝̭̩̣͍͈̗͂ͨ̊̎͋͗̅ͯ̒͑̎̑ͧ́̎̃ͬ̅̀̕r̶̸̴̢̬ͪ̆̾͊ͩͦͩ̈́ͧͨͭさんのツイート: "Quick guide to HTTP Status codes: 1XX: Wait a sec 2XX: There ya go 3XX: Fuck off 4XX: Fuck you 5XX: Fuck"
ゆきさんのツイート: "Reporting Progress of Long-Running Operations in HTTP https://t.co/9zu13MU3VE 重たいHTTPリクエストの処理経過を知らせる「102 Processing」ステータスコードの提案 #yuki_id"
draft-wright-http-progress-01 - Reporting Progress of Long-Running Operations in HTTP

ASCII.jp:HTTPステータスコードに追加された「308」とは?
本の虫: HTTPステータスコード451(政治的な検閲)が正式に承認される
本の虫: 検閲のためのHTTPステータスコードの必要性
Apache mod_http2 で 103 EarlyHints (RFC 8297) を試す - ASnoKaze blog
103 EarlyHints (RFC 8297) を送信するNginxモジュール書いた - ASnoKaze blog
Kazuho's Weblog: 103 Early Hints に対応した Starlet 0.31 をリリースしました
HTTP の新しいステータスコード 103 Early Hints | blog.jxck.io
mnot’s blog: How to Think About HTTP Status Codes
HTTPで「418 I’m a tea pot」を実装してはいけない - Qiita
HTTP 418ステータスコードが予約される - ASnoKaze blog
Retry-Afterのスコープを指定するRetry-Scopeヘッダ - ASnoKaze blog
サポートしてないwell-known URIs に対するステータスコードを確認する提案仕様 - ASnoKaze blog

Cookie

ASnoKaze blog

非セキュアなオリジンから'secure'クッキーの変更を廃止する提案 - ASnoKaze blog
Cookieの属性を制限する Cookie Prefixesという仕様 - ASnoKaze blog
安全でない通信路でセットされたCookieの有効期限を短くする仕様 - ASnoKaze blog
Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze’s diary
CookieのNoHttp属性の提案仕様 - ASnoKaze blog
Chromeにおいて非セキュアなHTTPで送信されたCookieの有効期限を短くする議論 - ASnoKaze blog
Cookieに変わる Sec-HTTP-State ヘッダの提案 - ASnoKaze blog
Cookie関連の最新動向 (2016年) - Qiita
Cookie の SameSite=Lax をデフォルトにする提案仕様 - ASnoKaze blog
CookieのPriority属性の仕様 - ASnoKaze blog
Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog
CookieのSameSite属性にFirstPartyLaxを追加する提案仕様 - ASnoKaze blog

Twitter

@rockridge07

Rockridgeさんのツイート: "Fx50:Cookieのプレフィックスとして"__Secure-"と"__Host-"をサポート。Chrome 49/Opera 36でサポート済み。参照:https://t.co/1Ke9Jg0Qj3 / “Intent to…” https://t.co/ksuziLZote"
Rockridgeさんのツイート: "Fx61:CookieのSameSite属性をサポート予定。参照:https://t.co/7sekICHKR5 / “Intent to implement and ship: same-site cookies” https://t.co/VgsPyEj46i"
Rockridgeさんのツイート: "Fx60:CookieのSameSite属性がサポートされたことを受けて、network.cookie.same-site.enabledをfalseにすれば無効化できるようにした。 / “1452699 - Add pref …” https://t.co/CvQ96F7Dnb"
Rockridgeさんのツイート: "Firefox 60でサポートされるSame-Site Cookiesについて説明した記事。 / “Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Bl…” https://t.co/OQjtQRVKPD"
Rockridgeさんのツイート: "FirefoxではサードパーティCookieはユーザーが明示的に許可しない限り動作しないようにしていく方針だが、具体的にはSafariが先行するStorage Access APIを実装する形をとる。ただし、実装内容は若干異なる模… https://t.co/UlcX3NGRYM"
Rockridgeさんのツイート: "Fx65:Cookieを保存する期間の設定がチェックボックス形式になった。 / “1501989 - Turn the "Keep Until" cookies menulist into a checkbox” https://t.co/XIxVzZ3Rpl"
Rockridgeさんのツイート: "Fx65:未訪問のWebサイトのCookieをブロックする設定にしているとき、例外サイトを追加しても当該サイトのブロックが解除されない問題を修正。 / “1502045 - We fail to honour cookie pe…” https://t.co/meWqSxiDa9"
Rockridgeさんのツイート: "Fx65:urlclassifier.trackingAnnotationSkipURLsに設定されたドメインおよびURLは、トラッカーのサードパーティCookieのブロックを免除される。 / “1506947 - Add a …” https://t.co/d1Wt5cCJpB"

@shibu_jp

渋川よしきさんのツイート: "HTTPのクッキーの日付のパース、いろいろ悲しみが溢れている感。 https://t.co/AMCxUI5Qeh"
RFC 6265 - HTTP State Management Mechanism
渋川よしきさんのツイート: "クッキーの日付はGMT!って書いてあるサイトが多いのだけど、RFC見ると別にGMTとは指定されてなくて、in UTCって書かれている。GMTの部分は無視されてUTCとして解釈されている?"
渋川よしきさんのツイート: "サードパーティクッキー、いまいちわからんケースがいくつかある。AというサイトとBというサイトがあって、AにアクセスしたときにBのドメインが設定されたクッキーが書き込まれて、Bにアクセスしたときに、Aにいたことが分かる。これは分かる。"
渋川よしきさんのツイート: "こっちの代表的な例という絵のメカニズムがわからん。 https://t.co/5JcZfcxnnw"
渋川よしきさんのツイート: "リンク先サーバのクッキーが最初のサイトで書き込まれたとして、次のサイトにアクセスしたときは、リンク先のドメインじゃないからクッキーは送信されないよね?"
渋川よしきさんのツイート: "セッションストレージ、クッキーを使う方法が増えつつあるよ、という話はReal World HTTPに書いたけど、ブラウザでユーザー認証することによってクッキー同期を取るという仕組みが一般的になってきたのと関連はあるのかな?複数のPCとスマホ間で連携できる現代だと、かつてのクッキーの欠点はない。"
渋川よしきさんのツイート: "cookie storageを使って、クッキーにセッション情報を入れる方法。署名で改変は検知できるとして、5-tupleだか、http/3のConnection IDだかも入れると、セッション偽装対策になるのではないか?"

@jovi0608

Shigeki Ohtsuさんのツイート: "BlackHatUSAで発表されたHEIST攻撃の記事。TCP Windowからレスポンスサイズを特定してる。論文やスライドはまだかな。 / “New attack steals SSNs, e-mail addresses, …” https://t.co/KhhAlPmZCx"
Shigeki Ohtsuさんのツイート: "Third-pary Cookieを禁止してればHEIST対策になるのか。"
Shigeki Ohtsuさんのツイート: "HEIST攻撃をまとめると。BREACHと合わせ技でThird-party cookieでinitcwdぎりまでパディングして、残り1バイト分をOracleで特定する。ということで合ってるのかな。もうdeflate的な圧縮はボディ部でもあかんわな。"
Shigeki OhtsuさんはTwitterを使っています: 「Chromeが2年かけて3rd partyクッキーを廃止しGが提唱するPrivacy Sandboxという技術セットを進めていくと宣言。今年末までに新しいコンバージョン測定のトライアルと反フィンガープリント対策を開始すると。 / “Chromium Blog: Building a more private web: A path towar…” https://t.co/5KUNRSZbIZ」 / Twitter
Chromium Blog: Building a more private web: A path towards making third party cookies obsolete
Chromeは2年以内にサードパーティーCookieのサポートを廃止する方針 - GIGAZINE

Yosuke FURUKAWAさんのツイート: "Chromeでは今後、CookieでSameSiteがついていないものは、SmaeSite=Laxとして運用する、つまりCross siteではtop level navigationの時のみcookieがつき、mug, ajax通信ではcookieがつかない、これはまた広告、解析系のアプリ大変だな、、、 / “SameSite cookies explained…” https://t.co/kxFxPWHksk"
SameSite cookies explained  |  web.dev
Yosuke FURUKAWAさんのツイート: "s/mug/img"
ゆきさんのツイート: "chrome://flagsから「Cookie deprecation messages」を有効にすると、CookieのSameSite attributeのデフォルト変更によって影響を受ける場合に警告でる… "

Google が使用している Cookie の種類 – ポリシーと規約 – Google
HTTP cookie - Wikipedia
HTTP cookie - Wikipedia
2種類のcookie~サードパーティとファーストパーティの違い | マーケティングを支援するDigital Cloud Platform
Session Cookie(セッションCookie)の使われ方とは? – IMnews
アクセス解析におけるクッキー(Cookie)の仕組みを解説【ちゃんと理解できてる?】|アクセス解析ツール「人工知能AIアナリスト」ブログ
【GA_utmクッキー完全把握】cookieの種類と仕組み | やる夫で学ぶGoogleAnalytics
» 反則スレスレ !? Super Cookie とは TECHSCORE BLOG
クッキー(Cookie)について
Cookie関連の最新動向 - Qiita
HTTPクッキーのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Facebook の「いいね」ボタンがあるサイトに行くと、トラッキングされているかに見える件 | @_Nat Zone
Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Blog
PHPでSame-site cookie - Qiita
SameSite - OWASP
Google Chrome 69ではCookieを「すべて削除」してもGoogleのCookieが残ってしまうことが判明 - GIGAZINE
super cookie - Google 検索
ChromeがCookieの透明性や安全性を向上させる方針を発表、ブラウザ・フィンガープリントの対策も - GIGAZINE
Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
Cookie規制でプライバシーの問題はどうなる? - IIJが個人情報保護法改正大綱を解説 (1) Cookieってなんだっけ? | マイナビニュース
Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita
牧歌的 Cookie の終焉 | blog.jxck.io
AppleのSafariがサードパーティーCookieを完全にブロック、一般的なブラウザでは初 - GIGAZINE
GoogleがサードパーティーCookie廃止に向けて開発者向けツールのテストを開始 - GIGAZINE
Chromeは「Cookieとサイトデータを削除」を有効にしてもGoogle系のサイトのデータは消さない - GIGAZINE
Cookieレシピ - SameSiteとそれを超えて - Rowan Merewood氏がweb.dev Liveにて
Safari 14では裏技を使って規制をくぐり抜けていたサードパーティーCookieが対策される - GIGAZINE

URL

uriparser

uriparser - RFC 3986 URI parsing library
uriparser 日本語情報トップページ - OSDN

国際化ドメイン

Mozilla

Network.IDN.whitelist.* - MozillaZine Knowledge Base
IDN (International Domain Name) を使用した偽装サイトへの対策 Firefox編 - seclan のほえほえルーム
Firefox で日本語ドメインの .com / .net が punycode で表示される理由
国際化ドメイン名の表示が有効なトップレベルドメイン
IDN-enabled TLDs — Mozilla
network.IDN.whitelist.
人間の目で見抜けないURL偽装がフィッシング詐欺に悪用される可能性、Firefoxでの対策はコレ - GIGAZINE
なかのんクエストさんのツイート: "これ、実装当時から分かってたけどどうしようもない話だなって関係者言ってたのに、なんで今頃話題に? / ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT https://t.co/Jc1kEqaOb1"
ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT
なかのんクエストさんのツイート: "そもそも、аррӏе.com みたいなのを通しちゃうようなTLDは常にPunycode表示にしようってことで話が決着してて、.comに関しては当初はホワイトリストに入ってなかったけど、登録のルールが改善したとかでホワイトリスト入りしたんじゃなかったっけか?"
なかのんクエストさんのツイート: "で、TLDレベルでは安全でも、スラッシュっぽい文字とサブドメインを利用するとドメイン偽装が簡単だってことで、スラッシュに見えかねない文字は全てブラックリストに入れておいて、それにひっかかったら強制的にPunycode表示にするってのは私が実装した。"
なかのんクエストさんのツイート: "ちなみに、私がMozillaで国際化ドメイン名周りのバグ修正やってた当時のNetworkモジュールのオーナーでレビューしてくれてたのが、初期から現在に至るまでGoogle Chromeの責任者やってるあの人だったりする。"
なかのんクエストさんのツイート: "とりあえず変なアイデア出てたんで、日本語だと無意味だし、ハイフンに似た文字だとどうしようもないとだけ書いておいた。 / https://t.co/PkF5AsjROC - IDN Phishing using whole-script confusables on… #もずでぶ"
Rockridgeさんのツイート: "Firefoxの国際ドメインネーム(IDN)表示アルゴリズムについてFAQ形式で解説したもの。 / “Gerv's IDN Display Algorithm FAQ - MozillaWiki” https://t.co/WNBO8LRsAP"
Gerv's IDN Display Algorithm FAQ - MozillaWiki
なかのんクエストさんのツイート: "Firefoxの場合、今では信頼出来ない所も混じってるかも知れないけど、network.IDN.use_whitelistをtrueにして、IDNサポート当初のポリシーを復活させる方が安全かなと思ったけど、このpref、もう効かないっぽいな……"
Gecko1.8相当製品において修正したバグ - WebStudio

Google

IDN in Google Chrome - The Chromium Projects
なかのんクエストさんのツイート: "Chromeのホモグラフ攻撃対策へのパッチ、頭痛い。指摘されたケースに対して限定的に対応しただけで、日本語の似た文字や記号の似た文字は無視、キリル文字でASCIIの小文字に似てる文字だけ対応。こういういい加減なの、嫌なんだよな…… https://t.co/jjXIIMf66I"

GoogleのようでGoogleではない謎のサイト「ɢoogle.com」が出現 - GIGAZINE
国際化ドメイン名(IDN)に関する資料 - JPNIC
IDN関連RFC翻訳
新宿.com
www.jdna.jp/survey/rfc/rfc3491j.html
StringPrep - ICU User Guide
JPRS DNS 関連技術情報
IDN Info by JPRS / 標準化状況
FAQ - International Domain Names (IDN)
https://tools.ietf.org/rfc/rfc5895.txt
国際化ドメイン名のプロトコル改定に関する技術動向 ~第74回IETF Meetingにおける話題から~ | 2009年 | ドメイン名関連会議報告 | ドメイン名関連情報 | JPRS
IDNA2008
大石哲之(Bitcoin,Blockchain)さんのツイート: "これはやばい。 binance偽サイト。 見分けがつかないです… "
楠 正憲さんのツイート: "あーあURLにASCII以外のUnicodeを認めたせいでこんなことに。当時からこうなると分かってたのに。しかもTLS証明書どこが発行したのか… "
soushi (・゚∠)ばななさんのツイート: "ありがとうございます。試すとpunycodeが表示されました。 尚、Vivaldiは無条件でpunycodeで表示でした(設定はなさそう?)。あとChromeは調べると独自に定義したPolicyを通ればunicode表示にするんですね…。… "
soushi (・゚∠)ばななさんのツイート: "ちなみにこちらのページに色々書いていました。 https://t.co/GVB16d7WQh… "
NOTWORK.JP-SA:050401-00 JPRSのIDN実装上の日本語文字集合類似字形の問題
Old Blog
libidn2-2.0.4
libunistring-0.9.9

BASE32

三十二進法 - Wikipedia
base32 ‐ 通信用語の基礎知識
18.12. base64 — RFC 3548: Base16, Base32, Base64 データの符号化 — Python 2.7.x ドキュメント
Man page of BASE32

protocol-relative URL

HTMLやCSSでのプロトコル表記(http:、https:)の省略について: 小粋空間
いい加減、&lt;script src=&quot;http://.. と書くのはやめましょう · DQNEO起業日記
protocol-relative URL

News

Googleはウェブを安全にするために「URLをなくすべき」と考えている - GIGAZINE
URLがなにかおかしい……「Google Chrome 69」に加えられたある小さな変更が話題に - やじうまの杜 - 窓の杜

blog

URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖い情報科学
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
WHATWG URLの実装がNodeに来たと聞いたのでURLについてメモしておく - 水底の血
hxxp URIスキームの仕様化 - ASnoKaze’s diary
https://tools.ietf.org/id/draft-salgado-hxxp-00.txt
URIに含まれるIPv6ゾーンID - RFC 6874:Geekなぺーじ
なぜChromeはURLを殺そうとするのか? (Chrome Dev Summit 2019) - ぼちぼち日記

blog.jxck.io

Node v7 で入った WHATWG URL 実装について | blog.jxck.io
Scroll To Text Fragment と :~:text | blog.jxck.io
Scroll to Text Fragment を用いたサイト内検索の実装 | blog.jxck.io

Qiita

リンクの`http:`や`https:`を省略して現在のプロトコルでリンク先にアクセスさせる - Qiita
mod_auth_openidc の脆弱性(CVE-2019-14857)について - Qiita

POSTD

私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | コンピュータサイエンス | POSTD

Wikipedia

Uniform Resource Identifier - Wikipedia
Uniform Resource Identifier - Wikipedia
Punycode - Wikipedia
Punycode - Wikipedia, the free encyclopedia
Internationalized Resource Identifier - Wikipedia
Internationalized resource identifier - Wikipedia, the free encyclopedia
国際化ドメイン名 - Wikipedia
Internationalized domain name - Wikipedia, the free encyclopedia
Uniform Resource Locator - Wikipedia
URL - Wikipedia

Twitter

Mozilla

Rockridgeさんのツイート: "Fx47:URLのバックスラッシュはスラッシュとして扱われる。 / “652186 – Implement URL Standard's backslash replacement ("\" is treated as "/" …” https://t.co/2LvuyK7pdk"
Rockridgeさんのツイート: "WebKit trunkに実装された新URLパーザが、仕様適合性に優れているという話。セキュリティやパフォーマンスにも配慮しているという。 / “URL Parsing in WebKit | WebKit” https://t.co/jiTlG4TTLU"
Rockridgeさんのツイート: "Fx53:新ロゴのとおり"moz://a"と入力すると、特定のWebページにリダイレクトされる仕組みが実装された。なお、"moz://"のURIスキームもIANAに暫定登録済み。参照:https://t.co/047yEEXTh7 https://t.co/abV54zdcfA"
Mozilla Firefox、moz:プロトコルをサポート | スラド idle
Rockridgeさんのツイート: "Fx55:複数のa要素がフラグメント識別子の異なる同一ページを指定し、かつ、target属性の値も同一である場合、リンクをクリックしてもタブが切り替わらない場合がある問題を修正。 / “1303838 - Not switch …” https://t.co/IKBc84zEiO"
PC Watch若杉(4K修行僧)さんのツイート: "Amazon.co.jpでのお買い物に「ドコモ ケータイ払い」が対応、という件名のリリースが来て、全角URLじゃサイトの表示すらできないだろ! って突っ込もうと思いつつも、一応試しにChromeに全角URLをコピペしたら、自動的に半角に変換して表示された。Chromeやるな……"
Rockridgeさんのツイート: "Fx56:URLのエンコードを内部的にPunycodeで行うようにした。 / “945240 - Change nsStandardURL's internal hostname representation to punyco…” https://t.co/UOakWoFgQ3"
Rockridgeさんのツイート: "Fx58:PlacesデータベースがURIのマッチングに用いるハッシュの計算が高速化されたが、データベースの互換性が部分的に失われているという。参照:https://t.co/8DsWeEWlO8 / “Firefox/Meet…” https://t.co/WBJYjqDEy1"
Makoto Kato ︎︎さんのツイート: "いろんな理由があって、location.hashのsetterのコードを見てるんだけど、extensionとかOSに対してURI変更に対してのinterceptを許可するとただ遅くなるだけなんだけど、他のブラウザどうしてんだろ"

Ryou Ezoeさんのツイート: "Chromium、バカが開発しているのか? https://t.co/l1jXQLorUX"
881410 - Incorrect transforms when stripping subdomains - chromium - Monorail
Ryou Ezoeさんのツイート: "www.はドメイン名の一部であって省略できるものではないだろ。"
Ryou Ezoeさんのツイート: "Chromium、https://t.co/nUchwbgK6Sのwww.を二重に除去してexamplecomにするらしい。完全にバカしかいないのでは。 https://t.co/l1jXQLorUX"
Ryou Ezoeさんのツイート: "Chromiumはfield trialsが常に1コア分のCPU時間を食うようになった頃から使ってないが、完全にIEと同じ立ち位置に堕ちたな。"
Ryou Ezoeさんのツイート: "Twitterもバカが開発しているらしくwww. www. https://t.co/rY28fpJshPの最初のwww.を除去する。"
Ryou Ezoeさんのツイート: "まあ、そもそもサブドメインなんてものがあるのが根本的にダメなんだがな。世の中にはhttps://t.co/UNnazKKeONとかに騙される人間が多すぎる。"
Ryou Ezoeさんのツイート: "あー、なるほど。これGoogleの戦略的なものかもしれないぞ。GoogleはURLを廃止したがっている。Googleがすべてのインターネットのトップページとして機能することを目論んでいるのか。"
Ryou Ezoeさんのツイート: "GoogleがURLを廃止したがっているという推測、あながちバカにできないぞ。https://t.co/6hq8jsQhFO"
Google wants to get rid of URLs but doesn’t know what to use instead | Ars Technica
Kazuho Okuさんのツイート: "URLのドメイン名省略の話、セキュリティの観点からいうと、伝統的に https://t.co/YQt384onj7 のメアドを利用して www .example.com のDV証明書を取得することが認められてきた以上、www を表示で省略しても良さそう(OV,EVも認証単位より細かいホスト名表示は不要)"
相沢陽菜さんのツイート: "Chrome のサブドメイン省略表示(www や m が消える)って、頭から消していって消せなくなったら終わるんじゃなくて、サブドメイン/ホスト名部分を . で分割して、www や m を filter して . でくっつけるのか…(どこに現れても消える)"
Kazuho Okuさんのツイート: "「企業が開発しているソフトウェアは信頼性が高い」と言われた場合にも「OSSは多くの目があるから信頼性が高い」と言われた場合にも便利に使える反例ですね。まあ仕様はあれでいいと思うけど… "
SKSの申し子さんのツイート: "Chromeのサブドメイン省略,勝手にアレな挙動をデフォルトにしたのも酷いけど,途中にあるのも省略しちゃったりするの,本当に雑に実装したんだな,という所が酷い"
Kazuho Okuさんのツイート: "Chromeのサブドメイン省略は修正が間に合わなくていったん無効化されたというのが正確。他のブラウザも(より限定的な形で)やってる。中間にラベルの省略は wikipedia のモバイルサイトを念頭に意図的に導入されたということは https://t.co/sOBRVz2E29 あたりみるとわかりますね"
881694 - www subdomain is removed even when it isn't the leftmost subdomain - chromium - Monorail
Kazuho Okuさんのツイート: "URLの一部を表示するのはセキュリティ上の要請だし、従ってホスト名を全部表示する必要はないし、複数の管理者が同居するようなドメインならpublic suffix listに登録されてるはずで、その場合、他のウェブブラウザはサブドメインを省略しないしChromeもそうなる方向なんですよ"
Makoto Kato ︎︎さんのツイート: "Chrome 69でのwwwとかmのサブドメイン省略の話、70でreshipするみたいだけど、細かい話はまだ決まってないみたい。さて。。。 https://t.co/f1IDsRz0Sd"
883038 - Feedback: Eliding www/m subdomains - chromium - Monorail
Kazuho Okuさんのツイート: "セキュリティに関するUIは、1) 簡潔で 2) ブラウザ間で統一されているほうが望ましいと考えます… "
mattnさんのツイート: "サブドメインが付いてない無いサイトはオフィシャルサイトだと認識する人が一定数いると思っていて、一括してセカンドレベルまでしか表示しないという事ならば(まだ)納得しますが、固定なのであればユーザが混乱するだけな気がしています。… "
Kazuho Okuさんのツイート: "一般ユーザは www の有無でサイトの区別をしない、という前提なんでしょうね。www の有無を無視するというのは、DV証明書発行の伝統的なプロセスでもそのとおりです… "
Rockridgeさんのツイート: "GoogleがChrome 69においてアドレスバーから"www"と"m"のサブドメイン表示を消したのは、URLをわかりやすいものにして、ユーザーに注意を向けてもらおうという考えが背景にあったらしい。 / “Chrome tea…” https://t.co/WspDOha7GI"
Rockridgeさんのツイート: "Chrome 70では"m"のサブドメイン表示を復活させる一方、"www"は隠したままにする模様。 / “883038 - Feedback: Eliding www/m subdomains - chromium - Mono…” https://t.co/6OBz4qUxYH"
ゆきさんはTwitterを使っています: 「ドメイン名にラテン文字など紛らわしい文字を使う、IDNホモグラフ攻撃については、W3Cで対策の議論があったり https://t.co/gL9HLKBsDP」 / Twitter
Anti-Homograph-Attacks -- 18 Sep 2019

Delegated Strings | ICANN New gTLDs
data URIs | MDN
ホスト名が付かない URL は不正なものとして扱われるようになりました (影響あり) | Firefox サイト互換性情報
URL Standard (日本語訳)
draft-ruby-url-problem-01 - URLの問題提起と動向
jacketizer/libyuarel: Simple C library for parsing URLs with zero-copy and no mallocs.

PSL

Libpsl Reference Manual: Libpsl Reference Manual
rockdaboot/libpsl: C library for the Publix Suffix List
「地域型JPドメイン名」新規登録終了、11月から「都道府県型JPドメイン名」 -INTERNET Watch
「都道府県型JPドメイン名」新設へ、2012年後半から登録受け付け開始 -INTERNET Watch Watch
【やじうまWatch】東京都の税金のページと思いきや……個人の善意で悪用が防がれている公式サイト風ドメインが話題 - INTERNET Watch
PSLってどうよ?
Public Suffix List
PSLってどうよ?
PSL
DailyJS | PublicSuffixList – PSLに基づいてドメイン名を検証 | JSお散歩
cmtt/publicsuffixlist: A validator for domain names and top level domains, driven by publicsuffixlist.org and ICANN's generic TLDs.
dnsops-jp-20080709.pdf
Geekなぺーじ:「欠陥ドメイン名」が世界的に増えそうな件について
vyv03354さんのツイート: "JPRSが都道府県型JPドメイン対応のためにPSLの更新を依頼してた。 https://t.co/eqdnpJfV どうやら本当に地域型ドメインで使われている市区町村名を全部登録するつもりらしい"
763208 - Update .jp entry in PSL
本の虫: クッキーモンスター
Rockridgeさんのツイート: "Public Suffix Listはeffective top-level domain(eTLD)とも呼ばれるドメイン名のリストである。Mozillaの発案だが、現在はコミュニティによって維持されている。 / “Public…” https://t.co/1TIyHoJTRd"
本当は難しいPSL - Speaker Deck

HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog
HTTPと硬直化(ossification)の問題 - ASnoKaze blog
「Advisory Content-Length for HTTP」と自転車置場の話し - ASnoKaze blog
ネットワークメトリクスを示すTransport-Info HTTPレスポンスヘッダ - ASnoKaze blog
HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-14) - ASnoKaze blog
HTTPで部分的アップロードを可能にする Partial Uploadsという提案仕様 - ASnoKaze blog
FadisさんはTwitterを使っています 「HTTPでブラウザがWebサーバに対してユーザトラッキングを望まないという意思表示をするDo Not Track(DNT)ヘッダをSafariが廃止した理由が「DNTはあまり使われず、使うユーザは継続的にDNTを付けたリクエストをする為、トラッキングの為のヒントとして使われる」なの、Webのダメな所が凝縮されてて凄い」 / Twitter
Chrome User Agentのサポートを段階的廃止
HTTP/2の仕様、改定作業が始まる - ASnoKaze blog
WiresharkがHTTP/3に対応した - ASnoKaze blog
ChromeのSecure context restriction for external requests - ASnoKaze blog
Permissions PolicyとDocument Policyについて - ASnoKaze blog
ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog
POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog
CDNのキャッシュを制御する CDN-Cache-Control ヘッダ - ASnoKaze blog

UPnP

OCF - UPnP Standards & Architecture
UPnPによるポートマップ - なぜなにTorrent

curl

curl

curl
curl - License Mixing
curl - SSL libraries compared
curl - SSL CA Certificates
curl - Extract CA Certs from Mozilla
curl - HTTP Cookies
HTTP/2 with curl
curl/curl: A command line tool and library for transferring data with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TFTP, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features
curl/packages/Win32 at master · curl/curl

libuv

libuv|Cross-platform asynchronous I/O
libuv/libuv: Cross-platform asynchronous I/O
libuv - Wikipedia
libuv-1.19.1
Kazuho's Weblog: The reasons I stopped using libuv for H2O
Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
Reactor pattern - Wikipedia
Proactor pattern - Wikipedia
C10k problem - Wikipedia
libcurl example - multi-uv.c
Curl: libuv example
node.jsを支えるlibuvのチュートリアル"uvbook" :ユーティリティ - 自由課題
Utilities — An Introduction to libuv
curl/multi-uv.c at master · curl/curl
An example on how to use libuv with libcurl's multi interface Should be equally fast on Unixes (uses epoll/kqueue/etc like libev/libevent) but MUCH faster on Windows due to libuv's usage of IO completion ports. Could come in handy if you have to manage several hundreds or thousands of connections!
moteus/lua-lluv-curl: Make asyncronus requests using libuv and libcurl
c - libuv event loop and libcurl - Stack Overflow
libuv/libcurl downloading example with threaded adding new download requests - Google グループ

本の虫: C++をプログラミング入門に使うならHTTPSぐらい喋れないと話にならんと言われたのでそういうライブラリを作った
cURL - Wikipedia
cURL - Wikipedia, the free encyclopedia
cURL-7.57.0
nghttp2-1.29.0
libmetalink in Launchpad
超古いサーバーからhttpsにcurlする時 - yamaguchi.txt
ブラウザではアクセスできるのにcurlでhtmlが取ってこれない時 - yamaguchi.txt
curl で Cookie 認証突破
cURL as DSL — cURL as DSL 1.0 documentation
rsync, wget, curl, scp に速度制限をかける方法まとめ - Qiita
cURL:インストール時にlibSSH2でエラーになる場合の解決策 | Step On Board
cURL - curlでルート証明書の適用がうまくできない。(74022)|teratail
cURL - How To Use (マニュアルページ日本語訳)
Windows®環境にcURLコマンドを実行できるようにインストールする手順 | ええかげんブログ(本店)
libcurlをVisual Studio 2012を使って、Windows10(64bit)上でビルドした手順。~必要な資源のダウンロードからビルドまで~ - IT系フリーランスの技術備忘録
HTTP(S)通信のできるcurlと無駄に新しいgawkをインストールしてくれます
WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
matsuuを止めるな!さんのツイート: "curl単体とcurl | bashでchunkedの違いを元に異なる内容を流し込むPoC。わはは。 / “Detecting the use of "curl | bash" server side | Application…” https://t.co/0rrnblHZ1k"
Detecting the use of "curl | bash" server side | Application Security
渋川よしきさんのツイート: "コマンドが分かれば、libcurlオプション付けると、ソースコードが生成されたはずです。… "
本の虫: Cisco、ルーターの脆弱性を修正するためにユーザーエージェントcurlを弾く変更を加える

libssh2

OSDN

「OpenBSD 5.4」リリース、OpenSSHやOpenSMTPDがアップデートされる | OSDN Magazine
「OpenSSH 6.8」がリリース | OSDN Magazine
「OpenSSH 7.0」がリリース、PermitRootLogin設定の変更などセキュリティ強化が行われる | OSDN Magazine
「OpenSSH 7.2/7.2p」がリリース | OSDN Magazine
「OpenSSH 7.4/7.4p」を公開、バグ修正が中心のリリース | OSDN Magazine
「OpenSSH 7.8」リリース | OSDN Magazine
1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine
AES-GCM暗号が関連した脆弱性を修正した「OpenSSH 6.4/6.4p」がリリース | OSDN Magazine
Windows環境でのSSHの利用とSSH鍵の作成 | OSDN Magazine
セキュリティを改善する変更が加えられたOpenSSH 5.6/5.6p1リリース | OSDN Magazine
フリーのSSH実装「OpenSSH 6.7」がリリース | OSDN Magazine
レガシーな証明書署名の脆弱性を修正したOpenSSH 5.8/5.8p1リリース | OSDN Magazine
機能にフォーカスした「OpenSSH 6.5/6.5p1」がリリース | OSDN Magazine
子プロセスでのサンドボックスを実験的に実装したOpenSSH 5.9/5.9p1リリース | OSDN Magazine
米Microsoft、PowerShellでOpenSSHをサポートへ | OSDN Magazine
「OpenSSH 7.8」リリース、バグ修正が中心 | OSDN Magazine
「OpenSSH 8.0/8.0p」リリース、scpプロトコルに関連した脆弱性を修正 | OSDN Magazine
「OpenSSH 8.1」リリース、バグ修正が中心 | OSDN Magazine

libssh2 | daniel.haxx.se
Curl: How to configure curl with libssh2
libssh2
libssh2 vs libssh
libssh2/libssh2: the SSH library
libssh2をインストールする(ソースからコンパイル) for CentOS7.2 - Qiita
libssh2,openssl,c-ares,zlib,ipv6を有効にした状態でcurlをwindows上で64bitビルドする - Qiita
Ubuntu忘備録: libssh2をコンパイルしてみた
PowerShell/Win32-OpenSSH: Win32 port of OpenSSH
いわもと こういちさんのツイート: "以前日記 https://t.co/81s1kPT1y4 で書いたけれど、OpenSSHの秘密鍵の形式には欠点が有るから。そもそも秘密鍵は利用するソフトで生成して使うべきだと思うんだよね。それならば形式の問題は無い。よそで作って(時にはネットワークを介して転送して)利用するなんてやりたくない。… https://t.co/8boH6v9rQp"
PuTTYの秘密鍵が独自形式な理由 | dodaの日記 | スラド
qemu(not kvm)上のゲストOSへのsshが遅くてハゲるので何とかした備忘録 - livaの雑記帳
haruyama/ssh_rfc_ja: Japanese translations of SSH RFCs and Internet Drafts
ubuntuのssh serverに公開鍵認証でログインする - Yabu.log
Fadisさんのツイート: "OpenSSH 8.0がリリースされた。scpでファイルをコピーする際に「リモートから送られてきたファイル名をクライアントが無条件に信用する」為に制御文字でいたずらができる脆弱性(CVE-2019-6110)が修正される他、量子計算機耐性を持つ鍵交換の実験的なサポートが含まれる https://t.co/ffcIOWKCNU"
OpenSSH 8.0 Released - Addresses SCP Vulnerability, New SSH Additions - Phoronix
SSHの踏み台有り・無しを,ネットワーク的居場所に応じて自動で切り替える - yunazuno.log
OpenSSHのAuthenticationMethodsを使って鍵認証+ユーザパスワード認証による二要素認証の設定をする | 俺的備忘録 〜なんかいろいろ〜
QUIC for SSH の提案仕様が出たよ - ASnoKaze blog
SSHの認証に物理セキュリティキー&認証局を用いて一時的な鍵を生成する方法とは? - GIGAZINE
YASUOKA MasahikoさんはTwitterを使っています 「IPoE だと ssh で外出れず、びっくり。https://t.co/cmwRgkmC9b 有名な問題っぽい。pf で "set tos 0x0" して潰すことにした。」 / Twitter
フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題:tsutsuiの作業記録置き場 - ブロマガ
ドッグさんはTwitterを使っています 「プロトコルの脆弱さから見て scp はもう時代遅れになってきている.代替は sftp か rsync だけど,前者はインターフェースが微妙で後者は使える環境がやや限られる | 'Deprecating scp [https://t.co/WPGe19HJgf]' https://t.co/aDWoZVRZe5」 / Twitter
ドッグさんはTwitterを使っています 「scp コマンドが使うプロトコルを sftp に置き換える実装を試してる人もいる https://t.co/K7hNcfNZSA」 / Twitter
Use SFTP internally for SCP command by Jakuje · Pull Request #194 · openssh/openssh-portable
開発者たちが慣れ親しんだ「scp」コマンドはなぜ「時代遅れで柔軟性がなくすぐに修正できない」のか? - GIGAZINE
各種サービスからユーザのSSH KeyやGPG Keyを取得する方法メモ

Captive Portal

Captive portal - Wikipedia
Captive Portal Problem Statementについて - ASnoKaze blog
Captive Portalとは | OSSでのシステム構築・デージーネット
Captive Portalとは | OSSでのシステム・デージーネット
Captive Portalって何? - にたまご。
Captive Portal Detectionについて - にたまご。
Captive Portal(CAPPORT) APIについて - にたまご。

MS

[MS-WINPROTLP]: Windows Protocols | Microsoft Docs
[MS-WINPROTLP]: Archive Documents | Microsoft Docs
Fadisさんのツイート: "次世代VPN WireGuardの人がWireGuardをWindowsに移植する際にマトモなIPパケット直書きAPI(所謂TUN)がなくて困り、Windows用のTUNを作ってしまったらしい。で、これが他のソフトウェアでも有用という事でWireGuardから切り離されてオープンソースで公開されたのがWinTUN https://t.co/8xC9Em74U3"
WinTUN: Windows Finally Gets A Good TUN Driver & It's Open-Source - Phoronix
ASCII.jp:ケーブル直結で設定なしでもWindows機の間で通信可 自動IPアドレス割り当て「APIPA」解説 (1/3)|Windows Info

スライド

Seccamp 2016 チューター成果報告
ネットワーク超入門
SAI ちょっと調べてみた - Speaker Deck
詳解 Reliable UDP - Speaker Deck
「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018 - Speaker Deck

POSTD

Pingの発展版 : httping, dnsping, smtpping | インフラ・ミドルウェア | POSTD

Qiita

ネットワークキャプチャデータを見る時のTips - Qiita
SLICECAP: PCAPファイルの分割並列処理 - Qiita
coturn使ってみた - Qiita
インターフェース名&PCIe BDF名を調べる(Ubuntu 16.04) - Qiita
Kazuho Okuさんのツイート: "Destinationの定義もRFC1122の定義も、ホスト間の通信で0.0.0.0を使えない、と言っているだけで、ローカルホスト内での宛先として使うのは良いのでは? / https://t.co/8scijvjgFl"
0.0.0.0にはアクセスしないこと - Qiita
Kazuho Okuさんのツイート: "RFCの解釈論はあまり意味がないんだけど、この場合、宛先の有効性の定義について「デバイス間の」というのは意図して書かれたんだろうし、1122にも同じ限定があるし、それは実際のソフトウェアの動作とも合致するんでしょ?"
お盆休みにIEEE Ethernet規格(英文:個人利用無料)を読もう。1日1000ページ目標。 - Qiita
同期通信(synchronous communication)って言わないで! - Qiita

GitHub

ASCII Header Generator

Protocol | An ASCII Header Generator for Network Protocols
luismartingarcia/protocol: An ASCII Header Generator for Network Protocols

Mosh

Fadisさんのツイート: "sshはtcpで通信するから回線品質が悪かったり、接続元が変化したりするモバイルデバイスから使うには厳しかった。そこで「udpで正しく復号できる暗号を投げてくる奴は正しい通信相手だ」でセッションを管理するのがモバイルのためのシェル Mosh https://t.co/r0L87Svo9s"
Mosh: the mobile shell
mobile-shell/mosh: Mobile Shell

Dripcap
networkprotocol/netcode.io: A simple protocol for creating secure client/server connections over UDP
FRRouting/frr: FRR - The FRRouting Protocol Suite, forked from Quagga
keiichishima/slicecap: The Slicecap utility slices a large pcap file into small pieces and hands over them to sub process in parallel.
ldcsaa/HP-Socket: High Performance TCP/UDP Socket Component
t6x/reaver-wps-fork-t6x
Tylous/SniffAir: A framework for wireless pentesting.
yarrick/pingfs: Stores your data in ICMP ping packets
kcp/README.en.md at master · skywind3000/kcp
FadisさんはTwitterを使っています 「libuinet: FreeBSDのカーネルのネットワークスタックだけ剥がしてユーザ空間のライブラリにしたやつ https://t.co/ouXKHr5mcX」 / Twitter
pkelsey/libuinet: a library version of FreeBSD's TCP/IP stack plus extras

Wikipedia

Resource Reservation Protocol - Wikipedia
Wake-on-LAN - Wikipedia, the free encyclopedia
媒体アクセス制御 - Wikipedia
ディープ・パケット・インスペクション - Wikipedia
hikaliumさんはTwitterを使っています: 「spanning tree protocolは必要な場合を除いて切っておいた方がいいなというのを体感した(物理的に繋いでから通信可能になるまでの時間が全く違った)。」 / Twitter
スパニングツリープロトコル - Wikipedia

Twitter

その他

じとめすきーさんはTwitterを使っています: "VLANつながらないところ見つけたのでWiresharkでパケット眺めてたらIOデータの機器からプロトコル0x8899のパケットが大量に出てた.調べてみたらループ検知用のパケットらしい."
なぎせ ゆうきさんのツイート: "1byteが8bitとは限らないので1octet(オクテット)と表現しないと正確じゃない、みたいな話じゃないかしら。 でも、多分技術的観点での厳密さという事情より数字を大きく見せたいという理由が強そう https://t.co/qrDWGntJMq"
辻村 伸太郎さんのツイート: "個人的にはbits/sとByte/s、生まれが違うから別の方がしっくりくるんだけれども、ここまで物理層が世の中から隠蔽された(いい意味で)の中ではByte/sを一般的に使い回す方が間違い無いのかな?というような気もするなぁ…"
豆債務超過さんのツイート: "bits/s と Bytes/s を混在させるとネットワーク屋さんがキレる"
Rockridgeさんのツイート: "Fx49:TCPウィンドウのサイズを原則としてOSの設定に合わせる一方で、Windows XPは128KB、Vista以降は512KBとした。 / “1135104 – windows upload speed limited …” https://t.co/NXbdvYY5A0"
勝(まさる)さんのツイート: "netmapとDPDK、パケットデータをゼロコピーでユーザプログラムからアクセスするという点だけ見れば似ているのだけど、それを実現する方法が違う、ということですね。"
研究千年牛酪情報保管庫菩薩さんのツイート: "世界のWebDav実装最悪だな…って言いたくなる感じのコードのところです(そして, いまつなぎたいところはこれでも動かない… https://t.co/7gLPqo3cV2"
rclone/types.go at master · ncw/rclone
Kazuho Okuさんのツイート: "僕のまわりのサーバ屋さんだとnetmap一択な感じなんだけど、ツイッターの日本語界隈だとdpdkの話ばかりなのは、なぜなんだろうと思ってる"
Hiroki Satoさんのツイート: "netdb.hにあるstruct addrinfoのメンバ変数の順番がPOSIXとRFC2133で違ってるのはどうしてなのか、誰か理由を知っていたら教えてください。調べた限りでは*BSDはF, NがRFC, OがSUS, SolarisはRFC, LinuxはSUSになってるもよう。"
Hiroki Satoさんのツイート: "FreeBSDのgetaddrinfo(3)のmanpageはSUSの原稿を許可もらってそのまま入れたのだけど、そのせいでずーっと実装と違う順番の構造体定義が書いてあったようだ。macOSもFreeBSDから持って行ってるので同じ間違いが。"
SODA Noriyukiさんのツイート: "NetBSDにも同じ間違いがあった。 この変更が入ったのは FreeBSD: https://t.co/oJUD2d5BO1 NetBSD: https://t.co/R3bEk73zqy なので KAME Project / WIDE Project に知ってる人がいそう。 Solaris 9 は実装もmanもRFCと同じだった。 https://t.co/VMItWtp1lP https://t.co/ln9xVB3kPI"
神明達哉さんのツイート: "RFCとPOSIXでメンバの順番が違うのはなぜか、についてですか?うーん、わからないですね…basic APIドラフトの著者がOpen GroupとのリエゾンみたいになってPOSIXに取り込んだ、という経緯だと記憶してますが、その間のどこかで順番が変わったけど誰も気にしなかった、くらいが実情かもしれません。… https://t.co/kbOBUBxzSo"
神明達哉さんのツイート: "もしかするとOpenBSDの誰かがPOSIXへの取り込み作業に絡んでいたとかかもしれないですね。あるいはPOSIXのドラフトが途中で公開されててそれを参照したとか。まあすべて推測でしかないですが…いずれにせよ、2003年のRFC3493でも違ってるままなので「誰も(大して)気にしなかった」ということでしょう:)… https://t.co/lK2LOKHcbY"
西塚 要さんはTwitterを使っています 「なぜMTUが1500byteか。それは80年代のケーブル上の電気信号の制約に遡る。しかし今となっては、どれだけ通信が無駄になっているか。この人の記事はいつも面白い。 https://t.co/I7ttPsRoXr」 / Twitter
Ben CoxさんはTwitterを使っています 「"Why is the MTU of Ethernet 1500 bytes?" A question I asked myself a few nights back and could not find a quick response to. So after many days in a rabbit hole I present: --- How 1500 bytes became the MTU of the internet https://t.co/7s2zFxdQHV https://t.co/gJsYv6LgJg」 / Twitter
How 1500 bytes became the MTU of the internet
にゃははー仙人さんはTwitterを使っています 「@uchan_nos @TumoiYorozu 原則じゃない理由としては大体のfirewall実装がpentalobe(プロトコル、送信ip、送信port、受信ip、受信port)を記録してステートレスにnaptを管理するので、それに一致しない場合は落とされます。これはUDPにも同じ実装ができるので、強めのfirewallでは落ちる場合があります」 / Twitter

エンドポイント

Kazuho Okuさんのツイート: "「endpoint: Either the client or server of the connection.」(RFC 7540 section 2.2.)はじめ、サーバを含む用例はいくらでも思いつくけど、積極的に「クライアントのみ」をendpointって呼んでる用例はあるのかしら… https://t.co/N5bU8oaJSJ"
徳丸 浩さんのツイート: "エンドポイントという用語はクライアントPCやスマートフォン等の端末のことで、サーバーは含まないと思っていたのですが、用例によってはサーバーも含むようですね。皆様の「語感」を教えてください。エンドポイントという用語は、サーバーを含む or 含まない?"
Kazuho Okuさんのツイート: "ある外来語を特定の文脈でしか見たことのない人が、その語本来の意味が何か推測できない場合、その特定の文脈での用法でしか使わないものと勘違いすることはあるんだろうなとは思うけど"
Shigeki Ohtsuさんのツイート: "RFC7540(HTTP/2)ではサーバを含むと定義しています。 "endpoint: Either the client or server of the connection." https://t.co/gLLMdIOZrm https://t.co/rtXWQ3WIGm"
RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
Shigeki Ohtsuさんのツイート: "RFC8446(TLS1.3)でも同じ定義ですね。 https://t.co/wmDVJqlFac"
RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3

sendmsg() / recvmsg() で他プロセスに fd を送信

るくすさんのツイート: "本来はrlimitに引っかかってソケットは一定数しか作れないのに、socketpairを親子で再帰的に作って、子プロセスでcloseした後sendmsgで親に閉じたfdを渡していくというのを繰り返すと、好きなだけソケットが生成できるという仕様があるらしい。 すごい"
SODA Noriyukiさんのツイート: "UNIXドメインソケット使ったこの機能、4.2BSDくらいで入った筈。 自分はファイルサービス用デーモンがクライアントと同じホストで動いてる場合、クライアントに fd 渡してクライアントプロセスが直接バックエンドで管理されてるファイルに書き込んだりする機能とかで使ってるなあ。 https://t.co/HUosUNlBSk"
るくすさんのツイート: "File descriptor passing with sendmsg(2) and recvmsg(2) over Unix domain socket https://t.co/OUWgZVEkgd え fdってソケットのCMSG使ったら送信できるのか"
SODA Noriyukiさんのツイート: "OSがもともと提供する権限機構とは別の自分で定めた方式で権限委譲できて大変便利ですよね。 https://t.co/XIkZpw3jjt"
AoiMoeさんのツイート: "デスクリプタパッシング、setuidビットを立てたヘルパー実行ファイルと組み合わせると便利"
SODA Noriyukiさんのツイート: "ちなみに 4.3-Renoで API が変ってます。昔は struct msg_control に msg_control メンバーがなくて、代わりに msg_accrights があった。Stevensの「詳解UNIXプログラミング」第15章に解説アリ。SVR4は古いAPI。"
るくすさんのツイート: "@uchan_nos ん まずfdはシステムワイドなstruct fileへのポインタなので、特に違和感なく出来ると思いますよ。sendmsgの場合は受信元でfdが変わりますが、これは単にfork時に引き継がれたfdと区別するためなのかなと推測します。"
るくすさんのツイート: "@uchan_nos ああ URL先を見て頂けると書いてあるんですが、sendmsgの場合は単にFD番号を送っているのではなく、FDを開き直して新しいFDを送ってます。(4,5です) カーネルがよろしくやってるのかと。"

users

@mhiramat

まさみさんは語りたいさんのツイート: "loopデバイスは一応drivers/blockの下にあるからブロックデバイスとして認識されるはずなのか。"
まさみさんは語りたいさんのツイート: "未だout-of-treeのWifiドライバも多いんですよね・・・。… "
henrichさんのツイート: "freeではない(OSSではない)firmware blob提供してるベンダーに言ってもらわないと、どうしようもないんだな、これが。あるいはunofficial image使う。… "
denden2501@ゴーゴーさんのツイート: "頼むからぁ debian さぁ Wifi くらい自動認識しろよ…… "
まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"

@shirouzu

histric-1

SHIROUZU(白水啓章)さんのツイート: "linuxのtcコマンドのように、NICに latency / jitter を設定できないかな…netshとかにあるといいのだが。試しにWSL上のtcを使ってみたが、Cannot talk to rtnetlink: Operation not supported となった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "40G NIC同士の直結転送で転送レートが波打つ(綺麗に規則的に)原因が今のところ謎…。 10G NIC同士だと、綺麗に10Gbps近隣で安定。 また単独動作だと、PCIe*2なSSDアクセスで48Gbps、RAM-Diskで80Gbpsで安定。 割り込み&上位層までのコピー・結合コストあたりか。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Mellanox 40G NIC、UDP sock 3つを投げっぱなしでようやく、40Gbps達成!(笑)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "udpでのwritev(iov)相当は、sendmsgもしくは(udp_sockに)connectを掛けた上でwritevと。 Win系だとIOCPとRIOの組み合わせになるのかしらん?(要調査)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb NICのWin10Pro同士で、FastCopyでの転送実験。 ほぼ10Gbpsまで速度が出る。 ジャンボパケットOFFだと、6Gbps前後に速度低下。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "(少なくともL2レイヤでは)ジャンボフレームは自動選択できるようにならないものかしらん。 (この記事ではDIXフレームにサイズフィールドが無いので…とあるが本当にこれが理由なのか、やや疑問に思うところも) https://t.co/wgrieGFGJo"
【10GBASE-T、ついに普及?】10GbEでは「Jumbo Frame」が効果的、1Gとの混在環境ではMTUサイズに注意【期待のネット新技術】 - INTERNET Watch
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb高レイテンシ環境を作るには、10Gb NIC2枚刺しPC(Linux)を調達してブリッジさせるのが一番良いかな。 次はCoffeeLakeではなくて、Ryzenマシンにしてみよう。 (satさんのおかげか、最近は不安定という話が聞こえてこない)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10G NIC2枚刺しにするか、10G dual-port にするか、微妙に迷い中。 PCI-E Gen3とGen2で結構な価格差がある様子。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "新しいPCのための部材発注が終わった。 10GブリッジなLinuxマシンとして動作させることがメインなので、検討した結果、 i3-8100 という選択になった。(グラボなし)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のNIC は Intel X540-T2 という 10Gb dual port に。 ASUS 10G のJumbo Frame最大は約16KBだったが、Intelは15.5KBと書いてある…X540-T2をブリッジで使うなら、全てを9KBで統一した方が安全かな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、ブリッジモード + tcコマンドで、結局10Gpbs出ない可能性が一番気になる点だが、さてどうなることやら。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500で、NAT descriptorを2つ定義した上で、ip route gateway ... filter ... gateway filter という形で、1G回線と100M回線をsrcのipaddr範囲で使い分けるようにしてみる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2用Linuxドライバは自分でmake install。 すると ixgbe.ko がインストールされ、(念のためrmmod ixgbeした後)modprobe ixgbe とすれば、dmesgに enp2s0f0: renamed from eth0 等と出るはずと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで10Gbitなブリッジを作る件、目論見通りに動作。 Win10 -- Linux(Bridge) -- Win10 という経路で、FastCopyで転送実験した時の模様。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ブリッジに遅延を入れた場合のSMBの速度変化。 10ms - 10.0 Gbps 50ms - 2.5 Gbps 125ms - 1.0 Gbps 250ms - 0.5 Gbps"
Shirouzu Hiroaki(白水啓章)さんのツイート: "パケットロスを0.1%でも入れると、125ms latencyで 20Mbps ~ 200Mbpsで波打ちつ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2 の dmesgメモ。 ixgbe: Multiqueue Enabled: Rx Queue count = 4, Tx Queue count = 4 XDP Queue count = 0 ixgbe: PCI Express bandwidth of 32GT/s available ixgbe: (Speed:5.0GT/s, Width: x8, Encoding Loss:20%) ixgbe: Intel(R) 10 Gigabit Network Connection"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbps相手だと1.5GB/sec程度の性能があれば十分だけど、できれば3GB/s程度のストレージを用意したいところ。 (ピーク速度3~6GB/s出る環境はあるものの、持続するのは15GB程度の領域までなんだよなぁ…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで10Gbps NIC 経由100GBファイルコピー。 結果は80.0秒、ネットワーク転送レートは 9,898.6 Mbpsという結果。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "5MB程度の大量をネットワーク越しに処理する場合、(少なくともSSD同士なら)並列処理した方が明らかに速い。 Read/Writeと違って、CreateFile/CloseHanldeには非同期処理が無い、という点が大きいかもしれない…まだ探求すべき点は結構あるなぁ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ジャンボフレームOFFでも、ほぼ10Gbps出るように。 (前回は片側がRAM-Diskだったため、(CPU全体では余裕があったが)1コアの天井を打っていた可能性…あとで確認しておこう。今回は両側でM.2 SSD)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験メモ。AES128CTR暗号化、CoffeeLake-S世代(3.6GHz)で1.5GB/s、さくらVPS東京(Xeon E5-2650 2.60GHz)で 698MB/s、さくらVPS大阪( Westmere E56xx/L56xx/X56xx)で 534MB/s。 いずれもAES処理に1コア使い切り状態で。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最新CPUで複数コアを使えば、10GbpsネットワークでのAES-CTRがギリギリこなせるレベルかな。GCMになると厳しいかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500のDHCPD、ログ出力が頻繁に出て(抑止方法もない)、他の大事なログが埋もれてしまうため、自宅サーバ側に isc-dhcpd-serverを立てた。 ただ、ISCとしては isc-dhcp よりも kea dhcp server が一押しらしい。 (リース情報をテキストファイルではなく、PostgreSQL等に格納するらしい)"

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度調整、そこそこ低コストで妥当なロジックを思いついた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "動作中時間 T が総時間の R%(=r) になるよう、スリープ時間 S を計算する、という中学レベルの方程式を計算した。 結果、S = (T - rT) / r となった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、OS側バックグラウンド処理があると過剰に処理が進むし、シークの連続性が失われることで過剰に遅くなることもありえて、純粋なSleepでの速度調整というのは、もともと無理があるけれど。 (実際に全力writeして最高速度を求めた後に、最高速度*rへ調整しない限り)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2(10G*2port)はPCIe Gen2なので8レーン仕様だが、X550-T2はGen3なので4レーン仕様。 20Gbps以上を非サーバ系マシンで使う場合、Gen3対応でないとPCIeレーン数不足になりやすいので気をつけないと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 + ASUSの10G NICで、1.5KのUDPを大量に送り付けられると(受信プロセスは無くとも)、その間フリーズしてしまう。(マウスすら動かない) Linux + Intel X540だと、そんな現象は起きないので、OS or ドライバの作りの問題かしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "特定コアで処理しようとして固まっている印象なので、RPS/RSSをサポートしていないという話? なお、9K以上の大きなUDPパケットになると問題は起きなくなる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(WS)+ASUS XG-C100C と Linux(4.17)+Intel X540 では、ジャンボフレームなしでも、TCP性能はあまり変わらないが、UDP受信性能が大幅に違う。(後者が良い。前者はそもそも固まる) 前者のダメっぷりはOS/ドライバに起因するのか、ハードウェアに起因するのか…面倒だがHW交換してみるかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "azure東海岸とUDP通信すると、転送レートが飽和するのは、0.02%くらいのロス率を越え始めたとき。820Mbps前後。 ちなみに、100Mbpsでもロス率0.002%で、0%にはならない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarm運用、10.7PB、1.1億ファイルで、5ファイルの書込後のデータ破損を検出。(I/Oエラーなし) ちなみに、gfarmのベリファイは、src読込時のテンポラリエラーも検出できるのだろうか? (そのためには、srcを2回読んでhash計算も2回行う必要あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmでは、md5やsha1等を検証に使っているとのことだが、md5やsha1は並列演算が難しいため、速度ネックにならないのだろうか? ハッシュツリー化して並列演算対応したり、xxhash等の圧倒的に軽いhashを使う、などの構想はあるのかしらん? https://t.co/z7b9P7UEVs"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの場合、I/Oよりもmd5が速度ネックとなる事態が発生。 そこでストライプによる並列演算プロトタイプを作ったが、xxHash最適化でI/O速度を十分超えたため、まずはxxHashをデフォルトとすることで、問題解決とした。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Read I/O、Write I/O、src-hash計算、dst-hash計算、全てが独立スレッドでパイプライン的に動作させていたのだが、まさかhash計算がネックとなるとはと思った記憶。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmの5件のデータ化け、どういう化け方をしていたのかにも興味がある。 僅かな個所のbit flipしていたのか、I/O単位で丸ごとデータ化けしていたのか等。 (FastCopyで1例だけ、高負荷でバスリセットが何度か掛かった挙句、上位にエラーを通知なしにDMA転送が数ページ欠落と思われる事例あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ASUS 10GNIC(XG-C100C)、UDPで大量通信するとドライバが死んだ。 昔から、安物NICはアプリ側UDP通信に弱いの個人法則。 (昔のカニドライバ、UDPでギリギリでIPフラグメントが発生すると常に受信破棄とか、Win3.1時代、UDP通信すると不安定になるベンダドライバを思い出したり)… https://t.co/0gpJ3TnR8X"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いまだに、RealTek NIC の UDPチェックサム・オフロードのバグが無くならない…困ったものだ。 https://t.co/sJKkwN9Nkt」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ペイロードが1501~1563byte(octet)、のようにギリギリでフラグメントが発生するUDPパケットでのみチェックサムが狂い、受信先によって捨てられてしまう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、NICをswapしても結果変わらずだった。 つまり、Windows(Pro for WS)では、UDPパケット受信 → recvfromまでのどこかで、処理が追い付かない。(TCPなら問題なし) これはLinuxのNAPI的な仕組みがないということかな? https://t.co/GE3f7qsLGf」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これを見るとドライバ依存ながら、NAPI的な処理はやっているっぽい? https://t.co/JHy3or3NLv それと Linux softirq に相当する DPC(Delayed procedure call)もあるので、なおさら謎…(存在するれどUDPで使われない場合がある?)」 / Twitter
NAPI for windows — OSR
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tss_ontap 90年代にオンライン情報処理を取ったときも、アーランやM/M/1のあたり必須知識でしたね。 (そして「トラヒック」というNTTだかJISだかの表記がずっと使われていたり)」 / Twitter

@fadis_

Fadisさんのツイート: "pub/subモデル: subscriberがtopicに参加し、publisherがtopicにメッセージを送るとtopicに参加しているsubscriberにメッセージが送られるモデル #boostjp"
Fadisさんのツイート: "いにしえのネットワークプログラミングではクライアント毎にスレッドを立てて処理したりしたけど、スレッド作りすぎるとコンテキストスイッチのオーバーヘッドが大変な事になるから非同期でネットワークI/Oしよう #boostjp"
Fadisさんのツイート: "複数のスレッドでio_serviceをrun()するとタスクの実行順序が保証されない。「参加」「脱退」「配信」をそのまま流すと脱退前に用意した配信が脱退の処理を完了した後に実行されてしまう恐れがある #boostjp"
Fadisさんのツイート: "そこでasync_writeの中でコネクション単位のキューを用意し、同じコネクションに対する書き込みは順序が保証されるようにした、と #boostjp"
Fadisさんのツイート: "RFC4614 A Roadmap for Transmission Control Protocol (TCP) TCPの拡張が多すぎて何処に何があるか分からんから「まとめ」を作りました、と https://t.co/Y0Lkfhfwe8"
RFC 4614 - A Roadmap for Transmission Control Protocol (TCP) Specification Documents
Fadisさんのツイート: "さくらVPSがPS4を自称して通信を待ち受けてたりするけど不審な者ではありません(IPoEにIPv4しか喋らないPS4のP2Pな通信を乗せるにはIPv6でVPSにVPNを張って、PS4からのブロードキャストをVPNでVPSに投げて、UPnPのパケットをそこで拾うしかなかった)"
Fadisさんのツイート: "SCTPはVerification Tagと呼ばれる32bit値をハンドシェイク時に通信相手と共有している。SCTPはVerification Tagを通信相手の識別に使える為、ソースIPアドレスを通信相手の識別に使うTCPと異なり、通信の途中で送信元のIPアドレスが変わってもセッションを維持する事が出来る"
Fadisさんのツイート: "systemdの人達がIPv4の衝突検出、IPv6の近傍検索、DHCPといったネットワークの設定をするソフトウェアに必要になる基本的な機能をライブラリ化したオープンソースライブラリを公開。その名もnettools (ifconfigとかで知られるnet-toolsとは全くの別物) https://t.co/62fDlRcciT"
Linux Is Getting New Network Libraries From Veteran systemd/BUS1 Developers - Phoronix
FadisさんはTwitterを使っています 「Linuxのネットワークまわりを網羅的に解説する為に要求される知識幅広すぎ問題( 一体幾つの輻輳制御アルゴリズムとQoSを実装してんだ。お前はIPXを、AppleTalkを覚えているか。iptablesが第四層を読んでいる、だと。そもそもTCPがでかい。よーしカーネル自力でDHCP喋っちゃうぞ。Open vSw(以下略」 / Twitter
FadisさんはTwitterを使っています 「802.3adはリンク毎の帯域に基づいてパケットを割り当てる為、パケットの送受信の時刻を必要としている。ところがDPDKはNICをポーリングで操作する為ポーリング間隔が大きくぶれると正確な帯域の変化が計算できない。この為802.3ad使用時は100msに1回は送受信しろ、とドキュメントに書かれている」 / Twitter

@kazuho

Kazuho Okuさんのツイート: "TCP_NOTSENT_LOWAT をゼロにしたら ssh がハングする問題、デバッグするためにコンソールつなぐのがめんどくさくて切り分けませんでした #spkai"
Kazuho Okuさんのツイート: "sockaddr_unがsockaddr_storageよりでかくなることがあるSolarisと、getsockoptにsizeof(sockaddr_storage)より大きいサイズ渡すとエラーを返したlinuxか。つらい #spkai"
Kazuho Okuさんのツイート: "すっごいマジレスするとTCP接続本数を増やすことでダウンロードが高速化されるのは、回線の途中で輻輳が発生している場合のみで、つまりその場合は他のTCP接続に割り振られるべきバンド幅を奪ってる。途中の回線で輻輳が発生していない場合はTCP接続1本が最速で、複数本接続すると遅くなる"
Kazuho Okuさんのツイート: "「UDPはトランスポートレイヤプロトコルではない。IPパケットを多重化するための仕組みである。本来はIPレイヤにポート番号が入っているべきだった」 #ietf96j"
Kazuho Okuさんのツイート: "snd_wnd と snd_cwnd と inflight を一度に取れる OSX 最高!他のOSは全部イマイチ、という結論になりつつあるw"
Kazuho Okuさんのツイート: "パケット単位でコンテクストスイッチが必要になるTCPサーバで、カーネル内にTCPスタックがあることがオーバーヘッドになるというのは昔からある話であり、一方でそのようなアプリはあまり多くない"
Kazuho Okuさんのツイート: "そして、パケットよりも小さいメッセージを大量にやりとりするシステムでは、TCPスタックの位置を寄せることよりも、各エンドポイントで複数のメッセージをとりまとめ、少数本のTCPストリームに多重化するほうがパフォーマンスが稼げる。なぜならパケット数が減るから"
Kazuho Okuさんのツイート: "というわけで、僕は、パフォーマンスの観点からはユーザランドTCPに懐疑的です"
Kazuho Okuさんのツイート: "寄せるとしたらユーザランドに寄せるべきですし、実際quic対応でトランスポートの独自実装を進めてますね https://t.co/ZTm4PyhnEj"
Kazuho Okuさんのツイート: "“c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow” https://t.co/XdY35puqSg"
c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow
Kazuho Okuさんのツイート: "トランスポートにおいて「path」がIPアドレスの組を指すのか、4-tuple(ポート番号を含む)を指すのかは形而上の議論のあるところだと思うけど、個人的には「address validation」あたりの用法がIPアドレス「とポート番号」を指して「アドレス」と呼んだりするので諦めてる"
Kazuho Okuさんのツイート: "2RTTくらいの遅延を許容できるならFEC使わない方が帯域増えてうれしいよねという基本的理解"
Kazuho Okuさんのツイート: "そろそろ日本語がやばいというか、congestion controlの日本語訳が輻輳制御なのはわかっても、loss recoveryの日本語がわからない"
Kazuho Okuさんのツイート: "再送制御と呼ぶような気がしてきた"
Kazuho Okuさんのツイート: "微細化が壁にぶちあたりつつある影響の話、インターネットプロトコル屋さんからすると、光の速度はずっと不変だし、速くなるCPUと広がるバンド幅をより上手に使いたいという要求は今後もかわらないでしょ?という感じな気がする"
Kazuho Okuさんのツイート: "再送制御の応答性に対する要求というのは、昔から一貫してあるもので(なぜなら光速は不変だから)、インターネットのバンド幅の拡大に伴いレイテンシがボトルネックになったというのとは全然関係ない話ですよ"
Kazuho Okuさんのツイート: "5GだとRTTの変動が激しくてトランスポートがパケロスと誤認するという話。おもしろい。この資料公開されるのかしら #html5j #html5j_h"
Kazuho Okuさんのツイート: "うーん。ちゃんと考えると、単なるRTTの増大をQUICがパケロスと誤認することはないんだよね(リオーダーが絡むとありうる)。BBRが誤解するのはわかる。再送・輻輳制御のチューニングとしては今後課題になるんだろうなぁ"
HTTPP and 5G fixed1
Kazuho Okuさんのツイート: "TCPの場合は、再送制御でロスを検出したらCWND縮小してたけど(そののちにspuriousだと判断したら拡張)、QUICはspuriousの区別ができるので、ロスが確定したタイミングでCWND縮小するという違い"
Kazuho OkuさんはTwitterを使っています: 「相手が何も送ってこないならwrite直後にcloseしていいし、readがゼロを返すのは相手が書き込み側をshutdownした時」 / Twitter

@rui314

Rui Ueyamaさんのツイート: "OSI 7層モデルを使ってプロトコルを教えるのはやめたほうがいいんじゃないかなぁ。OSIは過剰設計で誰も使わなかったわけで、そのモデルを説明しても仕方ないというか、実際のEthernet/IP/TCPを直接普通に説明すればいいだけのような。OSIにどうマップされるかはトリビア的な… https://t.co/ftfQfxzJkr"
Rui Ueyamaさんのツイート: "もはや意味がないのになぜいまだにOSI参照モデルを使って実際のプロトコルを教えているのかというと、きちんと教える=OSIモデルを説明する、という固定観念があるだけだと思う。そろそろ自分がそう教わったから同じことをそのまま教えるというサイクルは切った方がよいような。"

@kumagi

kumagi2.0さんのツイート: "c10K問題に続きc10M問題というのがあって、コア数程度のスレッド数でO(1)なselectで適切にソケットを扱っても、ネットワークパケットをカーネル空間とユーザ空間の間でコピーするコストだけで性能がサチってCPIがガタ落ちするとかいうやつ。"
kumagi2.0さんのツイート: "1千万接続を超えるあたりで性能がサチるc10M問題にどう対処するかというと、DPDKみたいな方法でカーネルを経由せずに全部ユーザ空間でゼロコピーでやるようにするとか言ってて世の中こわいですね。"

@methane

INADA Naokiさんのツイート: "輻輳じゃなくて無線環境によってパケロスが生じるモバイルの場合はどうなんだろう?>複数TCP"
INADA Naokiさんのツイート: "無線だと、スループットはそこそこあるんだけど、遅延が大きく、パケロスも多い、っていう環境なんで、TCPの性能発揮しづらそうなんだよな。"

@KuniSuzaki

suzakiさんのツイート: "データセンターネットワーク4つ目。カーネルバイパスする高速TCPの研究は良いが、現在のTCPは複雑であり、カーネルスタックを使わないのは賢くない。特にカーネル内でTCP/IP ネットワークスタックは高速であり、問題はIOである。この問題を解決するstackmapの提案。"
suzakiさんのツイート: "Stackmapではカーネル内で静的なバッファ割り付やFile Descriptor arrayとScratchpadのデータ構造を追加し、カーネル内で高速IOを実現。カーネル内のTCP/IP スタックは再利用する。"

@marbocub

まあぼ@cubさんのツイート: "だから「数字を大きく見せたいからbpsじゃないか」みたいなモノとはぜんぜん違う。"
まあぼ@cubさんのツイート: "僕はネットワーク屋さんじゃないからキレないけど、混同されると「ああこの人は分かってないんだな」って思った後で、相互の理解の一致に至るまでのハードルの高さを感じて身構えたりする"
まあぼ@cubさんのツイート: "イーサネットなんてフレームサイズやプロトコルなどの条件を仮定した場合での表記になっちゃったら、かえって面倒だと思うの"

USB

その他

hwhack: ugenでラピッドプロトタイピング(*BSDでUSB)
『*BSDでのUSBデバイスドライバーの実装』 2003年10月18日 OFUG勉強会資料
USB-仕様 - SyncHack
USB.org - Welcome
Universal Serial Bus - OSDev Wiki
USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで|Tech Village (テックビレッジ) / CQ出版株式会社
電子工作室
ディスクリプタ | ルネサス エレクトロニクス
FAQ 1004570 : USB HUBコントローラでTransaction Translator (TT) とはなんですか?また、"Single" と "Multi" とはなんですか? – ルネサス エレクトロニクス株式会社
Type-C、WiGig、AirFuel……:2016年に期待のPCテクノロジー“5選” (2/3) - ITmedia PC USER
現代PCの基礎知識(7):仕様書を紐解くとわかる―本当はややこしいUSB | Think IT(シンクイット)
NetBSD で USB デバイスを強制的に ugen(4) として attach したい - nikki
USB-PD Sniffer - The Chromium Projects
USB3.0のデバドラを書いてみた - livaの雑記帳
mvp/uhubctl: uhubctl - USB hub per-port power control
uhubctl/uhubctl.c at master · mvp/uhubctl
View any installed/connected USB device on your system
USB/Descriptor - SyncHack
www.picfun.com/usb02.html
エンドポイントとは | インターフェイス株式会社
USB/エンドポイント - おなかすいたWiki!
アドレスの設定 | ルネサス エレクトロニクス
USB HID クラス ‐ 通信用語の基礎知識
USB Human Interface Devices - OSDev Wiki
UEFI自作OS日記 v0.6.1 ゆ。 - 借り初めのひみつきち
Nerry さんはTwitterを使っています: 「USBマウスのブートプロトコルにはホイールのデータがないけど、通常のレポートデータの後に(規格外の)ゴミがつくことが許容されていて、実際にホイールだけ動かすと[0 0 0]のデータが飛んでくる。」 / Twitter
Nerry さんはTwitterを使っています: 「おそらくブートプロトコルモードのときはホイールのデータをマスクしていて、レポートプロトコルモードにするとゴミだった部分にホイールのデータが来ると思われる。 試した限りブートプロトコルモードでホイールデータが取れそうなマウスはなかった。」 / Twitter
Nerry さんはTwitterを使っています: 「GPDってどうもデータないときにinterrupt転送すると一瞬で0返す実装になってるぽくて、現在のXHCIドライバは一度に大量の転送するとURBが一時的に発行できない状態になるのでそれが原因な気がする」 / Twitter
Nerry さんはTwitterを使っています: 「GPD pocketがマウスに触った瞬間キーボード応答なくなる・・・」 / Twitter
Nerry さんはTwitterを使っています: 「最初のデバイスのIF 0がbootキーボードでIF 1が汎用HIDになってて、おそらくマウスを触るとIF 1のデータが詰まってキーボード側がうんともすんとも言わなくなる」 / Twitter
汎用的なBadUSB - 這いよれ Cracking Lab - Medium
WebのペリフェラルAPIに関わるセキュリティ懸念
FadisさんはTwitterを使っています 「WebHID: 特殊なゲームパッド等の標準的なAPIから扱えない入力デバイスをWebから扱えるようにするAPI。ユーザが許可した入力デバイスに対する生のアクセスが可能になる。デバイス屋さんは悪意あるWebページがデバイスのファームウェア書き換えるかもしれないから気をつけてね https://t.co/lgRifGMQ60」 / Twitter
WebHID API
FadisさんはTwitterを使っています 「で、このWebHIDが次のChromeから使えるようになる、と。まじかよ https://t.co/Gx1zWNp8Rn」 / Twitter
Chrome 86 Beta Enables Native File-System API By Default, WebCodecs Added - Phoronix

USB Sniffer

Event Tracing for Windows (ETW) の トレースプロバイダーリストを取得してみる - tech.guitarrapc.cóm
Download Microsoft Message Analyzer from Official Microsoft Download Center
百害あって一利無し!のAMD USB Filter Driverの削除方法 - PC破壊日記的ブログ
フィルタドライバ入門
フィルター ドライバー
レポート22:デバイスオブジェクト
[HOWTO] フィルタ ドライバに IOCTL を送信する方法
Windowsデバイスドライバ開発入門 - 人とか機械とか
USBView の中身を見てみる - Japan WDK Support Blog - Site Home - MSDN Blogs
USBView ってなに? - Japan WDK Support Blog - Site Home - MSDN Blogs
ユニバーサル シリアル バス (USB) (Windows Drivers)
デバイス ノードとデバイス スタック (Windows Drivers)
Windows-driver-samples/usb/usbview at master · Microsoft/Windows-driver-samples
Windows-driver-samples/LICENSE at master · Microsoft/Windows-driver-samples
新しい WDK (Build 10586) と EWDK を使ってドライバーをビルドするまで | Japan WDK Support Blog
重箱の隅のデバッグ(2) – エラーの意味を探る – JAPAN Platform SDK(Windows SDK) Support Team Blog
Microsoft/windows-driver-docs: The official Windows Driver Kit documentation sources
Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について – Japan WDK Support Blog
Windows 10 Anniversary Update で適用されたドライバー署名の新しいポリシーについて – Japan WDK Support Blog
USBディスクリプタ解析ツール usbview | Infinitegra TechBlog

コントローラ

EHCI

Enhanced Host Controller Interface - OSDev Wiki
Enhanced Host Controller Interface Specification
Enhanced Host Controller Interface Specification: Addendum
IntelチップセットのUSBの実装がいつの間にか変わってた件 - 人とか機械とか
ドキュメント一覧 | ルネサス エレクトロニクス
japan.renesas.com/products/soc/usb_assp/download/USB102-INFO-2-01J.pdf

xHCI

Twitter

その他

Yojiro UOさんはTwitterを使っています: "@syuu1228 xhciのspecを見直してみたら冒頭からこんなに強調してるんだよね。本当に実装ないのかなあ。 http://t.co/GHUmGzchPP"
Hiroki Satoさんのツイート: "今時なら xHCI の DbC が使えるものが多いので、それで我慢するしかないですね。UARTほど単純なものではないですが。… "

@NerryN3

histric-1

Nerry さんのツイート: "USBって規格上127個までだったと思うけどxHCIのデバイススロット32とか64しかない奴が多いんだけどもしかして127個も繋げない?"
Nerry さんのツイート: "Atom系→AddressDeviceまで進む Core系→EnableSlotが無視されるまたは死ぬ"
Nerry さんのツイート: "nopは反応あるのにenable slotするとなんとも言わなくなるのがよくわからんΣ(-᷅_-᷄๑)"
Nerry さんのツイート: "qemuだとなんの反応もないけと実機だと一応通信してるのか?… "
Nerry さんのツイート: "stall errorとtransaction error😩"
Nerry さんのツイート: "USBについて詳しくなっていくほどにUSBはHIDに向いてない規格だという気持ちが強まる"
Nerry さんのツイート: "USBの抜き差し検知できるようになった。 実質1ビットの入力ポートを手に入れたヽ(•̀ω•́ )ゝ✧"
Nerry さんのツイート: "まだ解放処理がうまくできてないから挿入時にenable slotすると2回目の挿入で死ぬ。 enable slot無効化したバージョンだと抜き差し自体は検知できるよになった"
Nerry さんのツイート: "disable slotもうまく動いたʕʘ‿ʘʔ… "
Nerry さんのツイート: "ん、なんか動き怪しいな・・"
Nerry さんのツイート: "細かいバグ修正とDisableSlot対応して抜き差しできるようになったくらいで全体的には進捗微妙(´・ω・`)"
Nerry さんのツイート: "AddressDevice終わったのにGetDescriptor出来てないし、今だにEnableSlotうまく動かない機種もある(´・ω・`)"
Nerry さんのツイート: "AddressDevice終わってもまだEndPoint有効になってない?"
Nerry さんのツイート: "進捗 ほとんどの環境で割り込みとEventRingは概ね動いている EventRingの動く環境でCommandRingは動いてNopCommandも反応があるが、EnableSlotが動く環境と動かない環境がある EnableSlotできる環境ではAddressDeviceも動く TransferRingが動く環境と動かない環境がある データ転送は全滅"
Nerry さんのツイート: "進捗じゃないなただの現状整理か"
Nerry さんのツイート: "昨日の進捗は AddressDeviceでInputContextとDeviceContextを混合してた間違いを修正 ポート抜き差しの通知に対応してDisableSlotできるようになった、ただし複数回抜き差しすると不安定"
Nerry さんのツイート: "xHCIデバイスとお話できるようになるまで手順多すぎだし必要な構造体も多すぎだし禿げる:;(∩´﹏`∩);:"

histric-2

Nerry さんのツイート: "やっとGetDescriptor出来た😡… "
Nerry さんのツイート: "GPD WIN… "
Nerry さんのツイート: "1個転送失敗しとるが"
Nerry さんのツイート: "USBデバイスってDEVICEのDESCRIPTORには実質ほとんど情報がない😩"
Nerry さんのツイート: "CONFIGRATION DESCRIPTOR + INTERFACE DESCRIPTOR 見えた あと1個なんかくっついてるぽいけどなんだろ… "
Nerry さんのツイート: "21ってHID DESCRIPTORか"
Nerry さんのツイート: "xhci.c 800行あってできることがコンフィグレーションのダンプ😩"
Nerry さんのツイート: "明日はバスドライバ作れるといいな"
Nerry さんのツイート: "今日の進捗 デバイスとお話しできた"
Nerry さんのツイート: "GET DESCRIPTORできるようになったということはUSBバスに信号流せるようになったということで、やっとひとつ上のレイヤーに進める。"
Nerry さんのツイート: "xhciは複数のデバイスのリクエストを非同期に処理するけど、port status changeからaddress deviceまではevent trbで区別できるけどそれ以降の普通のUSBプロトコルの転送はtrb見ただけだと何の転送かわからない"
Nerry さんのツイート: "ひとつのリクエストを処理中は他のリクエストを受け入れないようにすれば区別が容易だけど、それは頭悪い。 デバイスごとにthread作って管理するのも大袈裟な感じがする。 fiber使うのがいいのかなぁ"
Nerry さんのツイート: "デバイスのコンフィグレーションの段階になるとひとつのdescriptor読み込んで処理してつぎのdescriptor読み込んで処理してみたいな感じになるので転送ごとに処理を区切るのは現実的ではない"

histric-3

Nerry さんのツイート: "configuration descriptorのサイズ見て読み直してるヽ(•̀ω•́ )ゝ✧… "
Nerry さんのツイート: "読み込み待ちがゴミのように適当です"
Nerry さんのツイート: "あとはendpoint descriptor見つけてごにょごにょすれば入力できそうな予感"
Nerry さんのツイート: "descriptor解析するとこうなる… "
Nerry さんのツイート: "boot interfaceしかサポートしてないHID実は多い?"
Nerry さんのツイート: "configure endpointうまくいかない"
Nerry さんのツイート: "きのうのしんちょく ホストコントローラードライバーとバスドライバーを分離した ディスクリプター読み込んでごにょごにょ configure endpointは成功しなかった"
Nerry さんのツイート: "fiber未実装なのでデバイスごとにthreadで仮実装 転送やコマンドの実行結果をデバイスに返す手段がまだない"
Nerry さんのツイート: "HIDかどうかはもう認識できてるのでHIDのポーリングはやろうと思えばできるのか?"
Nerry さんのツイート: "config endpoint動いた。 キー入力まであと一歩!… "
Nerry さんのツイート: "qemuではキー入力取れた。… "
Nerry さんのツイート: "実機ではうまくいかない:;(∩´﹏`∩);:"
Nerry さんのツイート: "なんかtimeout起こしてるぽいな。interrupt転送の仕様よく分からん:;(∩´﹏`∩);:"
Nerry さんのツイート: "transaction errorってどういうことだ:;(∩´﹏`∩);:"

Nerry さんのツイート: "じつはmoeは最初からHID前提で作ってたのでキーコード読めれば入力できる (6key対応してない手抜きだが)… "
Nerry さんのツイート: "ん、一部のデバイスがbabble error返してUSBトランザクション壊れてHIDのデータ転送まで悪さしてるのか"
Nerry さんのツイート: "babble errorどうすればいんだ…"
Nerry さんのツイート: "🤔 > A babble error occurs when the hots computer or the device receives more data than the specific maximum packet size."
Nerry さんのツイート: "しばらくほっといたらやばなってた… "
Nerry さんのツイート: "なんかdescriptorがめちゃくちゃでかいデバイスあってバスおかしくなってるみたいだけど…"
Nerry さんのツイート: "というかdevice descriptorにpacket size 64って書いてるのに9バイトのデータ読み取り失敗してどうするんだ"
Nerry さんのツイート: "きのうのしんちょく configure endpointできた qemuはget reportもinterrupt inも動いてキー入力できた 実機は動かない"
Nerry さんのツイート: "babble error解消したけど肝心のHIDがtransaction error直らん"
Nerry さんのツイート: "normal trbしか送ってないのにtransactionもくそもないのだが・・・"
Nerry さんのツイート: "HIDってクラス030000と030101と030102だけだと思ってたら意外と別のクラスのデバイスが存在してた 仕様書にも乗ってないデバイスはどうしたらいんだ"
Nerry さんのツイート: "030300番台ってHID仕様書にものってない謎デバイスなんだが…… "
Nerry さんのツイート: "うまく動かないのこの機種固有の問題ではないかと他の機種で試すと起動しないかboot keyboardサポートしてない:;(∩´﹏`∩);:"
Nerry さんのツイート: "virtual box割り込み動かんけどイベントポーリングしたらUSB認識しよった… "
Nerry さんのツイート: "試しにキーボード繋いでみたら普通にキーボード読めた🤔… "
Nerry さんのツイート: "configure endpointでちゃんと1返ってきてからのtransfer commandでendpoint not enabled error😩"
Nerry さんのツイート: "実機でデバイスとお話しするところまで行けなくてその上のレイヤーに行けない😭"
Nerry さんのツイート: "xhciドライバエミュレータではそこそこ動いてるけど実機だとうまく動かんどころかUSB接続した瞬間再起動するバグもあるので本流に乗せれない😿"
Nerry さんのツイート: "qemuでは概ね動く vboxは割り込み動かないけどポーリングなら動く ほとんどの実機でport status changeは動く(時々割り込み止まる enable slotがうまく動かない機種がある descriptorとれてendpoint設定できる機種でも読み込みが動かない"
Nerry さんのツイート: "初期のsurfaceはシリーズ違ってもキーボードコネクタ互換あったけど、同じような見た目でも結構中身違うんだな。… "
Nerry さんのツイート: "surface 3pro type coverは USB HID 03000 surface 3 type coverはUSB HID 030300 surface 2? type coverはI2C HID"
Nerry さんのツイート: "同じコネクタでUSBとI2Cが同居してる。いったいどんな規格だ"
Nerry さんのツイート: "これ、初代surfaceに繋ぐとUSBになってsurface3に繋ぐとI2Cになる・・・(RTは今試せず"
Nerry さんのツイート: "初代RTで試したら何を繋いでもI2Cになった🤔"
Nerry さんのツイート: "まとめ 初期のsurfaceキーボードコネクタはUSB HIDとI2C HIDのデュアルスタック RT系デバイスに繋ぐと基本I2C、Pro系に繋ぐと基本USBで繋がる。一部例外がある"
Nerry さんのツイート: "どうでもいいことに時間を費やした。そして久々にRT起動した。"

@uchan_nos

histric-1

OS作れないマン WalB担当さんのツイート: "xHCIのリングバッファの実装方法おもろいな。書き込みポインタが一周するたびに「周回ビット」を反転させて、その周回ビットをリングバッファの各要素に書き込んでおくらしい。読み込み側も周回ビットを独自に持っていて、周回ビットと要素のビットが等しいなら有効なデータだとして処理。"
OS作れないマン WalB担当さんのツイート: "ソフトウェア側が読み込みポインタを更新すると、xHCはそこまでの要素が処理し終わったと認識するらしい。ということは、そのメモリ位置への書き込みがコンパイラ、またはCPUでリオーダされないようにしないと微妙にバグりそうだ。"
OS作れないマン WalB担当さんのツイート: "QEMUのxCHIドライバのソース読んだら規格と全然違う実装してあってこりゃ動くわけないぞ"
OS作れないマン WalB担当さんのツイート: "CRCRレジスタ唯一有用なビットをマスクしちゃってたらそりゃ0になるわ。さらに規格で「読みだすと0」になるべきビットをマスクしてなかったり。"
ファッション自作OSマンさんのツイート: "livaさんにuioでxHCIドライバを書く際に気をつけることを教わった。それは、xHCIサポートを外したカーネルを使うということ。サポートを外しておかないとカーネルと自分のドライバが競合する。"
ファッション自作OSマンさんのツイート: "xHCIドライバをまずモジュールにしつつ、自動読み込みしないようにしておく。"
ファッション自作OSマンさんのツイート: "QEMUのxHCIドライバにNo-Op Commandが実装されてない.悲しみ."
ファッション自作OSマンさんのツイート: "自作OSのxHCIドライバに割り込みに対応する機能を追加した。これでコマンド発行から完了通知割り込みまではできるようになった。次はUSBデバイスがポートに接続されたのを検知する機能と、ポートの初期化部分を書く。"
x86-64-128さんのツイート: "xHCIのUSBSTS.CNR(Controller Not Readyビット)が0になれば大丈夫だと思っていたら,そのビットだけの検査では不十分で,USBSTS.HCRST(Host Controller Resetビット)が0になるのを待つ必要があるっぽい."
x86-64-128さんのツイート: "USBCMD.HCRSTが0になるのを待つようにしたらすこぶる快調である."
x86-64-128さんのツイート: "再設計したUSBドライバによるキーボード読み取り成功"
技術書典4 け-51 x86-64-128さんのツイート: "少なくとも「USB 3.0 設計のすべて」という書籍より,xHCIのドライバ部分の記述は具体的になっている.例えばデフォルト・コントロール・パイプのMax Packet Sizeの決定方法について,その本には書いてないが僕の本にはある."

OS開発ゼミ担当 uchan_nosさんのツイート: "昨日の調査まとめ.USBの受信が遅いなーと思っていたのは,どうやらエンドポイントのbIntervalに左右されていた.64msに1回しかポーリングしないようになっており,キーボード入力がそれよりちょっと遅いと,とたんに128ms周期になってしまい,取りこぼす."
OS開発ゼミ担当 uchan_nosさんのツイート: "作戦としてはバッファを大きくしつつ,データ量が少ない時にshort packet割り込みを発生させれば,もし1入力しかなくてもすぐ入力できるし,複数入力が待機しているときも全部入力できるかなーと."
OS開発ゼミ担当 uchan_nosさんのツイート: "MinnowBoard Turbotに搭載のxHCIって,もしかしてShort Packet割り込みが発生できない?"
OS開発ゼミ担当 uchan_nosさんのツイート: "Short Packetについて勘違いしていたっぽい.Short Packetは基本的には1パケットのバイト数がwMaxPacketSizeに満たないときに発生するのであって,私が使っているキーボードのwMaxPacketSizeは8だから,絶対にShort Packetにはならない."
OS開発ゼミ担当 uchan_nosさんのツイート: "ふーむ.すると64msのポーリング周期で取りこぼさないようにするにはどうすれば?"
OS開発ゼミ担当 uchan_nosさんのツイート: "僕が使っている外付けキーボードがポンコツなんだろうと思ってLinux機に挿したらめっちゃ快適に入力できたんで,どうやら悪いのは自作ドライバの方だ"
OS開発ゼミ担当 uchan_nosさんのツイート: "キーボードのInterrupt INに対応するTransfer Ringに事前に複数のTransfer TRBを積んでおけば取りこぼさないだろうと思ったんだけど,依然として取りこぼすな."
OS開発ゼミ担当 uchan_nosさんのツイート: "OVMFのxHCIの実装を見た感じ,どうやら1msに1回の頻度でTransfer TRBの完了を監視していて,完了してたら次のを投げる,みたいにしてる感じがする."
OS開発ゼミ担当 uchan_nosさんのツイート: "え,USBデバイスのEndpoint Descriptorに書いてあるbIntervalの値ってなんなの?参考程度の情報?bIntervalより小さな値を設定すると,ちゃんとインターバルが縮まるんだけども."
OS開発ゼミ担当 uchan_nosさんのツイート: "よっしゃ.キーボード入力の取りこぼしがなくなった"
OS開発ゼミ担当 uchan_nosさんのツイート: "英語の数式表現がよくわからないんですけど,これってどういう計算すればいいんですかね round X down to the nearest base 2 multiple of Y * 8"
OS開発ゼミ担当 uchan_nosさんのツイート: "解明できてきたけど、まだ "nearest base 2 multiple of Y * 8" が謎… "
やめるのだフェネックで学ぶC++さんのツイート: "ご参考までに、以下のコードではround~2を、2のべき乗単位に切り下げるという意味で使っているようです(floorBase2関数 : Utils.h, Utils.cpp)。間違っていたらすみません。 https://t.co/L76z73Qy2N… "
OS開発ゼミ担当 uchan_nosさんのツイート: "USBホストコントローラのIntervalに設定する値が切り捨てなのか切り上げなのかの謎は、結局完全に解決はできなかった。round downと書いてあるのを鑑みると切り捨てっぽいな、という感じだけど、英文が完全に解読できたわけではない。"
uchanさんはTwitterを使っています 「最近、UEFIのUSBホストコントローラドライバの実装を読んでるんですけど、まだ最初の方なのに知らなかったことがいくつかあって参考になりますねこれ。」 / Twitter
uchanさんはTwitterを使っています 「「いくつかのサードパーティのxHCI外付けカードは64ビットレジスタアクセスをサポートしてないから32ビット×2回で書き込みます」っていうコメントがあったりして趣深い(仕様書読んでるだけじゃ絶対に手に入らない知識)」 / Twitter
uchanさんはTwitterを使っています 「USB ドライバのデバッグをしていて、完璧ではないけどかなり前進した。以前まではUSBホストコントローラの動作を開始した直後にシステムがフリーズしていたのだけど、今はご覧の通り、正常に起動するようになった。完璧ではないと言うのは、キーボードとマウスが使えないこと。 https://t.co/MdNjxJpykY」 / Twitter
uchanさんはTwitterを使っています 「原因を完結にまとめておく。USBLEGSUP拡張レジスタにXHCの所有権を表すビットがあり,そのBIOSビットが立っていたのが原因。UEFIが所有権を持っているのにOSがXHCを起動しようとしたから処理が競合したらしい。USBLEGSUP.OSを1にして所有権を要請し,所有権がもらえてから操作したら大丈夫だった。」 / Twitter
uchanさんはTwitterを使っています 「マウスとキーボードが動かないのは,この実験用PCに謎に2つのxHCIが載っているから説。自作OSでは最初に見つかったxHCIだけを親だと思うから… https://t.co/226CDE3Qv3」 / Twitter
uchanさんはTwitterを使っています 「xHCIのCRCRに関する仕様,ほぼ同じで若干違う表現が使われてるの気になる。なんだろう? RCS: Reading this flag always returns ‘0’. CS: Reading this bit shall always return ‘0’. CA: Reading this bit always returns ‘0’. Command Ring Pointer: Reading this field always returns ‘0’.」 / Twitter
uchanさんはTwitterを使っています 「flagとbitで変えてる意味が分からない。fieldは,まあそれが1ビット幅じゃないから分かる。shallの有無もよく分からない。」 / Twitter
tamura🍺さんはTwitterを使っています 「@uchan_nos なんとなく,shallがついてると「そうではない場合がある (そうではない時は何かがおかしい)」と言いたいのかなと.flag と bit はなんだろう… RCSって0ビット目でしたっけ?であればシフト演算なしに取り出せるからflag??? bitはビットマスクで取り出す的な??? わからん」 / Twitter
uchanさんはTwitterを使っています 「@y7amura Shallについては,なるほど… flag/bitは,RFLAGSレジスタにたくさんの「hoge flag」があることを考えると,ビット0だけをflagと呼ぶ,というのは若干眉唾ですね… 分からないですねw」 / Twitter
uchanさんはTwitterを使っています 「パワポのテンプレートってほとんど作ってこなかったんだけど,ふいに作りたくなって作った。シンプルな感じで仕上がった。 https://t.co/4CZaNhl2VT」 / Twitter

@liva

Fadisさんのツイート: ".@liva_jyxHCI さんの「(USB3.0 HC)デバドラを自作してみよう」が始まります #kernelvm"
Fadisさんのツイート: "「みなさん、USB使いますよね?デバドラ書いたことありますか?」って煽ろうとしたら前回のカーネル/VMでもうデバドラ書いてる話が出てたwww #kernelvm"
Fadisさんのツイート: "USB 3.0通信速度みたいな物理的な側面が進歩として有名だけど、「USBデバイスたるもの持っていなければならない情報」が大幅に増えてソフトウェアがデバイスの事をより詳しく知って扱えるようになったことも大きいんだよな #kernelvm"
Fadisさんのツイート: "USB1.1/2.0ではCompanion Host Controllerで使用するコントローラを選択して、それぞれのコントローラに対するドライバでデバイスを叩いていたが、3.0では1.xから3.xまでの全てのデバイスが期待するプロトコルをxHCIホストコントローラが喋るようにな… https://t.co/B5TiVlRMdj"
Fadisさんのツイート: "自作OSをしていると、ネットワークサポートとUSBサポートを作らないと基本的人権が満たされない #kernelvm"
Fadisさんのツイート: "自作OSへのUSB 1.1と2.0のホストドライバの実装の経験から3.0のドライバは絶対書きたくないと思ったが飲み会で作ると宣言してしまい3ヶ月かけて実装した、と #kernelvm"
Fadisさんのツイート: "品質が心もとない自作OSの上でデバイスドライバの開発を行うと問題が起きた時どちらの問題かわからなくて開発が難航する → uio(User space IO)を使ってとりあえずLinux上でドライバの開発を行う #kernelvm"
Fadisさんのツイート: "発表者「NetBSDがやっているなら僕でもできる」 #kernelvm"
Fadisさんのツイート: "CPUいじめてSEGVしちゃうどっかの人 #kernelvm"
Fadisさんのツイート: "UIOでユーザ空間でドライバの開発を行うとlibcが使えるので開発時の生産性が上がる → そうして動くところまで持って行ってからカーネルに移す #kernelvm"
Fadisさんのツイート: "xHCIホストコントローラはUSB 3.0の速度でスループットを出せるようにインターフェスがEHCIから大きく変更されている #kernelvm"
Fadisさんのツイート: "xHCIでは接続されたデバイス毎にslotと呼ばれるリングバッファが確保される #kernelvm"
Fadisさんのツイート: "xHCIのリングバッファはバッファの最後の値をnextとするリンクリストでしかなくどのくらいの長さのループにするか等はソフトウェアレベルでコントロールできる #kernelvm"
Fadisさんのツイート: "xHCIではハブにつながっているデバイスも全てホストコントローラで面倒を見る #kernelvm"
Fadisさんのツイート: "HHKBを繋いでテストしようとしたらHHKBが後ろについているUSB端子のためにハブを積んでいてなぜかハブのドライバを書く羽目になった、と #kernelvm"
k/vm 関西#8 - Google ドライブ
liva/xhci_uio
雑記(10月〜12月) - livaの雑記帳

@t_hash425

t_hash425さんのツイート: "USB3 hubのHS部分が不定期にdisconnectされる件、いろいろやってたらFでも起きることに気付きテスト用のが当たりhubと判明した ケーブル替えたりLPMいじったりこんなに時間かけて一体なんだったのか"
t_hash425さんのツイート: "FでもIntelさんのxHCはattachするごとに空いたslotでなく次のslotを使うらしく、このhubをつないでおくとデバイスのアドレスが1ずつ増えてく Nではずっとやってると無反応になる"
t_hash425さんのツイート: "Nのxhci.cの実装だとIntelさんのxHCがctrl xferでのLINK TRBをうまく処理できないぽい Intelさん以外だと起きない"
t_hash425さんのツイート: "そういやaddr = XHCI_SCTX_3_DEV_ADDR_GET(le32toh(cp[3]))のle32tohを忘れてる big endianだと動かなさそう"
t_hash425さんのツイート: "r1.63で直したつもりのLink TRBの扱いの件が直ってなかった 前回のテストではi/f upしt確認していたが、!IFF_UPのままifconfig axe0を連射すると7回目で刺さる"
t_hash425さんのツイート: "xfer ringの255番目にLink TRBが置かれるとTDが無視されるようにみえるが(ただしIntelさんに限る)、upしてるとtick taskが定期的にctrl xferを流すので問題が隠れてしまっていたと思われる"
t_hash425 @t_hash425

@ryo_on

Ryo ONODERAさんはTwitterを使っています: "XHCI_TRB_3_EP_GET(trb_3)=1か。"
Ryo ONODERAさんはTwitterを使っています: "でも、xHCI 1.1によるとroute stringというのはSuperSpeedのために必要なものであるらしいので、HighSpeedしか扱わないのであれば必要ないか。"
Ryo ONODERAさんはTwitterを使っています: "帰りにxhci 1.1 specを読んでいたのだが、疑問に思っていたことが次々と書いてあって、やっぱりちゃんと読まないといけないと思ったのであった。"
Ryo ONODERAさんはTwitterを使っています: "紙でxhci 1.1 specを持っていたら読むのは楽だと思ったが、500 pagesはちょっと持ち歩けない。"
Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.10.2.3に、一応解説があるようなので読んでみる。"
Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.6.5 Address Deviceを読んでみる。"

EXtensible Host Controller Interface - OSDev Wiki
www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
セカンド・オピニオン (345) USB 3.0の研究(72) | マイナビニュース
セカンド・オピニオン (346) USB 3.0の研究(73) | マイナビニュース
セカンド・オピニオン (347) USB 3.0の研究(74) | マイナビニュース
セカンド・オピニオン (348) USB 3.0の研究(75) | マイナビニュース
セカンド・オピニオン (349) USB 3.0の研究(76) | マイナビニュース
IDF 2013 - USB 3.1や新規格「Media Agnostic USB」などUSB関連を総まとめ (1) 2倍の転送速度を目指すUSB 3.1 | マイナビニュース
USB Type-Cのspecを少し読んだので解説する - 人とか機械とか
SkylakeではXHCI(USB 3.0)のみのサポートとなる: 98のWeblog
規格の1mを超える転送が可能に:USB 3.1 Gen2の転送距離を延ばすマルチプレクサー - EE Times Japan
ERI USB-Audio用USBを考える
【レビュー】ASUSのプロトタイプで10Gbps対応になったUSB 3.1を試す - PC Watch
【大原雄介の最新インターフェイス動向】USB 3.0 その5 - PC Watch
uio_pci_genericでデバドラを書く<その1> - livaの雑記帳
uio_pci_genericでデバドラを書く<その2> - livaの雑記帳
uio_pci_genericでデバドラを書く<その3> - livaの雑記帳
USB Memo · osdev-jp/osdev-jp.github.io Wiki
【技術書典4】USB 3.0 ホストドライバ自作入門を出します(ダウンロード頒布有) - uchan note
USB3 host driver program structure
moe の xHCI / USB 実装 - 借り初めのひみつきち
USB/xHCI インタラプト転送の罠 - 借り初めのひみつきち
最小限の USB Hub 対応 - 借り初めのひみつきち
USB3.0ドライバ開発の道 - uchan note
USB3.0ドライバ開発の道

USB ASSP | ルネサス エレクトロニクス

UCSI

FAQ: Windows システムの USB Type-C コネクタ (Windows Drivers)
USB Type-C Connector System Software Interface (UCSI) driver (Windows Drivers)
USB Type-C Connector System Software Interface Specification
Winhec_USBTypeCIntroductionandImplementationinWindows10.pdf
USB 3.1 Electrical Design
USB_Type-C_challenges-jp.pdf
BIOS Implementation of UCSI
USBC000って何だ? - Speaker Deck
ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (2/2)|Windows Info
ASCII.jp:Windows 10とUSB Type-Cとの関係を深掘りする (1/2)|Windows Info
ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (1/2)|Windows Info

ストレージ

USB MASS

SCSI

SCSI command - Wikipedia
SCSI CDB - Wikipedia
SCSI Status Code - Wikipedia
Fadisさんのツイート: "SCSIコマンド、歴史的な理由で大量にあるから、自分が使うコマンドだけ使えれば良いイニシエータ側の実装は簡単だけど、多様なコマンドに備える必要があるターゲット側の実装は物量的な意味で容易ではないんだよな"

SFF-8020i/MMC-2(ATAPI)

AT Attachment 8 - ATA/ATAPI Command Set
sff8020i.pdf

USB Floppy Interface(UFI)

Microsoft Word - usbmass-ufi10.doc

マスストレージクラスコマンドセット | インターフェイス株式会社
USB mass storage device class - Wikipedia
USB Mass Storage Class Devices - OSDev Wiki
Microsoft Word - usb_msc_boot_1.0.doc
USB/Class/Mass-Storage - SyncHack
www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf
labo.nshimizu.com/thesis/b2003/0aet1132.pdf
実践しながら学ぶ Android USBガジェットの仕組み(11):Android USBパケットをキャプチャーし、UMSプロトコルを解析する!! (1/3) - MONOist(モノイスト)
実践しながら学ぶ Android USBガジェットの仕組み(12):Android USBマスストレージクラスのパケットを理解しよう! (1/3) - MONOist(モノイスト)
実践しながら学ぶ Android USBガジェットの仕組み(13):UMSクラスドライバを改造し、Androidを“CD-ROMドライブ”として認識させる!! (1/3) - MONOist(モノイスト)
Fadisさんのツイート: "USBマスストレージと通信するプロトコルとして古くから用いられているBulk Only Transportでは、SCSIコマンドをデバイスに投げる→コマンドにデータが伴う場合はデータを受ける|投げる→コマンドの結果をデバイスからもらう の3つの状態の繰り返しでデータを読み書きする"
Fadisさんのツイート: "USBMSがリトルエンディアンで、その上に乗ってるSCSIがビッグエンディアンで、それ投げて返って来るパーティションテーブルがリトルエンディアンなの、個々の規格には何も問題がないけどくっつけると優秀なトラップになってる"
マスストレージクラス転送方式 | インターフェイス株式会社

UASP

USB Attached SCSI - Wikipedia, the free encyclopedia
デュアルソケット・ザ・ワールド Windows 8 で USB3.0 の UASP を ENABLE(有効) にする方法
価格.comマガジン ランダムライトが約3倍高速に! Windows 8で高速化するSSDケース
セカンド・オピニオン (336) USB 3.0の研究(63) | マイナビニュース
セカンド・オピニオン (337) USB 3.0の研究(64) | マイナビニュース
セカンド・オピニオン (338) USB 3.0の研究(65) | マイナビニュース
セカンド・オピニオン (339) USB 3.0の研究(66) | マイナビニュース
セカンド・オピニオン (340) USB 3.0の研究(67) | マイナビニュース
ASCII.jp:USB 3.0対応HDDが速くなる? Windows 8でのUSBの仕組み (1/3)|塩田紳二のWindows 8 IN-N-OUT
UASPとは|USB Attached SCSI Protocol - 意味 / 定義 / 解説 / 説明 : IT用語辞典
UASP ‐ 通信用語の基礎知識
USB 3.0 Boost ‐ 通信用語の基礎知識

MTP

第653回:MTP接続 とは - ケータイ Watch Watch
メディア転送プロトコル - Wikipedia
Media Transfer Protocol - Wikipedia, the free encyclopedia
Microsoft and FotoNation Team to Support the Media Transfer ProtocolFor Wireless Digital Still Cameras | News Center
【Android】USB接続時のMTP/PTPモードを切替える方法 | TeraDas-テラダス
Media Transfer Protocol Specification
AndroidのUSB接続は説明した:MTP、PTP、およびUSBマスストレージ
MTP (Media Transfer Protocol) ‐ 通信用語の基礎知識
Download Media Transfer Protocol Enhanced Specification from Official Microsoft Download Center

PTP

画像転送プロトコル - Wikipedia
Picture Transfer Protocol - Wikipedia, the free encyclopedia
pima15740-2000.pdf
ISO 15740:2005 - Photography -- Electronic still picture imaging -- Picture transfer protocol (PTP) for digital still photography devices
PTP (Picture Transfer Protocol) ‐ 通信用語の基礎知識

Rufus - 起動可能なUSBドライブを簡単に作ろう
pbatard/rufus: The Reliable USB Formatting Utility
ブータブルUSBドライブ作成ツール「Rufus」がメジャーバージョンアップ、v3.0に - 窓の杜

ベンダ固有

FTDI

USB/Class/Serial - SyncHack
FT232R
FTDIドライバにおけるLatancyTimerについて
Linux/drivers/usb/serial/ftdi_sio.c - Linux Cross Reference - Free Electrons
FTDI Knowledgebase
uftdi(4)
Linuxで高速なUARTを使ってみた - Qiita

PaSoRi

libusb

libusb - Wikipedia, the free encyclopedia
libusb-win32 download | SourceForge.net
libusb
libusb-1.0 API Reference
libusb-1.0.18
hiro99ma blog: libusb-1.0はzadigを使うべし
libusb-1.0のメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
平坂久門ただいま失業中: libusb-1.0でUSBデバイスのEPをR/Wするサンプルプログラム
libusb
libusbについて - Linux工作室

WinUSB

WinUSBデバイスとシリアル通信するには | garicchi.com
WinUSB (Winusb.sys) (Windows Drivers)
Daisuke Kobayashi - WinUSB で USB デバイスと通信 1 - 概要
第157号(2012年3月7日発行) 技術レポート「WinUSBを用いたWindowsアプリケーション開発」|ソフテックだより|株式会社ソフテック
WINUSBの簡単な初歩や基本的な使い方・利用方法・仕様方法・やり方 | 初めての利用方法や使用方法・初心者でも簡単 使い方ラボ
WinUSB.sys事始め/ウェブリブログ
WinUSB - AVR etc

libpafe

libnfc

NFC Tools
libnfc: libnfc reference manual
MacでPasoriでNFCカードを読んでみる(libnfcを使って) | 9ensanのLifeHack
RC-S330をLinuxで使う | 團長の小部屋
nfc-tools/libnfc: Platform independent Near Field Communication (NFC) library

libpafe
gsuica
suica_plugin
GEdy
edy_plugin

libpasori

libpasori - RC-S320操作コード
PaSoRi/RC-S320 - osdev-j (MMA)

PC/SC

NFC - Web Application Programming Wiki*
NFC/PC_SCサンプル - Web Application Programming Wiki*
スマートカード
スマートカードサブシステム
PC/SC Workgroup
pcsc-lite: API
Zinnia hacks tomorrow.
NFC 入門 | TipsZone

nfcpy

nfcpy in Launchpad
Python module for near field communication — nfcpy trunk documentation
Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る | 傀儡師の館.Python - 楽天ブログ
nfcpyでお手軽NFC開発[1/2]
nfcpyでお手軽NFC開発[2/2]
raspberry piでSuicaの履歴の表示 | TomoSoft
Raspberry Pi 2 で NFC (FeliCa) を使えるようにする - しばやん雑記
RaspberryPiとICカードリーダ - アラのアラアラしい日記
Raspberry Pi に nfcpy をインストールする手順 - 2016年3月 私家版 : @jsakamoto
OS作れないマンさんのツイート: "nfcpyのGetting Started通りにやるだけでは、複数のsystem codeを持つNFCはうまく扱えない。on-discoverコールバックの中で、引数targetのsensf_resメンバを強制的に書き換えることで対処。"
OS作れないマンさんのツイート: "もっと単純に idm, pmm = tag.polling(希望のsystem code) tag.idm, tag.pmm, tag.sys = idm, pmm, 希望のsystem code とすれば万事OKだった。"
nfcpy で複数の System Code を持つ NFC タグを扱う方法 - uchan note

IC SFCard Fan
PaSoRi - Wikipedia
Sony Japan | FeliCa | 法人のお客様 | 製品情報 | ICS-D010・D004・D002・D003
Sony Japan | FeliCa | 法人のお客様 | 技術情報/FeliCa技術方式の各種コードについて
hiro99ma blog: RC-S380はRC-S370ではない
hiro99ma blog: [win8]RC-S380のデバイスドライバ/ライブラリ
Jさんのツイート: "Today, JR East explained global NFC phones will support Mobile Suica in the future. https://t.co/f6lZG7tmAg"
Sony Japan | FeliCa | 個人のお客様
iPhoneでモバイルSuicaが使えるようになる? - NFC対応スマートフォンにFeliCa搭載という流れ (1) NFC Type Fの採用が決め手となる | マイナビニュース
iPhoneがおサイフケータイ(FeliCa) に対応か。Apple Payが間もなく日本上陸 - Engadget Japanese

DirectInput と XInput - 借り初めのひみつきち
FadisさんはTwitterを使っています 「linux-5.7からiPhone等の急速充電ドライバが入るらしい。iPhoneはUSBで接続された時点では0.5A以下で充電を行うが、急速充電デバイスに書き込みがあると2.5A吸って充電するようになる。専用の充電器はこの書き込みを行なうが、同様の操作をlinuxカーネルが出来るようになる https://t.co/tUni6BNsRM」 / Twitter
Linux 5.7 To See USB Fast Charge Support For Apple iOS Devices - Phoronix
FadisさんはTwitterを使っています 「ただし、これを有効にするとiPhoneは遠慮なく2.5A吸いに来るが、ハードウェアがそれをして大丈夫なハードウェアかどうかは別問題」 / Twitter

HID

FIDO U2F

HUTRR48.txt - Notepad
FIDO Alliance Download Specifications - FIDO Alliance
FIDO U2F HID Protocol Specification
v2f.py/u2fhid.py at master · concise/v2f.py
u2f/hid.go at master · flynn/u2f
Yubikeys overall overview - WIP

Twitter

Livaさんのツイート: "USBキーボードからのパケット(実機)、1つのキーを押している時はTransfer Descriptor内にキーデータが入らない(1つ処理されて割り込みは入る)のだけど、2つ以上キーを同時押しするとデータが入る #liva_notebook"
Livaさんのツイート: "何言ってるのか自分でもワケワカメなんだけど、要はAならAだけ押した時、自作OS側からはどのキーを押されたかが分からない(何かが押された事は割り込みが来るから認識できる)のだけど、Shift + Aだと、ShiftとAの双方が押された事がわかる #liva_notebook"
Livaさんのツイート: "freebsdのコード読むと https://t.co/PArc0Pgn80、ukbd_interruptでパケットを読んだ後で、ukbd_read_charでもう一文字読んでるような気がするのだけど・・・わからぬ #liva_notebook"
Livaさんのツイート: "もう一文字読んでるってのは、単一のキーしか押されてない場合、Interrupt Transfer以外の別の仕組みでキーを読んでるのかなぁ、と推測 #liva_notebook"
Livaさんのツイート: "もっとDevice Class Definition for Human Interface Devices (HID) https://t.co/mhqn81LOIR を読み込まなければならぬ #liva_notebook"
Livaさんのツイート: "寝ぼけてた。ukbd_put_keyでsc->sc_inputsをインクリメント、デクリメントして、その値が0だったらukbd_event_keyinputでreturnしちゃうからukbd_read_charにたどり着くわけない #liva_notebook"
Livaさんのツイート: "要するに、ukbd_read_charでもう一文字追加でどっかから読んだりなんてしてない #liva_notebook"
Livaさんのツイート: "えー、じゃあやっぱ単一キーを押した時にキーデータが送られてきてないように見えるけど、自作OSのバグなのかなぁ #liva_notebook"
Livaさんのツイート: "困った時のfreebsdという事でfreebsdで先程のコードにprintf仕掛けたら、一文字のときもちゃんとInterrupt Transferにキーデータが流れてきている模様。という事は自作OSのバグか・・・ #liva_notebook"
Livaさんのツイート: "問題の切り分けはできたけど、Interrupt Transferのデバッグやらなきゃいけないの、やだなぁ #liva_notebook"
Livaさんのツイート: "ん、ちょっと勘違いしてたぞ。keycodeの取得をやってるのは、 https://t.co/3KsSAPpFar か #liva_notebook"
Livaさんのツイート: "まあ結局単一キーでもちゃんと取得できている事には変わらないけども #liva_notebook"
Livaさんのツイート: "お、 https://t.co/t5fj3AOBmV これダンプすれば良さそう #liva_notebook"
Livaさんのツイート: "やっぱ単一キーでもちゃんとパケット来てるんだよなぁ #liva_notebook"
Livaさんのツイート: "お、IOAPICのEOI registerの実装が入ってたのか、これは最新版を使うしかあるまい https://t.co/09mUxTV4NG #liva_notebook"
Livaさんのツイート: "正直に言うと、EOI registerを使わない手法がバグってる #liva_notebook"
Livaさんのツイート: "この件、解決した。連続で同じレジスタ(MMIO) にwriteするのだけど、何も考えずに実装したのでコンパイラによって2つのwriteが1つに握りつぶされていた。asm volatile("":::"memory")を挟んで解決 #liva_notebook https://t.co/B5Zd22a0Kn"
Livaさんのツイート: "USBキーボードにはBoot ProtocolとReport Protocolがあってそれぞれ異なる方法で入力を返すのか。HID Specificationを読んでてよくわからなかったのだけど、やっと少し理解できた。 #liva_notebook"
Livaさんのツイート: "うーん、Boot Protocolをセットするのが問題でもないのか。。。 #liva_notebook"
Livaさんのツイート: "Interrupt Transferの2つに1つがパケロスしてるのではないかという仮説を立てた #liva_notebook"
Livaさんのツイート: "2つに1つ消えているという仮説から、data toggleをしてないのがいけないのではないかと思って設定してみた所、usb keyboardが実機で完璧に動いた!! #liva_notebook"
Livaさんのツイート: "interrupt transferにはdata toggleに関する記述が無かったからこれまで設定してこなかったのだけど、isochronous transfer以外はちゃんとdata toggleをしましょう #liva_notebook"
10/27,28はOSC Tokyoさんのツイート: "自作OSのために作ったUSBホストドライバ+HIDキーボードドライバの動作をシーケンス図にしてみた.結構苦労してプログラムしたけど,苦労するだけあるわ.絵のレベルでも凄い複雑だもん.… "
NerryさんはTwitterを使っています: 「HIDクラスって本来3.0.0か3.1.1か3.1.2しか存在しないはずだけど、たまに3.0.1とか3.0.2って名乗ってる変なデバイスあるし、3.3.0ってなんだよsurface」 / Twitter
FadisさんはTwitterを使っています 「Googleが謎のUSB HID moonballのdevice IDを追加するパッチをlinuxに投げてきた話。Googleは過去にも謎のデバイスHammerのドライバをlinuxに追加しており、これは後に出た一部のChromebookで利用されているが、moonballはhammer-likeなデバイスであると説明されている https://t.co/y3EAUysdj5」 / Twitter
Google "Moonball" Will Be Supported By Linux 5.7 - Phoronix

www.usb.org/developers/hidpage/Hut1_12v2.pdf
HIDデバイス/開発 - おなかすいたWiki!
USB.org - HID Tools
USB HID クラス ‐ 通信用語の基礎知識
Windows 8 におけるセンサーのサポート – Building Windows 8
ワコム、ホイールとファンクションキーが加わった「FAVO 4」
自作OSにUSBを実装する - livaの雑記帳
Microsoft Word - HUTRR39b.docx
USB.org - Microsoft Related HID Documentation
Keyboard and mouse HID client drivers | Microsoft Docs
USB プロジェクト - マウスのReportDescriptorを見てみよう:新適当マイコン電子工作研究所:So-net blog
レポートディスクリプタ - おなかすいたWiki!
コメを噛め» Blog Archive » HID Mouse から Joystick へ
マイコンの実験:PIC内蔵USB機能(HID)の実験6
USBマウスのレポート・ディスクリプタで悩む:親族SNS管理人ブログ:So-netブログ
rjj05b1417_m16cap | 検索 | ルネサス エレクトロニクス
Keyboard and mouse HID client drivers | Microsoft Docs
USB Human Interface Devices(HID)Class サンプルプログラム
PICでなんか作るばい(ARMもね) マウスボタンには4と5もあった。
Enhanced Wheel Support in Windows - Windows 10 hardware dev
USB1.1接続のマウスは2.0と比べて反応は? -有線でUSB1.1接続のみのマ- マウス・キーボード | 教えて!goo
usb touch screen protocol - Google 検索

Audio

Windows

DTMで必ず登場するASIOドライバって何? : 藤本健の“DTMステーション”
Windowsの音質を阻害するカーネルミキサー : 藤本健の“DTMステーション”
オンボードのサウンド機能を高性能化するWASAPI : 藤本健の“DTMステーション”
WASAPIでiTunesを高音質に再生!? : 藤本健の“DTMステーション”

DSD

Sony PCM-D100 の為に DSD64(1bit/2.8MHz)の曲を探してみた。 - ICT備忘録
ERI 「ハイレゾノイズ」にご用心?
About - ハイレゾ音源配信サイト【e-onkyo music】
音声のデジタル化方式について | インターフェイス株式会社
PCで音楽: DSD256の聴き方!
Direct Stream Digital - Wikipedia
DSD 64 2.8MHz v.s WAV 24bit 192kHz : Studio Okamoto の 徒然日記
DSDデモトラック | サポート | OPPO Digital Japan株式会社
【藤本健のDigital Audio Laboratory】第475回:いまさら聞けないDSD/スーパーオーディオCD - AV Watch
SUPER AUDIO CD - about SUPER AUDIO CD - Format - DSD
【藤本健のDigital Audio Laboratory】“DSDのまま編集”を実現!? 帽子型補聴システム、24ch再生などDSDの新たな可能性 - AV Watch
ハイレゾ音源がダウンロードできるおすすめ配信サイトと4つの注意点
ASIO - Wikipedia
【藤本健のDigital Audio Laboratory】第546回:DSD対応USB DACの再生ソフトを比較する - AV Watch
【藤本健のDigital Audio Laboratory】第557回:DSDの基本から未来まで。「1ビット研究会」レポート - AV Watch
ASCII.jp:ハイレゾを始めるならUSB DAC? それともネットワーク? (3/5)|麻倉怜士のハイレゾ入門講座
ソニー、DSD関連フォーマットの仕様を公開
zionote、DSD対応技術「JAVSLINK2」のライセンスを公開 - 個人利用は無料 - PHILE WEB

USB オーディオ クラス ‐ 通信用語の基礎知識
OSS開発-Tethys USB: 風のまにまに心のままに、そして想いの力を信じて
02 « 2月 « 2010 « PCオーディオブログ
USB Audio - Speaker - マイコン工作実験日記
uaudio(4)
WhatsNew/FreeBSD10 - FreeBSD Wiki
AN295.pdf
usb-audio-simplified.pdf
USB Audio Design Guide
USB Audioの転送データサイズ | インターフェイス株式会社

MIDI

MIDI - Wikipedia
MIDI - Wikipedia
今さら聞けない、「MIDIって何?」「MIDIって古いの?」 : 藤本健の“DTMステーション”
MIDI規格がすべて無料公開!GitHubも同時スタートし、よりオープンに進化する! : 藤本健の“DTMステーション”
Home
RP/CA
About | Creators' Hub - Presented by AMEI
amei-music/CreatorsHub: 異なるプロトコルやアプリケーションのメッセージを相互に変換するプログラムです。MIDI, OSC, Web Socketを流れるJSON等の相互変換ルールを定め一意に変換することで、音楽や映像アプリケーション間の接続性や汎用性を高め、様々なメディア・デバイスが連動したクリエーションをより容易にします
MIDI規格委員会
MIDI1.0規格書
DTM技術情報 - 0.目次 | g200kg Music & Software
SMF(Standard MIDI File)フォーマット解説 | 技術的読み物 | FISH&BREAD
SMF (Standard MIDI Files) の構造 - Welcome to yyagi's web site.
apollo twin USBを駆使する声優の小岩井ことりさんの本気すぎるDTM環境 : 藤本健の“DTMステーション”
MIDI 2.0 の件 | g200kg Music & Software

Wacom タブレット

Wacom タブレット - ArchWiki
Home · linuxwacom/input-wacom Wiki
Wacom Protocols · linuxwacom/input-wacom Wiki
USB Protocol - linuxwacom

DisplayLink

DisplayLink
DisplayLink - Wikipedia
【イベントレポート】DisplayLink、4K/60Hzの2出力対応のUSBディスプレイコントローラ - PC Watch
DisplayLink/evdi: Extensible Virtual Display Interface
displaylink-rpm/displaylink-rpm: RPM sources for the DisplayLink USB display adapters
AdnanHodzic/displaylink-debian: DisplayLink driver installer for Debian/Ubuntu based Linux distributions.
zhsj/displaylink: Debian package for DisplayLink Linux driver
magoroku15/DisplayLink-driver-for-android: Little modification for android
venix1/PiDock: displaylink clone
linux/udlfb.c at master · torvalds/linux
floe/tubecable: DisplayLink open-source protocol reference implementation
Home · floe/tubecable Wiki
libdlo
https://www.kernel.org/doc/Documentation/fb/udlfb.txt
HOWTO: Use a DisplayLink USB graphics adapter on Crunchbang Linux v11 Waldorf with partial upgrade to Debian Jessie

Class

USB device class drivers included in Windows (Windows Drivers)
USB.org - Defined 1.0 Class Codes
USB.org - USB Device Class Specifications
デバイスクラス ‐ 通信用語の基礎知識
3.5mmイヤホンジャックが消える日も近い?音声対応USB規格発表 - iPhone Mania
Hit the road, headphone jack. USB wants your job - CNET

エニュメレーション

エニュメレーション | インターフェイス株式会社
USB/エニュメレーション - おなかすいたWiki!
Prot3 USB Protocol( 3)  FT-232Hのエニュメレーション完了を検出
USB/PnP - SyncHack
設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識 |Tech Village (テックビレッジ) / CQ出版株式会社
USBのエニュメレーション(まとめ) : prittyparakeetのblog
USBの解説.PDF
USB1.1 およびUSB2.0におけるエニュメレーションの違いが知りたい - 108: 上記以外のマイコン関連 - Forum - かふぇルネ - Renesas Rulz - Japan
USB ( Universal Serial Bus ) インタフェース | 東芝デバイス&ストレージ株式会社 | 日本
USB Host Human Interface Device Class Driver (HHID)
エニュメレーション | インターフェイス株式会社
USBデバイス状態遷移図 | インターフェイス株式会社

パケットキャプチャ等

【レビュー】スピードテスト機能も搭載。USBデバイスの情報を一覧表示できる「USBDeview」 - 窓の杜
FREE USB Protocol Analyzer Software USB Sniffer and Logic Analyzer
hiro99ma blog: USBのパケットキャプチャ
マイコンの実験:PIC内蔵USB機能の実験3
Wireshark · Download
USBPcap
Usb Sniffer for Windows download | SourceForge.net
RatatoskrによるUSBキャプチャ - Qiita

Wikipedia

USB Type-C - Wikipedia, the free encyclopedia
USBハブ - Wikipedia
CCID (protocol) - Wikipedia

Twitter

Fadisさんのツイート: "USBデバイスを物理的に取り外さずにLinuxカーネルの管理から外すには echo <デバイス名> >/sys/bus/usb/drivers/usb/unbind 再びカーネルに握らせるには echo <デバイス名> >/sys/bus/usb/drivers/usb/bind"
Fadisさんのツイート: "カーネルの管理から外れたデバイスはユーザ空間から誰にも邪魔されずに会話できる状態になるため、ゲスト環境にホストのUSBデバイスを直接触らせたりする時に便利、と"
Fadisさんのツイート: "CDC ACMのシリアル通信って入力 出力 割り込み通知の3本のエンドポイントが転がってるだけで特にUSBの上にプロトコルのようなものはなくてそのままシリアル通信のデータが流れてるんだな…"
a.rin@mixさんのツイート: "USB が 1msec フレームなんで、GPSからの時刻データをUSB経由だと、1msecくらいのジッタがでちゃうのね"
なかのん&マジックさんのツイート: "色んなキーボードレイアウト(物理)を見てると、日本が強かった時代がコンピュータの黎明期で色々と得してるなーとは思う。こんだけ購買力落ちててもJISキーボードの販売・サポートは必須やからね。歴史的要因って強い。"
なかのん&マジックさんのツイート: "JISキーボード固有のキーが無かったらどうなるのかは、中国語のIMEがどうやってON/OFF切り替えるのかとか見ると、結構真顔になってしまう。"
なかのん&マジックさんのツイート: "USB規格にはLang1からLang4までの特殊キーが定義されてるんで、あれを各、非ASCII文字な言語圏は活用すべきだと思うんだけど、物理キーボードにそのキーを載せるとなると、やっぱりコストがかかるから、肝心のPCメーカーが率先してキーの追加を提案したりはしないわなぁ。"
なかのん&マジックさんのツイート: "失礼。Lang4までじゃない。Lang9まであった。"
Nerry さんはTwitterを使っています: 「control trb の status stage の dir は data stage の種類によって違う:;(∩´﹏`∩);:」 / Twitter
神無月ねりさんはTwitterを使っています: 「usbポートって抜き差しする時結構チャタリングでイベント飛んでるのね。使い終わったスロット解放してないからめっちゃスロット番号とぶ」 / Twitter

The USB ID Repository
www.linux-usb.org/usb.ids
home | USBGuard
dkopecek/usbguard: USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
USB転送方式 | インターフェイス株式会社
USB4™ Specification | USB-IF
USB4 Adopters Agreement | USB-IF
USB4 | USB-IF

Bluetooth

その他

デバイスに搭載されているBluetoothのバージョンをGUIで簡単にチェックできるツール - 窓の杜
第267回 Bluetoothデバイスで離席管理する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
HCIプロトコル
21.4. Bluetooth
Chapter�21.�Bluetooth on NetBSD
Bluetooth
OSx86jp @ ウィキ - 動作報告 Bluetooth編
できる周波数ホッピング
デュアルブート環境で Bluetooth を使いたい!
Bluetoothの暗号鍵ネゴシエーションに脆弱性、仕様自体を修正 - PC Watch
【アプデ/10】 2019年7月度(あるいはそれ以降も?)のWindowsUpdate適用でBlurtoothスピーカーに不具合 : ニッチなPCゲーマーの環境構築
Windows 10プレビュー版、BTデバイスのペアリングをより簡易化 - PC Watch
【レビュー】Windows 10はBluetoothの高音質通話「HD Voice」に対応したのか? ~バッファロー製ヘッドセットで実証テスト - PC Watch
サポートされる Bluetooth プロファイル - Windows Help
「Windows 10 20H1」Build 19002が“Fast”リングに ~Bluetooth機器の接続が手軽に - 窓の杜
Windows 10プレビュー版、Bluetoothの簡易接続機能が全ユーザーに提供 - PC Watch
ASCII.jp:Windows 10でようやくまともになったBluetoothのサポート (1/4)|Windows Info

Bluetooth

https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
Adopted Specifications | Bluetooth Technology Website
Specification | Adopted Documents | Bluetooth Technology Special Interest Group
ECN specification for Bluetooth SDP
Bluetooth - Windows 10 hardware dev
Bluetooth stack - Wikipedia, the free encyclopedia
Bluetooth - ArchWiki
Bluetooth - ArchWiki

Apple

Bluetooth Accessory Design Guidelines for Apple Products
iOS:iOS デバイス対応の Bluetooth プロファイル - Apple サポート
iPhone テザリング - ArchWiki
iPhone tethering - ArchWiki
Bluetoothテザリング子機として使える機種を探す方法と注意点
iPhoneはBluetooth PAN(テザリング)の子機として使えない(備忘録) – Captain's Log, Supplemental
今さら聞けないテザリングについて|プラカンブログ | プラスデザインカンパニー【大阪・東京 ホームページ・WEB制作】
Bluetooth経由でiPhoneへ写真を転送できる? - いまさら聞けないAndroidのなぜ | マイナビニュース
なぜ「AirDrop」はBluetoothを使うのにファイル転送が速いの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
The Official Bluetooth SIG Member Website
日記 (2019 年 2 月上旬)

Classic

Audio

SCMS-T

第497回:SCMS-Tとは - ケータイ Watch Watch
SCMS - Wikipedia
Bluetoothヘッドホンからテレビの音が聞こえません!? - いまさら聞けないAndroidのなぜ | マイナビニュース
SCMS-T | 用語集 | KDDI株式会社

BT-UHD

<IFA>ファーウェイ、Bluetooth新プロトコル「BT-UHD」。LDAC比2倍以上、2.3Mbpsでオーディオ再生 - PHILE WEB

LDAC

Sony Japan | LDAC™で高音質ワイヤレスリスニング
ソニーのハイレゾ対応コーデック「LDAC」は何がスゴい? 開発者に疑問をぶつけた - AV Watch
次期OS"Android O"の開発者プレビューが公開。ソニーの協力によりLDACをサポート - PC Watch
第707回:LDACとは - ケータイ Watch Watch
platform/external/libldac - Git at Google
LDACエンコーダを使ってみた - Qiita
eggman/ldacenc: LDAC encoder
eggmanさんのツイート: "AOSPにLDACのencoderのソースコードがあった。 https://t.co/sdNwBJpx42 次のAndroidにはLDACが標準搭載されるっぽいですね。"

apt-X

Qualcommが英CSRを買収。BLEやaptXなどBluetooth資産を獲得し、IoE強化 - AV Watch
aptX対応のワイヤレスBluetoothオーディオ製品と技術
ボクらのスマホ&iPhoneを最新のaptX-LL対応にする方法(ワイヤレスイヤホン選びを真剣に考える③)|オモロダイブ
高音質ワイヤレスで注目の「aptX HD」は他とどう違う? クアルコムに聞いた - AV Watch
【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
Qualcommが展開する「DDFA」の高音質化技術とハイレゾ対応Bluetooth技術「aptX HD」 - PC Watch
Qualcomm® aptX™ Low Latency Synchronised Audio
aptX Low Latencyを試してみる? | Wasters haven.
新Bluetooth音声コーデック「aptX Adaptive」。動的レート制御で音質と接続性向上 - AV Watch
Qualcomm、レイテンシ削減でゲームにも対応できる無線オーディオコーデック「aptX Adaptive」 - PC Watch
第876回:aptX Adaptive とは - ケータイ Watch
【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
Bluetoothを高音質/低遅延化する「aptX」。CSRが説明 - AV Watch
次期Android“Oreo”が対応「LDAC」「aptX HD」はどのスマホで使えるようになるのか? (1/3) - PHILE WEB

AAC

【第153回】“iPhoneのAACファイルをAACでBluetooth伝送すると音質劣化しない”は本当か? - Phile-web
License Fees - Via Corp

SBC

SBC (codec) - Wikipedia, the free encyclopedia
BluetoothのSBCって何ですか? - afnf.net
https://tools.ietf.org/id/draft-ietf-payload-rtp-sbc-03.txt

Bluedroid

Andorid 4.2以降はBluetoothが違う、ってどういうこと? - いまさら聞けないAndroidのなぜ | マイナビニュース
Android 5.0でBLE advertising するための要件 - Qiita
Android Bluetooth HAL Interfaces について 概要編 - Qiita
Bluetooth | Android Open Source Project
Bluedroid ‐ 通信用語の基礎知識
platform/external/bluetooth/bluedroid - Git at Google
embdrv/sbc/encoder/srce/sbc_encoder.c - platform/external/bluetooth/bluedroid - Git at Google

PulseAudio

Fadisさんのツイート: "PulseAudio 10.0がリリースされました。主な変更点はBluetooth使用時にアプリケーションの申告に基づいてA2DPとHSPを切り替える仕組み、パススルーモード、USB接続のサラウンドなデバイスが使えない不具合の修正他 https://t.co/wSWB3Q7rom"
PulseAudio 10.0 Officially Released - Phoronix
10.0

冒頭に無音を挿入

Rui Ueyamaさんのツイート: "なんかほとんどのBluetoothスピーカーやヘッドフォンは、数秒以上使われていないと待機状態に移行して、そのあと復帰直後の音の最初の0.1秒くらいが欠落するぽい。ひどい実装だ。"
Rui Ueyamaさんのツイート: "なのでTCFMではsoxで0.1秒の実質的な無音ファイル(-50dbのbrown noise)を作って音声ファイルの冒頭にくっつけるということをすることに。そうしないとBluetoothで聞いたとき最初の子音が欠落してしまう。ここらへんも含めて加筆修正しました。 https://t.co/bewRhFDebf"

【Bluetoothヘッドホン】【Bluetoothスピーカー】AAC/aptXとは?
AACとapt-Xコーデック(ポータブルスピーカー まとめ) : 日々妄想 -書籍と家電の個人的記録-
apt-x HDとLDAC ワイヤレスハイレゾの覇権をとるのはどっちだ | IT Trend news
LDAC vs aptX HD。いよいよ動き始める「ハイレゾ級ワイヤレス」 – boomil
Android の aptX aptX-HD LDAC AACサポートについて - Qiita
「Bluetoothオーディオ」の仕組みと用語 〜Bluetoothスピーカーやヘッドホンを選ぶ際におさえておきたいポイント - Fluffy white croquis
A2DP ‐ 通信用語の基礎知識
とみながたけひろさんのツイート: "相変わらず周波数特性と波形で音質評価といってる人の記事が流行ってるのか、、、"
とみながたけひろさんのツイート: "BTヘッドフォンをちゃんと電波部分、コーデックアルゴリズム、デジタル、アナログ回路性能、マイク、ヘッドフォン性能、ぐらい分離して細かくレビューしてほしい(無理)(やっぱり専業とかデカイ会社ではやっとるんかなあ)"
とみながたけひろさんのツイート: "コーデックはまあそれなりに知ってるけど、それ以外で世間の製品がどう頑張ってるか知りたい。電波状況が悪化して一度帯域を落としたら二度と戻らないようです、とか、帯域切替を頻繁に行うのでそこでノイズが載ったように聞こえますとか、遅延と音質との関係とか、クロック同期とか、、、"
とみながたけひろさんのツイート: "まあとりあえずなんちゃって評価するにしても、数秒とかのサイン波でやるなら、電波が飛ぶ領域だけでもちゃんと簡易電波暗室的な奴(アルミ缶とかでもいい)に入れて評価してほしい"

HIDP ‐ 通信用語の基礎知識
PAN (Bluetooth) ‐ 通信用語の基礎知識
BNEP ‐ 通信用語の基礎知識
L2CAP ‐ 通信用語の基礎知識

BLE

BLE-MIDI

Apple Bluetooth Low Energy MIDI Specification
Bluetooth for Developers - Apple Developer
【藤本健のDigital Audio Laboratory】第669回:Bluetooth MIDI伝送で何ができる? 対応5製品とiPad連携などを試す - AV Watch
Spec / Faq | microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
Bluetooth LE MIDI Specification

6LoWPAN

わふう>ω<のひとさんはTwitterを使っています: "OpenWRT + BLE over IPv6/6LowPAN。つまり市販されているWiFiルータにBLEドングルを刺してOpenWRTでIPv6/6LowPANのルータがデモンストレーションできる、と
わふう>ω<のひとさんはTwitterを使っています: "IPv6 over Bluetooth Smart (Low Energy) [OpenWrt Wiki] https://t.co/vxgpSbU2Mi"
わふう>ω<のひとさんはTwitterを使っています: "6LoWPAN for Bluetooth low energy on OpenWRT RT Blogs - Nordic Developer Zone https://t.co/k1UkJKpOq9"
6LoWPAN のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社

Bluetooth Low Energy(BLE)入門――なぜBLEは世界で愛用されるのか - EE Times Japan
Bluetooth LE と Beacon の話
2016年のBLEを振り返る | Reinforce-Lab.'s Blog
「IoTの成功モデル」、BLE市場が活況 - 家電・モバイル - 日経テクノロジーオンライン
IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】 (1/3):CodeZine(コードジン)
DSAS開発者の部屋:既成の BLE デバイスを自作プログラムから利用する試み
FreeBSDで Bluetooth Low Energy (BLE)を使う | 元祖ワシ的日記
HOGP ‐ 通信用語の基礎知識
GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
Takashi KawasakiさんはTwitterを使っています 「BLEが位置情報の権限を必要とする根本的な理由についての認識って共有されてないんだな。ビーコンに限らず、BLE機器をスキャンしたら周りにある機器が特定できちゃうので、間接的に場所が特定できちゃう可能性が高まるんだよね。別にGPSが動くわけじゃない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「少なくとも、この人とこの人、ひょっとしてお隣さん?みたいな事は十分にわかっちゃう可能性がある。Macの名前とかモロバレだし、そうじゃなくても、ユーザーのフィンガープリンティングとしては割と精度が高い。」 / Twitter

Google

bluetooth - Git at Google
platform/external/bluetooth/hcidump - Git at Google

セキュリティ

Bluetooth経由でスマホからPCまで乗っ取れる攻撃手法が発覚 ~Bluetoothがオンになっているだけで攻撃可能 - PC Watch
JVNVU#95513538: 様々な Bluetooth 実装に複数の脆弱性
数十億を超えるBluetooth機器に影響、ペアリングなしで乗っ取られる脆弱性“BlueBorne”が明らかに - 窓の杜
Armis BlueBorne: Bluetooth vulnerabilities | Firmware Security
BlueBorne Technical White Paper.pdf
Bluetoothのセキュリティ強化とリスクの軽減を図るための3つの対策
Fadisさんのツイート: "BlueBorneで明らかになった脆弱性の1つCVE-2017-1000251は、Bluetoothのデータリンク層の設定を行うL2CAP CONFIGURATION REQUESTに巨大なパラメータを付けて投げると、それを想定していない実装がスタック破壊→任意コード実行という物で、いわば21世紀のping of death https://t.co/q5DEtKHEzU"
Blueborne - Linux Kernel Remote Denial of Service in Bluetooth subsystem - CVE-2017-1000251 - Red Hat Customer Portal
Bluetoothに通信傍受などの脆弱性、「Apple」「Intel」「QUALCOMM」製品などが影響を受ける恐れ - INTERNET Watch
JVNVU#92767028: Bluetooth 実装の楕円曲線ディフィー・ヘルマン鍵共有において公開鍵を適切に検証していない問題
Fadisさんのツイート: "Bluetoothの仕様が複雑すぎ、実装者に多くの選択肢を用意しすぎている為、実装者は目的を達成するのに必要なサブセットを摘んで実装する傾向があり、それがBluetoothを格好の攻撃対象にする原因になっている、という話 https://t.co/YuD0fAs5dl"
Bluetooth's Complexity Has Become a Security Risk | WIRED
Fadisさんのツイート: "Bluetoothの規格書、WiFiの約10倍のページ数があるのか…"
More information on “…Exploiting Low Entropy in the Encryption Key Negotiation of Bluetooth® BR/EDR” *

Wireless・のおと

Bluetoothのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(4)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(5)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのセキュリティのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth 5 のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth5の補遺|Wireless・のおと|サイレックス・テクノロジー株式会社

通信用語の基礎知識

Bluetooth ‐ 通信用語の基礎知識
Bluetoothプロファイル ‐ 通信用語の基礎知識
SDP (Bluetooth) ‐ 通信用語の基礎知識
HCI (Bluetooth) ‐ 通信用語の基礎知識

GitHub

Fadisさんのツイート: "Logitech(ロジクール)のUSB接続BluetoothドングルのデバイスのペアリングをLinuxから行う為のオープンソースなツール Solaar https://t.co/fpbi8nDC3I"
Solaar
pwr/Solaar: Linux devices manager for the Logitech Unifying Receiver.
bluekitchen/btstack: Dual-mode Bluetooth stack, with small memory footprint.
RedBearLab/BLE_HCI: Allows external systems or MCUs to connect BLE (CC2540) using HCI as BLE Central Role
JiounDai/Bluedroid: PoCs of Vulnerabilities on Bluedroid

Qiita

Bluetooth Low Energy Advent Calendar 2014 - Qiita
Bluetooth Low Energy Advent Calendar 2015 - Qiita
Bluetooth Low Energy Advent Calendar 2016 - Qiita

Twitter

as9kさんのツイート: "A2DPはHSP/HFP(ヘッドセット・ハンズフリー)よりはるかに音がいい。A2DP使えないものと比べたから確か"
なかのん&マジックさんのツイート: "AndroidにBluetoothのDUNを追加するアプリはあるけど、HFPを機能があるかのように見せるだけで良いんで、HFPを追加するアプリって無いんかな? 技術的にできるんか知らんけど。"
なかのん&マジックさんのツイート: "カーナビは、HFPで接続の成否を判断してるんで、HFPの無いタブレットをモデムとして使えないんだよな。"

ACPI

その他

ReactOS: drivers/bus/acpi/acpica/namespace/nsinit.c File Reference
https://www.bitvisor.org/summit/slides/BitVisor-Summit-02-eiraku.pdf
ACPI Wakeup - MythTV Official Wiki
Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
ACPI BGRT - ねりりんと借り初めのものがたり
Judgement Day - ねりりんと借り初めのものがたり
ACPICA – Raphine Project<サイト製作中>
ACPI Table - Qiita
ACPIの最新仕様書は、UEFI Forumによって管理されています。(2013年10月以降) - 64bitマシンとか、Linuxとか、アニメとかのブログ
Linux kernel ACPI-centric CVE-2017-13694: Awaiting Analysis | Firmware Security
FWTS 17.08.00 released, many new ACPI tests | Firmware Security
AML - OSDev Wiki
FADT - OSDev Wiki
New ACPI IDs for November: Nexstgo and Insyde | Firmware Security
日記 (2017 年 4 月中旬)
日記 (2017 年 4 月中旬)
日記 (2017 年 4 月中旬)
ACPICA - OSDev Wiki
Shutdown - OSDev Wiki
初心者のためのACPI
第8回 ACPI その2 ACPICAを使おう - ブログやめる日記
ACPI で電源を切る - 借り初めのひみつきち
ACPI で電源を切るの補足 - 借り初めのひみつきち
Nerry さんのツイート: "たったふたつのOUT命令でここまで長い記事になるとは書き始めた時は思ってなかった。深い。"
2019年3月29日号 discoのBetaとカーネルフリーズ,ACPIまわりのデバッグ方法:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Debug ACPI DSDT and SSDT with ACPICA Utilities | Ubuntu blog
⚙ D20630 ACPI support for USB , mainly hub.
Nerry さんはTwitterを使っています: 「そういえば現状ACPI ENABLEしないままXHCIドライバとPS2ドライバ両方起動してるから一部のレガシーエミュレーションしてる機種でうまくない動作してるかもしれん。。あとで直しとこ:;(∩´﹏`∩);:」 / Twitter
Nerry さんはTwitterを使っています: 「ほんとはACPI ENABLEして電源ボタンのイベント取りたいけど機種によってはAML読まないと電源イベント取れない機種があってその辺の対応がめんどくさい:;(∩´﹏`∩);:」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「ラップトップに Linux 入れて PowerTop を実行するとまず LCD が電池を喰ってて次に CPU だったりするから,輝度を落として CPU も CPUfreq で governor を powersave とかにするだけでだいぶバッテリーが保つんですよね」 / Twitter
機械学習を利用してバッテリーの充電傾向を把握し、使用直前までバッテリー充電率を80%で止めてくれるiOS 13の新機能「最適化されたバッテリー充電」は位置情報も使用し、旅行先などでは機能を停止する。 | AAPL Ch.
Appleは新しいMacBook Pro向けの新機能として、IntelのTurbo Boostを長時間継続させアプリのパフォーマンスを向上させるような「Pro Mode」をmacOS Catalina Betaでテストしているもよう。 | AAPL Ch.

S0ix

Linux

ols2012-mansoor.pdf
Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix
How to achieve S0ix states in Linux* | 01.org
Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix Forums
Add suspend-to-idle validation for Intel SoCs [LWN.net]
[linux-joule,9/9] Enable type-c HOST mode with S0iX suspend - Patchwork
ref-os-iot/0004-Enable-USB-Type-C-HOST-mode-with-S0iX-suspend.patch at master · intel/ref-os-iot
Mailing List Archive: [PATCH v2 5/5] intel_idle: Add S0ix validation
LKML: "dbasehore .": Re: [PATCH v5 5/5] intel_idle: Add S0ix validation
Linux-Kernel Archive: [PATCH] platform/x86: intel_pmc_ipc: read s0ix residency API
x86/pmc_atom: Eisable a few S0ix wake up events for S0ix residency [Linux 3.17] - Linux Kernels
Re: S0ix failure due to "clk: x86: Do not gate clocks enabled by the firmware" — Clock Framework

FreeBSD

⚙ D17676 Emulated S3 with s0ix (not currently working)
bwidawsk/freebsd: bwidawsk's FreeBSD src tree

Challenges around _OSI
8th Gen (S-platform) Intel® Processor Family Datasheet Vol. 1
IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - マイクロアーキテクチャ編 (3) 省電力周りの変更点、Atom同等のS0iXモードのステートを追加 | マイナビニュース
【笠原一輝のユビキタス情報局】スマートフォンと同様の使い勝手を実現するIntelのS0ix実装 ~IntelがClover Trailの詳細を公開 - PC Watch
ASCII.jp:インテルが最新モバイルCPUで実現した省電力技術とは?
画面オフ・モダンスタンバイ・休止状態 - ※ただの日記ブログです※
Windows 10ミニTips (57) 電源コマンドを使ってPCの「モダンスタンバイ」対応を確認する | マイナビニュース
Powercfg のコマンド ライン オプション

Hardware-reduced ACPI platforms

HW reduced ACPI - 借り初めのひみつきち
SoC ベース プラットフォームのハードウェア要件 - Windows 10 hardware dev
Overview of Windows support for ACPI 5.0 | Microsoft Docs
Hardware requirements for SoC-based platforms | Microsoft Docs
モダン スタンバイ - Windows 10 hardware dev
モダン スタンバイの SleepStudy レポート - Windows 10 hardware dev
ACPI ファームウェアの実装要件 - Windows 10 hardware dev
ACPI バッテリおよび電源サブシステムのファームウェアの実装 - Windows 10 hardware dev
バッテリおよび電源サブシステムのハードウェア設計 - Windows 10 hardware dev
バッテリと充電 - Windows 10 hardware dev
Nerry@さんのツイート: "あ、HW reduced ACPIもPM1 control registerとほぼ同じレジスタが別にあるのか"
Nerry さんのツイート: "virtual boxで電源落とせるようになった。 HW reduced ACPI はこれでいけるはずだけどまだテストできてない… "
Nerry さんのツイート: "S5のSってSleepなのかStateなのかその他の意味なのか"
Nerry さんのツイート: "S5探す作業だいぶ短くできた… "

Skylake

ASCII.jp:Windows 10の電力管理を支えるACPIを見る (1/2)|Windows Info
ASCII.jp:「スロットリング」ではCPUの電力管理をOSではなく、CPU任せにする (1/2)|Windows Info
ASCII.jp:スリープ中に見えてもスマホのようにアプリが動作するWindows 10の「モダンスタンバイ」 (1/2)|Windows Info
電力管理ガイド - Fedora における電力消費の管理について
IDF Session Presentation Template
Call for help for Skylake Power Management – Pike's Universum
linux/x86_energy_perf_policy.c at master · torvalds/linux
CPUID — CPU Identification
paper.pdf
1905.12468.pdf
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に | ニッチなPCゲーマーの環境構築Z
質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
これで分かるSkylakeマイクロアーキテクチャ。性能向上と省電力化のために加えられた多くの改良が明らかに - 4Gamer.net

電源管理

北森瓦版

北森瓦版 - “Skylake”で導入された“Speed Shift technology”
北森瓦版 - “KabyLake”と14nm+プロセス

本の虫

本の虫: Linux 3.9はPM_SUSPEND_FREEZEをサポート

PC Watch

【笠原一輝のユビキタス情報局】Intelの開発責任者に聞く、Skylake開発秘話 - PC Watch
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
【後藤弘茂のWeekly海外ニュース】Ultrabookのアイドル電力消費を100mW以下にするHaswellの省電力技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの「Haswell」のダイと省電力技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】Atomスマートフォンで勝負をかけたIntel - PC Watch
【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch

ASCII.jp

ASCII.jp:Windows 8.1で利用できるInstant Goの挙動を調べる (1/2)|Windows Info
ASCII.jp:Win 8.1で利用できるInstant Goのトラブルを解決する (2/2)|Windows Info

OSDN

Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine

Wikipedia

スリープ (コンピュータ) - Wikipedia

Qiita

BitVisorとACPI - Qiita

Twitter

kmem_cacheさんはTwitterを使っています: "お、マウスの電池残量が少ないことまで通知してくれるのか > gnome3 https://t.co/QwbmRDg5Xa"
Takahiro HASHIMOTOさんのツイート: "GPD PocketのUbuntu版カーネルで、bq24190_charger ドライバが充電器から取り出す電流が3Aハードコードされてるらしい。純正電源ならいいが他のはヤバいのでこのカーネルは使うなとHans氏が注意喚起してる https://t.co/kF52Mmq65T"

“「使っていない時も省エネ・・・!?」~欧州規制EuP指令の対応”|環境活動|エプソン
3メーカーに聞く、Haswell時代の電源選び 【玄人志向編】技術者「謎のサングラス男」に聞く、Haswell対応の根本とポイント - AKIBA PC Hotline!
ErP Lot 6 って?|エナぶろぐ
UEFI(U1E)へアップデートしてみました - GIGABYTE LGA1155 intel Z68(B3) Micro ATX GA-Z68MX-UD2H-B3のレビュー | ジグソー
価格.com - 『USB給電を止めたいです。』 ASRock Z87 Pro3 のクチコミ掲示板
価格.com - 『シャットダウン時にUSBへの電源供給を止めることはできますか?』 ASRock Z87 Extreme4 のクチコミ掲示板
www.eceee.org/ecodesign/products/standby/
openSUSE 13.1: 第11章 電源管理
ACPI の基礎知識
いろいろ Tips02.スタンバイと休止状態 - cool-r32.com
休止状態とスリープ状態の違い - 道すがら講堂
mjg59 | Skylake's power management under Linux is dreadful and you shouldn't buy one until it's fixed

SMBus

SMBus Specifications
SMBus ‐ 通信用語の基礎知識
セカンド・オピニオン (134) バスのアーキテクチャ - 過去から未来へ(95) | マイナビニュース
I²C ‐ 通信用語の基礎知識

SBS

SBS-IF - SBS Specifications
「バッテリーを交換してください」とは? powercfg による診断 - Web/DB プログラミング徹底解説
スマートバッテリ ‐ 通信用語の基礎知識

APEI

第3章 カーネル
A_Tour_beyond_BIOS_Implementing_APEI_with_UEFI_White_Paper.pdf
ACPI モジュール - ArchWiki
ACPI, APEI support [LWN.net]
https://www.kernel.org/doc/Documentation/acpi/apei/einj.txt
Linux/Documentation/acpi/apei/einj.txt - Linux Cross Reference - Free Electrons
Linux/drivers/acpi/apei/hest.c - Linux Cross Reference - Free Electrons
LEG/Engineering/Kernel/RAS/APEITests - Linaro Wiki
linux/drivers/acpi/apei at master · torvalds/linux

ACPI 連載

www.init-main.com/acpirensai/acpi.txt
www.init-main.com/acpirensai/acpi3.txt
www.init-main.com/acpirensai/acpi4.txt
www.init-main.com/acpirensai/acpi5.txt
www.init-main.com/acpirensai/acpi6.txt
www.init-main.com/acpirensai/acpi7.txt
www.init-main.com/acpirensai/acpi8.txt
www.init-main.com/acpirensai/acpi10.txt
www.init-main.com/acpirensai/acpi-features.txt
Takanori Watanabe(@takawata19)さん | Twitter
Takanori Watanabe's Home Page

DSDT

DSDT - ArchWiki
ja/Fixing DSDT
OSx86駆け込み寺 - DSDT
おかしなDSDTを直そう | rionaoki.net
PCI 情報/DSDTテーブルの取得方法 - Japanese - InsanelyMac Forum
OSX86 Hackintoshで良く出てくる DSDTや SSDTって何?取得方法は?の夢 (DSDT.amlや SSDT.amlの取得方法、ACPI電源管理用の情報が書いてあるファイルです)

DMAR

howto_implement_hypervisor/part16.md at master · syuu1228/howto_implement_hypervisor
KVM PCIパススルー (PCI PassThrough) | nexia inc
第16章 仮想化
UEFI機能一覧(Workload Optimized 2) : Enterprise Cloud Knowledge Center Baremetal Server 1.5.6 ドキュメント
OVMF による PCI パススルー - ArchWiki

MS

ESRT

ESRT テーブルの定義 - Windows 10 hardware dev
ESRT table definition
ESRT テーブルへのデータ入力 - Windows 10 hardware dev
Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
Better Firmware Updates in Linux using UEFI Capsules
Windows UEFI ファームウェア更新プラットフォーム - Windows 10 hardware dev
更新プログラムの処理 - Windows 10 hardware dev
ファームウェア更新ステータス - Windows 10 hardware dev
ファームウェア更新パッケージの作成 - Windows 10 hardware dev

SoC プラットフォーム用 Windows ACPI 設計ガイドライン - Windows 10 hardware dev
Hardware requirements for SoC-based platforms
ACPI 5.0 用 Windows サポートの概要 - Windows 10 hardware dev
Overview of Windows support for ACPI 5.0
ACPI 定義のデバイス - Windows 10 hardware dev
その他の ACPI 名前空間オブジェクト - Windows 10 hardware dev
ACPI システム記述テーブル - Windows 10 hardware dev
ACPI system description tables
ドッキング - Windows 10 hardware dev
Microsoft Software Licensing Tables (SLIC and MSDM) - Windows 10 hardware dev
Microsoft ASL Compiler (asl.exe) を使ってみる – Japan WDK Support Blog
デバイス管理の名前空間オブジェクト - Windows 10 hardware dev
AcpiGenFx を使った ACPI テーブルの生成 - Windows 10 hardware dev
ACPI ドライバーインターフェース – Japan WDK Support Blog

GitHub

illumos-joyent/dbnames.c at master · joyent/illumos-joyent
phantomuserland/acpi_main.c at master · dzavalishin/phantomuserland

OSDN

ファイル詳細: /drivers/acpi/acpi_ctl.cc (master) - uniqos (git) - OSDN
ファイル詳細: /drivers/acpi/acpi_os.cc (master) - uniqos (git) - OSDN
ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nsalloc.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nswalk.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
https://osdn.jp/projects/linux-kernel-docs/docs/C06/ja/1/C06.pdf

Wikipedia

Advanced Configuration and Power Interface - Wikipedia
Reset vector - Wikipedia, the free encyclopedia

Twitter

その他

mrtska@4thSSA両日LVさんのツイート: "[StarRing] https://t.co/CXAW6qhcaR mrtska - ACPICAでACPIシャットダウンに成功したぞ"
Fadisさんのツイート: "Linux-4.8がリリースされました。主な変更点はRaspberryPi3のSoCのサポート、AMD OverDriveのサポート、ACPI Low-Power Idleをサポート、Surface3のタッチスクリーンをサポート他 https://t.co/S5XM87PpTt"
勝(まさる)さんのツイート: "ノートPCでちゃんと動くっていうと、ふたをしめて開いたら液晶がちゃんと復活するところから<おい"
AoiMoeさんのツイート: "だいたいOSがACPIの仕様書通り実装してもちゃんと動かないBIOSばっかりだもんなあ"
СЮУ1228🔥🐉さんのツイート: "@uchan_nos @kotatsu_mi そもそもACPIはそのPC上の全デバイス情報を始めとしてあらゆるPC固有の情報突っ込んでおいてOSに渡すためにあるので、電源管理だけのためのものじゃないす"
𝔬𝔯𝔲𝔪𝔦𝔫(orumin)さんのツイート: "@uchan_nos @syuu1228 自分のマシンを Linux とかで起動したときに,/sys/firmware/acpi/tables/ にあるファイルの中身をどっかにコピーした上で,それに対して iasl -d とかのコマンドでデコンパイルしたら実際の ASL に何が記述されてるとか読めそう"
ドラゴン・ユタカ・フルーツ🐬さんのツイート: "パソコンやサーバの電源ボタンを短押し(軽く一回押すこと)すると、OSシャットダウンして電源が落とせますが、実際にはOSの設定に依存します。また、RHELはログオン状態だとダイアログが出るだけです。 ログオンできないけど、マシンを落としたいときは便利な機能です。"
Yasunori Gotoさんのツイート: "ACPI 6.2が出たので見てるんだけど、NVDIMM関連の仕様も色々増えていて、頭抱えてる。 SLIT テーブルはレガシー仕様になる予感"
技術書典4 け-51 x86-64-128さんのツイート: "ACPIについて勉強。ACPIを使うには何と言ってもRSDP(64ビット環境ではXSDP)を得る必要がある。ACPICAを使うにしても、RSDPの値はユーザが与える必要がある。UEFIが有効なシステムではSystem TableからRSDPの値を探す。 #uchan_devbox"
技術書典4 け-51 x86-64-128さんのツイート: "OSを初期化するためにACPIのテーブルを読む必要があるので,ACPICAではACPIテーブルを読む機能は"Early ACPI Table Access"と言って動的メモリ管理などが無くても使えるようになっている.ACPICAのフル機能は動的メモリ管理とかマルチプロセスなんかが必要となる. #uchan_devbox"
ゆたかさんさんのツイート: "(x86な)Linuxは、システムに搭載されているCPUの数を、BIOS(UEFI)が持つACPIテーブル(DSDT)から取得します。 /sys/firmware/acpi/tables/DSDT DSDTはバイナリなので、Intelお手製のiaslツールで逆コンパイルすると読めるようになります。Processor()がCPUの定義です。… https://t.co/Q7ho4T5BpQ"
ゆたかさんさんのツイート: "PSTAメソッドでPCNTという定義が出てきますが、OperationRegion()で記述されています。つまり、0xF7FD9000をメモリダンプするとPCNTの値が入っているということです。ByteAccはバイト単位ではなくビット単位なので、PCNTは24バイト(6*32ビット)目。… https://t.co/DdSXX7H5wn"
Yasunori Gotoさんのツイート: "私の場合、acpica-toolsのacpidumpをつかって、いったんバイナリを全部ファイルに吸い取ってからiaslでdisassembleしてました。まあ、acpica-tools自体がsys配下の情報を読み取っているのでしょうけど、ユーザが直接sysを読みに行くよりはacpica-toolsを使った方が好ましいかもしれません。… https://t.co/1wup6CDG04"
Yasunori Gotoさんのツイート: "もう一個。大分昔の記憶なので正直うろ覚えですが、CPUの数はDSDTの数ではなく、MADTからLAPICの数で確認してなかったかしら?… "
C++でOS自作 技術書典5 お05さんのツイート: "The ideal and reality of NVDIMM RAS by @YasunoriGoto1 #linux #nonvolatilememory https://t.co/kZ1HqWU5xl @SlideShareより ACPIに_DSMてのがあるのか。どうやって呼び出すんだろう?"
The ideal and reality of NVDIMM RAS
Yasunori Gotoさんのツイート: "ACPIにはDSDTとかSSDTって呼ばれるツリー構造のデータが定義してあって、それがハード構成を示してます。 デバイス固有の機能があればDvice Specic Methodすなわち_DSMがそのツリーの中のデバイスの配下に定義されてて、それを呼び出すというのが流れですね。… https://t.co/QgohjFp311"
C++でOS自作 技術書典5 お05さんのツイート: "そうなんですね。ACPIテーブルはXSDTからHPETのレジスタ定義を読むというのはやったことがあるレベルなんですけど、DSMを呼び出すというのが、具体的にどうやるのかっていうのが興味あります!… "
Nerry@さんのツイート: "windowsの一番気にくわない挙動 なぜか時々勝手にスリープ解除する→誰も解除しないロック画面を愚直に表示し続けるのコンボ"
Nerry@さんのツイート: "A社のOSではなんかの間違いでスリープから起きても誰もロック解除しないなって気付いたらスリープし直します。"
yuYabu☕️さんのツイート: "え、窓は寝直さないんですか… "
Nerry@さんのツイート: "どうも実機にはgeneral purpose eventがめっちゃあるみたいで全部無効にしたら問題なく動いた・・・"
Nerry@さんのツイート: "これ結局AML見ないと何が起きてるかわからない案件なのかな"
Nerry さんのツイート: "昨日のまとめ SCI有効にして電源ボタン入力を取るだけなら簡単 実機では大量の謎のGeneral Purpose Eventが規定で有効になってるがAML読まないと何が起きてるかたぶんわからない SCIはレベルトリガーなので割り込み要員を解消するまで永遠に割り込みが発生する"
Nerry さんのツイート: "大量の謎のGPEで何が起きてるかわからない以上、AML読めるようになるまではいたずらにACPI ENABLEしない方がいいのでは?"
Nerry さんのツイート: "こういうのはブログにまとめた方がいいんだろうか🤔"
Nerry さんのツイート: "そもそも別のブログ記事書いてる途中に思いついてSCIで遊んでたっていう事案"
Nerry さんのツイート: "SCI_INTが0の機種ってどうすればいんだ・・・"
Nerry さんのツイート: "GPD今までずっとHW reduced ACPIだと思ってたら違った。"
Nerry さんのツイート: "なにか適当に作った時、panasonicは大体うまく動く。"
Nerry さんのツイート: "GPDのFADT尊重するとこいつはHW reduced ACPIじゃないということになるんだがHW reduced ACPIにしかないはずのSleep Control Registerが存在してて謎すぎる"
Nerry さんのツイート: "PM1a_CNT_BLKが0404になっててSleep Control Registerが0405になってる。 Sleep Control Registerは実質PM1 Control Registerの上位8ビットなので実態は同じものを指している。"
Nerry さんのツイート: "電源ボタンのSCIが長押ししないと取れない上に有効にしてないはずのTMR_STSビットが立つ機種がある🤔"
Nerry さんのツイート: "一部の機種で電源ボタンを押すと電源切れるようになった💤"
Nerry さんのツイート: "電源ボタンのSCIがおかしい機種はやっぱAML見ないとダメなんだろうか・・・"
Nerry さんはTwitterを使っています: 「起動時に留まる機種があって色々調べたらACPI PM タイマーが、ない:;(∩´﹏`∩);:」 / Twitter
市川 真一さんはTwitterを使っています: 「@uchan_nos ということは、これを解決するには Local APIC Timer の周波数を Intel SDM に書かれている方法で求めてから、初期化する必要があるってことなんですね、きっと」 / Twitter
ryoさんはTwitterを使っています 「pwm regulator書いてるけどバグったら変な電圧かかってボードぶっ壊しそうで恐い。今時はソフトでハードを結構簡単に壊せるんや。PC互換機のBIOSでCPUやメモリの電圧変えられるようになっりBIOSがflashになった頃からか。90年代半ば~後半くらいから?」 / Twitter

@akachochin

OS作れないマンさんのツイート: "自作OSもくもく会始まりました。最初は @akachochin さんによる「ビギナーのためのACPI」です。ACPIについて触りを勉強するプレゼンだそう。 #osdev_moku2"
OS作れないマンさんのツイート: "ACPI=Advanced Configuration and Power Interface。電源制御とデバイスの設定のための統一規格。 #osdev_moku2"
OS作れないマンさんのツイート: "「デバイスの設定」と言っても、電源管理のための設定という色が強く、ACPIは電源管理のものと思えば良い #osdev_moku2"
OS作れないマンさんのツイート: "ACPIはレジスタインターフェースとメモリ上のデータ構造により動作する。xHCIのインターフェースとかと似てる! #osdev_moku2"
OS作れないマンさんのツイート: "ACPI system description tableとACPI Namespaceがキモっぽい。ACPIテーブルにはいろんなデバイスの情報が羅列されている。すべてのACPIテーブルはシステムに1個存在するRoot System Description Pointerからたど… https://t.co/Xt6plcNZ8g"
OS作れないマンさんのツイート: "古いACPI規格だとRSDTの場合もあるが、今のバージョンはXSDTを使うようになっている。XSDTとは、他のテーブルのポインタを集めたテーブルで、ルートポインタから指されるデータ構造。 #osdev_moku2"
OS作れないマンさんのツイート: "主要なテーブルは3つある。FADT(XSDTの最初のエントリが指す)、DSDT(システムごとの差異を格納するテーブル。デバイス情報などが書いてある。)、FACS(ファームウェアとおしゃべりするための情報が書いてある。) #osdev_moku2"
OS作れないマンさんのツイート: "DSDTにはAMLフォーマットのバイナリデータが格納されている。 #osdev_moku2"
OS作れないマンさんのツイート: "ACPIの規格書を読んで独自で実装するのは辛いので、Intelの実装であるACPICAを使うと楽できる。 #osdev_moku2"

@liva_jy

Livaさんのツイート: "ACPICA使ってる場合の電源offは、AcpiEnterSleepStatePrep(5)から割り込み禁止して、AcpiEnterSleepState(5)でpoweroffするのだけど、そういう話ではないのかな"
Livaさんのツイート: "UEFI環境下(qemu with OVMF)でACPICAの初期化で落ちる気がするんだけど、ACPICAの問題なのか、それとも移植の問題なのか・・・(8割型移植の問題 #liva_notebook"
Livaさんのツイート: "やっぱACPICA初期化時にgrubがロードしたフォントファイルを破壊してるなぁ。これはメモリアロケータ側の問題か? #liva_notebook"
Livaさんのツイート: "とりあえずフォントファイルを退避させる事で、AcpiInitializeSubsystem()は通るけど、AcpiInitializeTables()は途中で落ちる #liva_notebook"
Livaさんのツイート: "フォントファイルコピーしたら破壊されなくなったとか呟いたけど、そもそもロード時にコピーしてるはずなんだよな。やっぱメモリアロケータがぶっ壊れてるのか #liva_notebook"
Livaさんのツイート: "なぜ僕はこれまでメモリ破壊系のバグ調査にqemuの-sオプションを使ってこなかったんだ #liva_notebook"
Livaさんのツイート: "ブレークポイント仕掛けたらRemote 'g' packet reply is too longとか言われた後にぶっ壊れる #liva_notebook"
Livaさんのツイート: "あー、UEFI環境ではRSDPはUEFIから与えられるのか、自分で探す(AcpiFindRootPointer())のでは見つからないのね #liva_notebook"
Livaさんのツイート: "参考:ACPI Spec 5.2.5.2 Finding the RSDP on UEFI Enabled Systems #liva_notebook"
Livaさんのツイート: "grub(というかmultiboot)でACPI RSDPを定義してるのはそういう意味だったのね、RSDPの探索を省略するためかと思った #liva_notebook"
Livaさんのツイート: "BIOS環境下でもmultibootがRSDPを返してくれるかどうかは要検証だなー #liva_notebook"
Livaさんのツイート: "とりあえずmultibootからもらったRSDPを渡したらACPICAの初期化は通った #liva_notebook"
Livaさんのツイート: "最近調べてた事。q35とhpetはOVMFのサポート対象外っぽいふいんき https://t.co/xBzr20fhZW #liva_notebook"
Livaさんのツイート: "biosベースでmultiboot kernelを起動すると、grubでgfxpayload=keepにしてもフレームバッファにならないの、multibootヘッダの設定が必須だったっぽい https://t.co/VUe2rLqzRP #liva_notebook"
boot - How do I force GRUB to keep video mode after switching to the OS? - Super User
Livaさんのツイート: "multiboot2 header tagは8バイトアラインというのを読み落として嵌った。ちゃんとgrubのソースを読めばもう少し早く見つけられたような #liva_notebook"
Livaさんのツイート: "新マシンで動作検証した結果、見つけた新しいバグ。PCIの初期化をACPICAの初期化後にやろうとすると、ACPICAがPCIを叩いて死ぬっていう。 #liva_notebook"
Livaさんのツイート: "でも、デバイスの初期化のためにはACPICAの関数叩いたりするからなぁ。上手く解決しないといけない。PCIバスだけ先に初期化するのもなぁ #liva_notebook"
Livaさんのツイート: "おかしいな。qemuをアップデートしてもさっきまではACPIのHPETエントリが出てこなかったのに、なぜか突然出てきた #liva_notebook"

The ACPI Component Architecture Project
FadisさんはTwitterを使っています 「Linux 5.4から追加されたkernel lockdownは有効にするとrootであってもユーザ空間からカーネルの振る舞いを変えるような操作が拒否されるようになる。kernel lockdownが有効な場合攻撃者がroot権限を手に入れた状況でも、カーネルが提供するセキュリティの為の仕組みが正常に機能する事が期待できる」 / Twitter
FadisさんはTwitterを使っています 「ところがこのlockdownをユーザ空間から無効化する方法が見つかった。ConfigFSはACPI tableを書き換える機能を提供しているが、ACPIのMethodは任意のメモリに書ける為、kernel lockdownを無効にできる。現在はlockdown中はACPI tableを変更できなくする修正が入っている https://t.co/PzwQx4R2eq」 / Twitter
Another Attack Vector Uncovered For Bypassing Linux Lockdown Via ACPI Tables - Phoronix
FadisさんはTwitterを使っています 「修正がわかりやすすぎてウケる https://t.co/rY04RW16et」 / Twitter
[PATCH] acpi: disallow loading configfs acpi tables when locked down - Jason A. Donenfeld

PCIe

LPC

Low Pin Count - Wikipedia
Low Pin Count - Wikipedia
Wayback Machine

Active State Power Management

Active State Power Management - Wikipedia
3.7. Active-State Power Management
AR# 36325: PCI Express のデザイン アシスタント - ASPM をオフにする方法
MXI Express を使用する際に Windows がフリーズします - National Instruments
最新Red Hat Enterprise Linux 6.0の全貌 - アイドル時の消費電力を20%削減:ITpro
【短期集中連載】大原雄介の最新インターフェイス動向

PC Watch

【イベントレポート】【PCI-SIG Developers Conference 2010レポート】 PCIe Specificationの詳細 - PC Watch
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
ストレージクラスメモリにも対応した次世代インターコネクトの業界標準化団体が発足 ~AMD、ARM、Dell EMC、HPE、IBM、Micron、Samsungなどが参加 - PC Watch

OSDev

PCI - OSDev Wiki
OSDev.org • View topic - ACPICA does not return PCI devices
OSDev.org • View topic - PCI enumeration - do you cache the device list?

スライド

Interrupt Affinityについて
Interrupts on xv6

割り込み

RSS対応NICなのに割り込み処理が複数コアに分散しない…のはirqbalanceが動いてなかったから - 酒日記 はてな支店
デュアルソケット・ザ・ワールド Dual Socket な PC の割り込みに付いて
Linux / x86_64の割り込み処理 第2回 | VA Linux Systems Japan株式会社
Linux / x86_64の割り込み処理 第4回| VA Linux Systems Japan株式会社
Interrupts
日記 (2015 年 2 月上旬)

@syuu1228

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 付属資料 最近のPCアーキテクチャにおける割り込みルーティングの仕組み
howto_implement_hypervisor/part4.md at master · syuu1228/howto_implement_hypervisor
part4_5.pdf
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第4回 I/O仮想化「割り込み編・その1」

Twitter

PCI

Livaさんのツイート: "今日のデバッグでdeassertされないPCI割り込みによって無限に割り込みが発生するバグが再発してしまったので、ついでにそれも修正してしまう #liva_notebook"
Livaさんのツイート: "今回はE1000ドライバがdeassertしてないような気がしている #liva_notebook"
Livaさんのツイート: "PCI割り込みの件は、FreeBSD互換レイヤでのithreadの実装ミス(ハンドラ内でEOIを発行しない)なのだけど、これどうやって修正すればよいんだ。。。 #liva_notebook"
Livaさんのツイート: "なるほど、これか https://t.co/5Dtdf36c6w #liva_notebook"
Livaさんのツイート: "pre_ithread等はintr_event_create()で登録されてて、x86だとここ https://t.co/NvTisY7eWs #liva_notebook"
Livaさんのツイート: "このコードから分かるのは、filter処理後にAPICにEOIを投げる。そしてithread処理前にAPICの該当エントリをdisableし、処理終了後に最有効化する。なるほど、たしかにこれなら上手く動くわ。 #liva_notebook"
Livaさんのツイート: "IDT登録周りの関数の設計変更が必要になったけど、とりあえずFreeBSD互換ドライバでもAPICへのacknowledgeができるようになり、interrupt stormはなくなった。めでたしめでたし #liva_notebook"

PDA

Fadisさんのツイート: ". @omasanori さんの「Portable Driver Architecture (PDA) でユーザ空間PCIデバイスドライバ」が始まります #kernelvm"
Fadisさんのツイート: "「ring0でデバイスドライバをやっても新規性がない」 #kernelvm"
Fadisさんのツイート: "ユーザ空間でドライバを動かすことには カーネルを小さく保つ、ドライバが死んだ時の影響を限定できる、ユーザ空間の方がAPI安定性が高くドライバの再利用性が高まる、etc etc #kernelvm"
Fadisさんのツイート: "ユーザ空間PCIデバイスドライバを作るためにカーネルがユーザ空間に提供しなければならないもの: 割り込みハンドリング、デバイスが増えた減ったの管理、デバイスに対する入出力を行う仕組み #kernelvm"
Fadisさんのツイート: "Portable Driver Architecture: 高速なPCIデバイス(Infinibandなど)のドライバをユーザ空間で書く為のC言語で書かれたAPIを提供する #kernelvm"
Fadisさんのツイート: "ペイロードが小さいとどうしてもユーザ空間とカーネル空間を行き来するオーバーヘッドによって性能が落ちるが、ペイロードが大きい場合カーネルドライバと比較して遜色ない性能が出る、と #kernelvm"
Fadisさんのツイート: "「カーネル/VMの中でもネットワーク系の方にはこのDPDKというのは衆知の物のようなのですが」 #kernelvm"
Fadisさんのツイート: "DPDKはネットワーク専用に実装されているためネットワーク処理のある程度のレベルまでをDPDKでやってくれるが、ネットワーク処理以外に応用ができない。PDAはそうした処理が用意されていないが汎用的に使うことができる #kernelvm"
Fadisさんのツイート: "PDAではもともとLinuxカーネルにあるuio_pci_genericとは別にuio_pci_dmaを実装している。uio_pci_dmaはgenericと比べて明らかにソースコードが大きい → メモリ管理のため #kernelvm"
Fadisさんのツイート: "PCIデバイスとのデータ転送にDMAを使いたい → ユーザ空間で確保したメモリはスワップアウトするし不連続なメモリが割り当てられる可能性もありデバイスからのDMAで上手く書けない。NUMA環境ではDMAするメモリとPICデバイスがソケットを跨いで別のプロセッサの配下に置かれてしま… https://t.co/xTjdlmYQFo"
Fadisさんのツイート: "uio_pci_dmaではカーネル側でDMAするのに都合が良いメモリの確保を行う #kernelvm"
凍ってない方のアカウントさんのツイート: "”uio_pci_generic only supports legacy interrupts so it is not usable with SR-IOV and virtual hosts which require MSI/MSI-X interrupts.”… https://t.co/1Uyk3w9r5g"
Fadisさんのツイート: "Wrap-mapping: 同じバッファを2連続でアドレス空間にマップする → バッファをリングバッファとして使う場合に境界チェックを減らせる #kernelvm"
凍ってない方のアカウントさんのツイート: "あ、はい、uio_pci_dmaもIOMMUやろうとしてるっぽいね、なんか被ってるね https://t.co/9A5CqhKdCH #kernelvm"
Fadisさんのツイート: "pdaのオリジナルは https://t.co/6kJ3QmpuBr だけど、最近のカーネルで動かなくて、CERNが公開しているfork https://t.co/CsfCEaujkQ が最新のカーネルで動く #kernelvm"

IOMMU

とみながたけひろさんはTwitterを使っています 「xboxについてのMSの発表みると、そんなことは百年前から対策済みだというのがわかる(IOMMU使う) https://t.co/ISiHcMYkFz」 / Twitter
本の虫: 検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない
とみながたけひろさんはTwitterを使っています 「「普通のPC/サーバのユーザは善意だと考えてセキュリティを設計するが、俺たちは技術的に改造が無理なカスタムのメインSoC以外は全部改造されると思って作る」というのを話しているのだけど、これは国なりなんなりにスマフォ奪取されて解析される、みたいなケースの対策も同じ感じなのだろうなと思った」 / Twitter
とみながたけひろさんはTwitterを使っています 「ちゃんと確認したわけじゃないけど、聞く話では高級スマフォではFLASHメモリがNVMe接続だそうで、だとするとPCIeがSoCから出ていることになる。物理攻撃するならこのへんなんだろうな。あと最近のWiFi6とかも爆速だから、昔みたいにSDIOとかでは辛そうだし、ここも頑張ればいぢわるできそう」 / Twitter
FadisさんはTwitterを使っています 「XBOXもXBOX360もハードウェアに対するインジェクションでハックされてきた事を思うと重みがある」 / Twitter

5/1 自作OSもくもく会さんのツイート: "インテルのチップセットのデータシートに書いてあった。TOLUD (Top of Low Usable DRAM)というレジスタに設定されたアドレスから4GBまでがPCIバスへのアクセスとなるらしい。BIOSが物理メモリ量を調べて適切にセットしてくれるとのこと。"
5/1 自作OSもくもく会さんのツイート: "PCIホストブリッジだけはコンフィグレーションレジスタを実装しなくていいことになってるんだけど、その場合Vendor IDとかはどう見えるの?"
Livaさんのツイート: "PCIのlegacyな割り込みを実装するにはACPICAまで実装する必要があった"
Kentaro Ebisawaさんのツイート: "PCI Express はデバイス使う分には楽なのだが、Root Complex とか各種 Capability を深堀しようとすると突然情報が少なくて困る。プロはチップベンダーから情報もらうんだろうけど、自分みたいな素人は公開ドキュメントだよりだからツライ。"
ゆたかさん🐬さんのツイート: "CPUのコア数は多くあっても、実は遊んでいるコアがあり、すべてのコアを使いきるのは難しいです。 OSが古かったり、PCIeカードが割り込み負荷分散に未対応だったりすると、先頭のコアばかり使われることになり、宝の持ち腐れ。"
ごごてぃさんのツイート: "あれ?WS2016からPCI-Eパススルーできるようなブログの記事があったけど、マジであるのか・・・ https://t.co/WbMGbKsVAL"
Passing through devices to Hyper-V VMs by using discrete device assignment – Hey, Scripting Guy! Blog
Fadisさんのツイート: "linux-4.20でデバイスドライバ同士がP2P DMAを利用する為のインターフェースが追加される見通しらしい。P2P DMAはPCI-Expressのデバイス間でホストのメモリを介さずに直接データを受け渡す仕組みで、GPUや100GbE、NVMe等の滝のようにデータを流すデバイスでの活用が期待される https://t.co/5iB1LYBVbE"
PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0 - Phoronix
Fadisさんのツイート: "ネットワークから受け取ったデータを加工してデータベースに書くまでの間にCPUは全くデータを見ていない未来が少しづつ近づいている("
ryoさんはTwitterを使っています: 「queueの数とMSI-X vectorの数とCPUの数とlinkstatusをinterruptで見る/見ないの組み合わせをマジメに考え出すとめっちゃめんどくさいな。RX/TXを独立にするしないも考えだすとさらに倍率ドン」 / Twitter

The Linux Kernel PCI
https://www.kernel.org/doc/Documentation/acpi/enumeration.txt
The PCI ID Repository
PCI Vendor and Device Lists
Re: Missing ACPI PCI devices in acpi_pcidev_scan
Does PCIe hotplug actually work in practice? - Electrical Engineering Stack Exchange
PCI Express – Raphine Project<サイト製作中>
PCのメモリをいじったらPCIE Bus errorになってrebootできなくなった時 - yamaguchi.txt
PCI Confguration space access methods
PCI Memo · osdev-jp/osdev-jp.github.io Wiki
PCI Express DIY hacking toolkit | Firmware Security
まつうさんさんはTwitterを使っています 「PCI ExpressからDMAを使ってメモリ上のデータをぶっこ抜き。悪用しか思いつかないけど悪用したらあかんぞ! / “GitHub - ufrisk/pcileech: Direct Memory Access (DMA) Attack Software” https://t.co/nTj59Ev6tb」 / Twitter
ufrisk/pcileech: Direct Memory Access (DMA) Attack Software
日記 (2018 年 11 月中旬)
日記 (2018 年 11 月下旬)
PCIE スニファ windows - Google 検索
Specifications | PCI-SIG
Intel PCH I/Oポートフレキシビリティ機能について - DXR165の備忘録
Ricerca Security: "I'll ask your body": SMBGhost pre-auth RCE abusing Direct Memory Access structs
DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo

APIC

APIC Timer

Twitter

Nerry さんのツイート: "moeでHPETやめてLAPICタイマーにしようとしたら結局スケジューラーでHPETの機能が必要になって困った😩"
デダルス・ユメノさんのツイート: "HPETが必要な理由が気になります… "
Nerry さんのツイート: "moeもプリエンプションそのものは他のOSと同様に数msのタイマー割り込みを契機としているが、スレッドごとのCPU使用率はもっと精度の高い(MHz単位の)タイマーで計測しているため"
Nerry さんのツイート: "CPU使用率計算するのにタイマー割り込みだと遅すぎるんです… "
Nerry さんのツイート: "そもそもそこまで高精度にCPU使用率計算する必要あるのか?🤔"
Nerry さんのツイート: "LAPICタイマー全てのコアで実行したろ→カウンターがコア数分増えて時計めちゃくちゃ"
Nerry さんのツイート: "IDTもコアごとに分離する必要がある・・・?🤔"
デダルス・ユメノさんのツイート: "LAPICタイマーはポーリングでも時間計れますよね… "
Nerry さんのツイート: "その発想はなかった… "

APIC timer - OSDev Wiki
Advanced Programmable Interrupt Controller - Wikipedia
Page 378
ハードウェアタイマー ‐ 通信用語の基礎知識
hiboma/clocksource.md at master · hiboma/hiboma
Local APIC timer interrupt - Linux Process Manager
Local APICのタイマ割り込み周波数を表示するメッセージ - ZDNet Japan
Linux source code: arch/x86/kernel/apic/apic.c (v3.4) - Bootlin

OSDev.org

OSDev.org • View topic - Set IMCR to 0x1 to mask external interrupts?
OSDev.org • View topic - Question about virtual wire mode
Symmetric Multiprocessing - OSDev Wiki
APIC - OSDev Wiki
IOAPIC - OSDev Wiki

interruptの意味 - 英和辞典 Weblio辞書
Eiiti Wadaさんのツイート: "@iorivur 割り込みっていう日本語は... 1959年の夏, パラメトロン計算機の出力装置が直前の文字の処理を終えたことを走行中の計算機に知らせる方法はないかとの議論で割り込みのアイディアを得ました. そして最初の並列処理のプログラムを書きました. 難かしかったなぁ."
パラメトロン計算機: 世界一周プログラム
livaの雑記帳(2016/10) – Raphine Project<サイト製作中>
Kimihiro Nonakaさんのツイート: "AMDのCPUはx2APICじゃなくてLAPICにAMD独自拡張のレジスタを追加してあるのか…(´・ω・`)"
Kimihiro Nonakaさんのツイート: "Ryzenもx2APICじゃないのか。Naplesのことを考えるとこっちも一緒に対応させたほうが良いかなぁ "ExtAPIC" | https://t.co/PNXuGP3XBv https://t.co/PNXuGP3XBv"
I/O APICのEOIが動かない - livaの雑記帳
Kimihiro Nonakaさんのツイート: "つーか、MSR_APICBASEのPHYSADDRってなんで32bitなの?(´・ω・`) これ書いたときは32bitだったの?"
Kimihiro Nonakaさんのツイート: "AMDプラットフォームでioapic(4)が二つ見えるのってnorth bridgeとsouth bridgeにそれぞれあるからなんかなぁ…。north bridge側にあるのはAPIC IDが8bitに拡張されているっぽいけどsouth bridgeのはそうなっていない?"
Livaさんのツイート: "LAPICのレジスタ読んでAPIC ID取得するのと、RDTSCP使うのとで何倍くらいの差が出るのか、調べてみたくなった"
x2APICとinterrupt remapping - 睡分不足

HPET

HPET - OSDev Wiki
High Precision Event Timer - Wikipedia
www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf
本の虫: VistaでHPETが使われていることの確認
NOKUBI Takatsugu野首貴嗣さんのツイート: "タイマー ACPI tableからHPETアドレスを取得、論理=>物理アドレスに変換 #kernelvm"
Fadisさんのツイート: "HPETはLinuxだとデバイスファイルをmmapして読んでるけどACPIから直接読む #kernelvm"
HPET – Raphine Project<サイト製作中>
​RyzenMaster and HPET can make your Ryzen computer run slower - PC World Australia
社会人でもOSを作りたいさんのツイート: "Celeron Nシリーズ(2015年頃のCPU)のデータシートによれば,HPETはIntel Legacy Blockに含まれている.HPETでさえレガシーデバイス扱いなのか…"
社会人でもOSを作りたいさんのツイート: "仕方ないのでLAPIC Timerで時間計測するようにした"
The Linux Kernel Disabling HPET For Intel Coffee Lake - Phoronix

Video

https://www.kernel.org/doc/Documentation/acpi/video_extension.txt
JF: Linux Kernel 2.6 Documentation: video_extension.txt
Extended Display Identification Data - Wikipedia, the free encyclopedia
VESA DDC(EDID)ってなんだ? ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
VGA (VESA DDC) - HwB
用語解説
Intel Processor Graphics 調査メモ - DXR165の備忘録
acrn-hypervisor/hld-APL_GVT-g.rst at master · projectacrn/acrn-hypervisor
Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
Intel graphics
マルチディスプレイのまとめスタイル修正: Intel IGP
メモリ セグメントへの仮想アドレスのマッピング - Windows drivers | Microsoft Docs
メモリーエラー | PhoenixKnight

Intel Sensor Hub

Linux 4.9、これまでで最も大きなリリースに | マイナビニュース
2016年12月12日 Linux 4.9が正式公開,2200万行を超える史上最大のビッグリリースに:Linux Daily Topics|gihyo.jp … 技術評論社
技術者見習いの独り言: VAIO Z(フリップモデル)に Arch Linux をいれる
Presentation Title
【後藤弘茂のWeekly海外ニュース】センサーハブによって変わるモバイルとそれを統合するウェアラブル - PC Watch
https://www.kernel.org/doc/Documentation/hid/intel-ish-hid.txt
4Gamer.net ― インテル,ソフトウェア開発者向に大規模イベントを開催。次世代Ultrabookは各種センサーを備え,Windows 8での利用が前提に
DCMI-HI DCMI Host Interface Specification

Intel Smart Sound Technology

Sound Open Firmware

The Linux FoundationがSound Open Firmwareプロジェクトを歓迎 - The Linux Foundation
Sound Open Firmware
thesofproject/sof: Sound Open Firmware
SOF Project documentation — SOF Project 0.1 documentation
Intel Architecture — SOF Project 0.1 documentation
Supported Platforms — SOF Project 0.1 documentation
Firmware - AlsaProject
Home - Sound Open Firmware
2019年7月10日 Linux 5.2がリリース ―Sound Open Firmware,PSI機能の改善など:Linux Daily Topics|gihyo.jp … 技術評論社

インテル® スマート・サウンド・テクノロジー
【イベントレポート】Intel、3D XPointベースのSSDやCurieの実シリコンをデモ ~IoTやウェアラブルに対する本気度を見せたクルザニッチ氏の基調講演詳報 - PC Watch
Intel Smart Sound Technology Audio DSP Non-HD Audio ACPI High Level Design - PDF
Intel,「Broadwell-U」ことノートPC向け第5世代Coreプロセッサ14製品を発表 - 4Gamer.net
ノートPC向けなのにOCできるK付きもXeonも!第6世代Core(Skylake)が46種類増加 - 週刊アスキー

MIPI SoundWire

北森瓦版 - Intelチップセットのロードマップ―Z390は2018年下半期予定
MIPI SoundWire
ケイデンスが、業界初のMIPI SoundWire Controller IPソリューションを提供
ケイデンス、業界初のMIPI SoundWire v1.1高品質オーディオソリューション向け設計IP、検証IPを提供
Intel roadmap shows when to expect Coffee Lake-S (300 Series) - CPU - News - HEXUS.net
MIPI SoundWire v1.1のIPコアと検証IP、Cadenceが提供 | 日経 xTECH(クロステック)
【特集】今年後半の薄型ノートやタブレットは音質が大きく向上(するかもしれない) - PC Watch

タッチパッド

Synaptics タッチパッド - ArchWiki
libinput - ArchWiki
Linuxでタッチパッドのスクロール機能を使うには - @IT
タッチパッド - Wikipedia
Touchpad - Wikipedia
Synaptics TouchPad Interfacing Guide
2.1. ALPS Touchpad Protocol — The Linux Kernel documentation
paul_ps2emu.pdf
psm(4)
なかのん&マジックさんのツイート: "中クリックとAlt+Enterでタブに開くという共通動作を知らない人も何人か見かけた。"
なかのん&マジックさんのツイート: "@nyoro_712 macOSのtrackpadだとどうしようもないんですけど、大半のWindows PCについてるSynapticsのタッチパッドだと、3本指タップを中クリックに設定できるんですよね。ちなみに、後者の場合はブックマークの展開先は既に設定に存在しています(browser.tabs.l… https://t.co/40vmdQqRku"
なかのん&マジックさんのツイート: "@nyoro_712 無さそうなのと、特にバグとして報告もされていないので、需要が無いのかもですね。"
なかのん&マジックさんのツイート: "@nyoro_712 おそらく、historyはGUIで探すのが非効率的なので、URLバーからタイトルやURLで探してる人が多いんじゃないかという気がします。その場合、Alt+Enterで済みますから。"
なかのん&マジックさんのツイート: "@nyoro_712 一応、Firefox 3以降は、「URLバーでアクセスしたいページをbookmarkとhistoryの両方から検索すれば良い。そのために、180日分historyを残し、消したく無いものには☆を付けてもらってブックマークの未整理フォルダに突っ込んでおいて消えないようにしておこう」… https://t.co/h1kX1XHNwL"
なかのん&マジックさんのツイート: "@nyoro_712 Firefox 2開発時には新しい使い方を押しつけようとしたんですが、それは反発が大きかったので一旦取り下げられ、Firefox 3で、今までの使い方もできるけど、新しいURLバー中心の動作もできるようになりました。私もブックマークツールバーを多用しつつ、URLバーも使い、用途に… https://t.co/Wo5XYneFk9"

マウス

PS/2仕様
ardionoにPS/2マウスを接続する | ものづくりとプログラミング日記
Arduino Playground - Ps2mouse
moused(8) FreeBSDドキュメントJMan
PS/2 Mouse Interfacing
"8042" PS/2 Controller - OSDev Wiki

キーボード

キーボード コントローラ(KBC)
はりぼてOSをUEFIで起動する/4日目 - ねりりんと借り初めのものがたり
PORTABOOK - ねりりんと借り初めのものがたり
アラビア語キー配列 - Wikipedia
Keyboard layout - Wikipedia
IBM PC keyboard - Wikipedia
Scancode - Wikipedia
スキャンコード - Wikipedia
キー配列 - Wikipedia
Altキー - Wikipedia
AltGr key - Wikipedia
QWERTZ配列 - Wikipedia
The PS/2 Keyboard Interface
The PS/2 Mouse/Keyboard Protocol

リセット

ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
Nerry さんのツイート: "再起動と電源切断をUEFI RT ResetSystem API呼び出す方法から ACPI の提供するサービスに移行してる最中だけど、一部環境(qemu)でACPIリセット対応してない機種がある。 リセットレジスタはオプショナルのようだからこれでも正しい動作な気はするが・・・"
Nerry さんのツイート: "そもそもIOポートでリセットって一体何通りの方法があるんだ?🤔 ACPIのリセットポートはOADGに書いてるポートとかと全然違うんだが"
Nerry さんのツイート: "確か普通のPC/ATには比較的古い機種で使える遅いリセットと比較的新しい機種で使える速いリセットが何種類かあって、それの正しい呼び出し順番を昔どっかで見た気がする。 ACPIリセットレジスタはそれらとまた別のポート。"
Nerry さんのツイート: "ACPIリセットポートはCF9がよく使われてるようだがこのIOポートってPCIコンフィグレーションと被ってないか?"
市川 真一さんのツイート: "CF8 をダブルワード・アクセスする場合に PCI_ADDRESS レジスタに対する R/W になるので、CF9 にバイト・アクセスする場合には PCI コンフィグレーションとは関係なく使えると思います… "

TPM

TPM の推奨事項 (Windows 10) | Microsoft Docs
TPM 2.0 Library Specification | Trusted Computing Group
1
TCG Opal 2.0 - Technology - Apacer for Industrial - The most reliable storage and memory
TPM 1.2と2.0の機能の比較 | Dell 日本
TPM2.0は”なにもの”で、どこで(何で)対応するのか?: なんとなく綴ってみた
Trusted Platform Module - Wikipedia
今夏からWindows 10 PCはTPM 2.0搭載が必須に - PC Watch
松本 泰さんはTwitterを使っています 「MSのVirtual TPMが、FIPS140-2 取得 https://t.co/TDdMR96Xv7 これ、ゆりか先生の プラットフォームセキュリティin Windows ブートタイム保護 概要編 https://t.co/JqzQ7NgJPv 一緒に見ると、理解が深まると思うよ。」 / Twitter
140sp3690.pdf
プラットフォームセキュリティin Windows ブートタイム保護 概要編
suzakiさんはTwitterを使っています 「メモ。 TPM 1.2と2.0の機能の比較 https://t.co/U4BEehjS8N TPMで使う暗号アルゴリズムの一覧が便利。」 / Twitter
TPM 1.2と2.0の機能の比較 | Dell 日本

FIDO

WebAuthn(FIDO2)

パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ - Publickey
Web Authentication: An API for accessing Public Key Credentials Level 1
FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
パスワード依存脱却へ一歩前進、次世代Web認証「WebAuthn」が勧告候補に | マイナビニュース
Web Authentication API で FIDO U2F(YubiKey) 認証 | blog.jxck.io
FirefoxがWeb Authentication APIを導入
マイクロソフト、WebAuthnをEdgeに実装。パスワード不要、生体認証やPINでWebサイトへログイン可能に。2018年秋のWindows 10アップデートで - Publickey
WebAuthn demo
Chrome 70から、WebAuthnでMacのTouchIDとAndroidの指紋認証がデフォルトで利用可能に。Webサイトへのログインもタッチで - Publickey
Yahoo! Japanが近日中にFIDO認証に対応すると表明、パスワードを使わず生体認証などでWebブラウザからのログインを可能に - Publickey
IdM実験室: Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す
Eiji Kitamura / えーじさんのツイート: "Chrome 70 の新機能 - Windows でのデスクトップ PWA に対応、WebAuthn での指紋認証、名前付き Worker など https://t.co/9tp9JGBaSj"
Web Authentication: An API for accessing Public Key Credentials Level 1
FIDO Alliance FIDO2 Project - FIDO Alliance
指紋認証でヤフーへログイン可能に、FIDO2方式での認証に各サービスが対応 - INTERNET Watch
「FIDO」で“パスワードレス時代”到来か? ヤフーと三菱UFJに続きLINEも導入 - INTERNET Watch
Client to Authenticator Protocol (CTAP)
WebAuthnに対応したSafari Technology Preview 71、アップルがリリース - Publickey
[WIP]WebAuthnのためのnavigator.credentials.create仕様読解 - murak.me
WebAuthn @ DroidKaigi 2019 - Speaker Deck
パスワードを不要にするFIDO2プロトコルに、Android 7以降の全デバイスが適合。FIDOアライアンスが「AndroidがFIDO2認定取得」と発表 - Publickey
W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins - FIDO Alliance
パスワード不要のログイン方法「WebAuthn」がウェブ標準になる - GIGAZINE
W3C、パスワードを不要にする「Web Authentication」(WebAuthn)を勧告として発表。Chrome、Firefox、Androidなど主要ブラウザですでに実装済み - Publickey
dynamis (でゅなみす)さんのツイート: "Google AccountがいつまでもWeb Authnの標準仕様(Firefoxで実装済み)に対応しないから、非標準実装のWeb AuthnサポートもGoogleなど特定サイトだけを対象に入れようか議論してる。 なんともはや。。。何のための標準化なのかって気持ちになる。 https://t.co/tVIvU8Uw71"
Backward-Compatibility FIDO U2F support shipping soon in Firefox | Mozilla Security Blog
ASCII.jp:Windows 10+FIDO2デバイスでパスワード入力なしにMicrosoftアカウントにログイン (1/3)|Windows Info
第570回 セキュリティキーを使って,Ubuntuで多要素認証をしてみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
WebAuthnことはじめ - Mercari Engineering Blog
パスワードレス認証WebAuthnの勘所と対応状況:新春特別企画|gihyo.jp … 技術評論社
W3CとFIDO AllianceはセキュアでパスワードなしログインのWeb標準であるWebAuthnを最終化した
Androidスマホが指紋認証でウェブサービスへのログインが可能に - GIGAZINE
webauthn_study_ritou.pdf - Speaker Deck

Windows Hello

IdM実験室: [FIDO/Windows10]idcon vol.20(別名fidcon)が開催されました
【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [3] パスワードとさよなら!? Windows HelloとMicrosoft Passportで実現する世界|セキュリティ|IT製品の事例・解説記事
パスワードは時代遅れです:Windows 10時代の新認証 「Windows Hello/Microsoft Passport」と「FIDO」を理解する (1/5) - ITmedia エンタープライズ
Windows Hello を Web で使うための Web Authentication API (FIDO 2.0) について調べた - しばやん雑記
FIDO in Windows10
Windows Hello とは
Windows Hello | Windows 10 | Microsoft
Windows Hello の概要とセットアップ
Windows Hello for Business (Windows 10) | Microsoft Docs
Windows Hello for Business および Azure AD 経由でのパスワードを使用しない ID の認証 | Microsoft Docs
Webでの生体認証をヤフーさまとともに - Windows Blog for JapanWindows Blog for Japan
Windows 10 で FIDO 認証技術をサポート | Windows Blog for Japan
Windows Helloが生体認証機能つき指輪「Token」に対応 - PC Watch
Web Authentication API 紹介 (Windows Hello を使った Edge 開発) – Tsmatz
MicrosoftアカウントにWindows Helloでログイン可能に ~EdgeがWebAuthn/FIDO2に対応 - PC Watch
Windows Hello for Business (Windows 10) | Microsoft Docs
Passwordless Web Authentication Support via Windows Hello | Mozilla Security Blog
Windows 10搭載の生体認証「Windows Hello」がFIDO2認定を取得 ~Webブラウザでもパスワード不要でログイン可能に - PC Watch

News

Googleアカウントの2段階認証で使用可能なUSBセキュリティキー「FIDO U2F Security Key」を使ってみました - GIGAZINE
Googleアカウントのセキュリティを最大限に高めるUSBキー「FIDO U2F SECURITY KEY」 - ケータイ Watch
GitHub、大容量ファイルストレージやFIDO U2F対応などの新サービス発表 | マイナビニュース
Bluetooth Smartデバイスで二段階認証、FIDOの仕様に - ケータイ Watch
MS、Windows 10にパスワード不要の認証技術「FIDO」を採用 - ITmedia エンタープライズ
News & Trend - ポストパスワードの有力候補、ユーザー認証の新仕様「FIDO」が始動:ITpro
半径300メートルのIT:Googleの二段階認証を3400円のUSBキーで試す - ITmedia エンタープライズ
News & Trend - 認証標準化団体が「FIDO 2.0」のWeb API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro
パスワード管理ツールを一元化するオープンソースプロジェクト「Open YOLO」、DashlaneとGoogleが提携 -INTERNET Watch
FIDO Alliance、新仕様「FIDO 1.1」とJapan WG設置を発表 -INTERNET Watch
【清水理史の「イニシャルB」】 入手をきっかけに2段階認証有効化大会を開催 YubicoのUSBセキュリティキー「YubiKey 4」 - INTERNET Watch

blog

FIDO U2Fをサポートする十数個のサービス | YubiKey BLOG
煩雑なパスワード管理から解放してくれる「FIDO」とは? - THE ZERO/ONE
アイデンティティ管理とその動向 - Yahoo! JAPAN Tech Blog
FIDO認証の進化とさらなる応用展開 (第3回FIDOアライアンス東京セミナー講演) - Yahoo! JAPAN Tech Blog
次世代認証プロトコルFIDOの動向 - Yahoo! JAPAN Tech Blog

スライド

Tokbind-fido
Idcon gomi-052715-pub
slides_06.pdf

Qiita

yubikey - Googleの二段階認証にセキュリティキーを使う - Qiita

Twitter

Rockridgeさんのツイート: "Fx48:FIDO U2F v1.1 APIの初期実装が完了。security.webauth.u2fとsecurity.webauth.u2f_enable_softtokenの設定を有効化することで利用できる。参照:… https://t.co/EyDiiDX13q"
Rockridgeさんのツイート: "FIDO U2FをベースにW3Cで策定中のWeb Authentication APIについて、MozillaがFirefoxに実装する意向を表明した。 / “Intent to implement and ship: Web …” https://t.co/MIwCwKP6gT"
Rockridgeさんのツイート: "Fx57:FIDO U2F Security KeyとなるUSBヒューマンインターフェイスデバイス(HID)をサポート。2段階認証にUSBキーが使えるようになる。なお、ソフトウェアライブラリはRust言語製。参照:… https://t.co/ZJn007joFl"
Rockridgeさんのツイート: "Firefox 60において、Googleアカウントの2段階認証に既に利用しているU2Fデバイスについては、Web Authentication APIに対応していなくてもサポートする方針。ただし、数年間に限定した話のようだ。 https://t.co/umRmiLkSoA"
Rockridgeさんのツイート: "Fx59:FIDO U2Fデバイスによる認証が利用できるのは、HTTPS接続されたWebサイトのみ。 / “1247124 - Use [SecureContext] for FIDO U2F JS API” https://t.co/4Uhh9m66om"
nov matakeさんのツイート: "“For example, all YubiKey 4 devices would have the same attestation certificate; or all Samsung Galaxy S8’s would have the same attestation certificate.” えっ、デバイスごとにちがう鍵埋めてんじゃなかったのか... https://t.co/00sRMfVy7i"
FIDO Alliance FIDO TechNotes: The Truth about Attestation - FIDO Alliance
82さんのツイート: "デバイスごとに異なるキーペアに各社のCAやらがsignしてるはず→Attestation Certificate… "
Yoshikazu Nojimaさんのツイート: "このページのKey generation scheme used by Yubico U2F devicesという図に、 Device Secretという物が載っていますが、これが「Credential IDから秘密鍵求める用の鍵」で、 こちらはデバイスごとに異なる鍵が焼き込まれている認識です。 https://t.co/1nin7eyHyt… https://t.co/IHK76N9pwA"
Key generation
82さんのツイート: "仮に同じモデルで同じ Private Key つかっちゃうと、どのデバイスでも Credential ID から、Private Key 復元できちゃうからそれはないはず。Root Certificate が同じという意味では? それともキーペア生成時に、シリアルとか混ぜ込むのかな…。とりあえず記事読んでみます。… https://t.co/UEGGCSPaGw"
nov matakeさんのツイート: "FIDO2-readyなYubiKey、もうあるしいいやと思ってたけど、もいっこもらっとけばよかったw… "
Borisさんのツイート: "Today I learned that the way the Google FIDO u2f polyfill is written means the API defined at https://t.co/HqYHPOMwPo can't actually be shipped in non-Chrome browsers in that form because the polyfill will stomp on it with code that only works in Chrome."

Web Authentication Working Group
FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
FIDO Alliance » Download Specifications
FIDO Alliance » Metadata Service
google/u2f-ref-code: U2F reference implementations
FIDO U2F 準拠した対応デバイス『ePass FIDO』販売開始
FIDO U2F対応認証オプション | CloudGate
u2fval
List of libraries
U2F - FIDO Universal 2nd Factor Authentication | Yubico
FIDO - マイクロソフト系技術情報 Wiki
Google、Androidスマホを2段階認証のセキュリティキーにできる機能 - PC Watch

日時管理

その他

日本標準時プロジェクト https/http を介してアクセスされる場合
てくろぐ: インターネット・トリビア: インターネットと時刻
関数の時間計測 - in neuro
システム障害なしにうるう秒を乗り切る技術の発達について|Rui Ueyama|note
melancholic afternoon
無理数時計の数理@tcfmミートアップ
「Firefox」でインストール済みアドオンが利用不能になる問題が発生中 - 窓の杜
クロックを用いた時間計測 - Qiita
Web標準になった高分解能な計時レベル2

基礎

CPU time - Wikipedia
System time - Wikipedia
Elapsed real time - Wikipedia
wall time
UNIXのwall-clock-time、user-cpu-time、およびsystem-cpu-timeとは何ですか?
wall clock timeとCPU timeの測定 - ange1の日記
real time/user CPU time/system CPU timeの違いをメモ – Siguniang's Blog

制度

国民の祝日

国民の祝日について - 内閣府
国民の祝日に関する法律 - Wikipedia
国民の祝日チェック

和暦

MS

Japan New Era Name Support Blog – 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログです
新元号 改元の対応のプロセス – Japan New Era Name Support Blog
新元号への対応についてのアップデート – Japan New Era Name Support Blog
ZZOさんのツイート: "マイクロソフトの.netは、これまでは西暦が入ったDateTime渡すと例えば"平成1年"という文字列を返してきたのに、新元号対応後は"平成元年"という文字列を返してくるように仕様変更される。行政提出用データやOCR帳票等に"元"を出してはいけないため調査と変更を急遽行っているという現状。"
ASCII.jp:日本マイクロソフト平野社長、Windowsの「新元号」対応を説明
牟田口大介さんのツイート: "Windows Updateで元号一文字表記のフォーマットが変更されたのやばすぎ…。 レジストリで 平成_平_Heisei_H だったのが 平成_㍻_Heisei_H になったらしいよ。だれだこれにOKだしたの"
Japanese Era Ligature Abbreviations – I'm not a Klingon ( )
新元号への対応について - Microsoft mscorp
kumoha683さんのツイート: "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras] "2019 05 01"="令和_令_Reiwa_R" 追加した"
個人のお客様向け:マイクロソフト製品の新元号への対応に関する情報 - News Center Japan
日本マイクロソフト、新元号対応への同社の取り組みをまとめたページを新たに公開【やじうまWatch】 - INTERNET Watch
【令和】Microsoft の元号対応が迷走している件 - Qiita
おごちゃん / 軽率の謗りを免れないさんのツイート: "だから、改元の日まで新元号を使っちゃいけないだってば。 新元号が使えるためには、システム日付が5/1になってないとダメってのは、正しい法律の実装。 とは言え、テストがなぁ...… "
楠 正憲さんのツイート: "誰も間に合うなんて約束してなかったはずだし、ギリギリで配信されても情シス部門がテストする時間がない訳で、急がない方がいいのでは? / “Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)” https://t.co/xbbZBv8zMW"
Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)
なかのん&マジックさんのツイート: "間に合わん方がオジサン達に良い薬な気もするな。 https://t.co/JYzns9i23j"
島鉄雄さんのツイート: "Windows がちゃんと令和対応してるか、プログラマならコードで確認したくなるよね? 元年の表示は自分で対応しないと駄目っぽい。 あと、Emacs26.2 だけどなんかインデントがおかしい...orz L"" という書き方に対応してないような気がする…ぐぬぬ… https://t.co/XUhcaKr62V"
ASCII.jp:Windows 10の令和対応パッチによる変更点を詳しく見る (1/2)|Windows Info
ASCII.jp:.NET Frameworkにおける新元号「令和」への対応 (1/2)|Windows Info
ASCII.jp:改元絡みでWindows 10の電卓アプリがバグってました (1/2)|Windows Info

PC Watch

【Windows 7 ユーザーズ・ワークベンチ】Windowsの言語環境カスタマイズと国際対応 - PC Watch
2019年発の“新元号”はWindowsアップデートで対応 - PC Watch
改元されたあとの“平成31年”表記はどう扱うべき? ~日本マイクロソフトやAdobeが改元対応を説明 - PC Watch
Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
新元号は“令和”に決定 - PC Watch
ATOK、4月18日より「令和」に対応。日付入力支援なども - PC Watch
日本マイクロソフト、Windows/Officeは自動更新で「令和」に対応 - PC Watch
日本マイクロソフト、「令和」に対応したWindows更新プログラムを提供開始 ~GW中は専用問い合わせ窓口で対応 - PC Watch

窓の杜

日本マイクロソフト、来年の改元に備えたサポート情報ブログを開設 - 窓の杜
新元号への対応に関するアナウンスは6月が目標 ~マイクロソフトが最新情報を公開 - 窓の杜
改元・新元号に備えた変更が「.NET Framework」に ~一部は7月の月例更新で自動配信 - 窓の杜
Microsoft、新元号の仮定義を削除するパッチをリリース ~「April 2018 Update」向け - 窓の杜
「Microsoft Silverlight」が新元号へ対応 - 窓の杜
2月のパッチでWindowsの元号処理や仮想マシンの復元に問題 ~Microsoftが修正版を公開 - 窓の杜
日本マイクロソフト、新元号対応に関連する情報を集約したWebページを公開 - 窓の杜

blog

山市良のえぬなんとかわーるど: Windows 10 ver 1803 の新元号仮定義(既に廃止)と e-Tax
新たな元号はJIS X 0213に入るのか | yasuokaの日記 | スラド
平成の次の新元号の文字列を取得するコード - にせねこメモ
新元号は「令和」に、施行は5月1日 | yasuokaの日記 | スラド
「令和」の典拠は日本古典なのか漢籍なのか | yasuokaの日記 | スラド
The Unicode Blog: Unicode Version 12.1 released in support of the Reiwa Era
The Unicode Blog: Unicode コンソーシアムは「令和」をサポートする Unicode 12.1 を正式リリースしました

Twitter

なかのん&マジックさんのツイート: "和が昭和とかぶったから、合成文字では読みにくそう。"
Taku Kudoさんのツイート: "NF(K)Cでは、U+F9A8 は U+4EE4 に正規化されるみたい。それとは別に、U+32FFの正規化が追加されるのかな。"
Kazuho Okuさんのツイート: "テストやってないのが問題なんじゃなくて、和暦対応に開発やコスト工数割かなきゃいけないのが問題なんですよ。ねんのため… "
しげっと(オルタ)さんのツイート: ""和暦の一の位が「1」だったら「元」に変換するロジックを組み込んでいた。しかし、十の位を考慮していなかったため、ミスが生じた" 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル https://t.co/tuV69sH54p"
世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル | 日経 xTECH(クロステック)
Haruhiko Okumuraさんのツイート: "「令和」の「令」は U+F9A8 じゃなく U+4EE4 だと書かれている https://t.co/C3kx855Dk9"
小熊善之さんのツイート: "こんなん発出されてたんか……。: 新元号名で使用する文字コードについて(周知) https://t.co/ZPxfm3NkgU"
改元に伴う企業等の情報システム改修等への対応 (METI/経済産業省)
20190405_kaigen_code.pdf
はむ弁護士さんのツイート: "海外の取引先は、日本がGWで長期休暇であることを伝えても「Golden week?なにそれ?」という感じで、日本側の事情を無視して休暇中にも連絡がくるのですが、今年は「Crown Princeが5月1日にNew Emperorに即位してReiwa Eraが始まるから10連休なんだ」と伝えると、わりと理解を示してくれる印象です。"
島鉄雄さんのツイート: "WSL(Ubuntu 18.04) の令和対応を完了! なんとかギリギリ間に合ったw /usr/share/i18n/locales/ja_JP を https://t.co/BJswKP6sBY の ja_JP で上書きして $ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 した。 strftime() の使い方の勉強にもなった。 (もしやる場合は自己責任でお願いします)… https://t.co/88PYrxGlFK"
sourceware.org Git - glibc.git/commit
島鉄雄さんのツイート: "ちょっと捕捉 $ sudo apt install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 で、デフォルトロケールを ja_JP.UTF-8 に変更済み https://t.co/BJswKP6sBY ここから ja_JP を落とすには、localedata/locales/ja_JP の横の blob をクリック→上の方にある raw をクリックで落とせる"

The Unicode Blog: New Japanese Era
https://www.unicode.org/L2/L2018/18220-u121planning.txt
平成の次、新元号のUnicodeコードポイントは「U+32FF」 | マイナビニュース
NHK NEWS WEB|NHKのニュースサイト
新元号は「令和」 | NHKニュース
「令和」は「beautiful harmony」海外に説明へ | NHKニュース
振込予定日がなぜか「1989年」に、コンビニATMで不具合 | 日経 xTECH(クロステック)
「令和」対応の開発者向けiOS 12.3とmacOS Mojaveベータ版がリリース。しばらく一般公開版は「平成31年」 - Engadget 日本版
第567回 令和を言祝ぐ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

夏時間

Twitter

その他

なかのん&マジックさんのツイート: "サマータイム批判してるツイートでも触れられてないけど、サマータイム導入したら、世界中の機器のアップデートが必要じゃないか?"
Hiroyuki Nishimuraさんのツイート: "日本はサービス残業という違法労働が民間だけでなく、役所ですら起きているのに是正されないという点。 時計を切り替えても、人間の体内時計は、ずれたままなので、2時間の差は健康被害を生む可能性が高い点。 他国は1時間差です。 なので、夏時間導入は労働者に不利益な結果を生むとおいらは思います… https://t.co/tpWC1Z8NgK"
何者でもないおっさんさんのツイート: ""daylight saving time"でgoogle scholarで検索すると、 交通事故が増える、心筋梗塞が増える、睡眠時間が減る、仕事場での怪我が増える、エネルギー消費は意外に減らない(むしろ増える)等、ろくなのが出てこないw 前向きな論文は被引用数トップのほうではほとんどなし。 https://t.co/FVxC3ljl2Y"
Haruhiko Okumuraさんのツイート: "この前,過去の気象を調べていて,日本時間1948-05-02 00:00でエラーになるので悩んだ。当時日本は夏時間があって,この時刻は存在しないのだった(1948-05-01 23:59の1分後は1948-05-02 01:00)"
Shiro Kawaiさんのツイート: "(時計をいじるのではなく開始時刻を変える)夏時間冬時間、ってかすかに覚えがあるんだけどどこでだったかな。… "
Tanaka Akiraさんのツイート: "国会議事録を夏時刻法で検索して眺めていると、この法案が通る前は学校や会社で夏と冬の出勤時刻を変えるのがあたりまえだった感じなのだが、いつのまに同じ時刻にするようになったのだろうか。"
Kiichiro Yanashitaさんのツイート: "この記事、何がすごいってサマータイムをやろうと考える議員も、元号法のせいで平成31年と言わなければならない役人も、新元号を発表できない政府も、そのまま書く産経新聞もバカしかいない。日本の馬鹿を選り抜いた感。【東京五輪】酷暑対策でサマータイム導入へ https://t.co/WXOmjgo8pL"
水無月ばけらさんのツイート: "2年間だけの試験導入だとというなら「弊社のサービスはサマータイムに対応しません」が最良の選択肢であるように思えますし、実際そういうところが多数出てくるように思いますね。"
元茸さんのツイート: "サマータイムの件、「完全に同期された時計に従って動いている世界」を一切知らない人たちがその辺の時計をみんなが二時間ずらすだけぐらいの気持ちで思いつきをしゃべってるんだろうけど、そのレベルの視野しかない人達が重要な決定をする立場にいる怖さはもうちょっと認識しないとまずいかも"
及川卓也 / Takuya Oikawaさんのツイート: "サマータイムに関して、ITに詳しくない人たちが、そんなに対応が大変なものなのか。ITを多少知っている人たちであっても、ハードコードとかしているからでしょ。と言っているのを観測するにつれ、デプロイコストという認識がまだまだ薄いなと感じる。"
及川卓也 / Takuya Oikawaさんのツイート: "サマータイムをOSに適用するのも、NLS機能をちょっと直せば対応できるとしよう。だが、たとえそうだとしても、それをサマータイム対応が必要とされる機器すべてに適用するのがどれだけ大変か。もっと言うと果たして現実的なのか、ということへの認識が薄い。"
須藤玲司さんのツイート: "Time Change a ‘Mini-Y2K’ in Tech Terms https://t.co/JZ14ZvXPbk NYTのこちらの記事じゃ、2007年アメリカのサマータイム期間4週間延長に伴うシステム改修費用は、少なく見積もって3.5億ドルだったとしています。 法改正からたった2年での施行で、エンジニアは徹夜続きでふらふらだとか。"
須藤玲司さんのツイート: "繰り返しますが、アメリカのシステムは2007年時点ですでにサマータイムに完全対応してました。エンジニアも経営者も一般市民も、サマータイム対応のノウハウは世界最高です。 そのアメリカで、夏時間の開始日を早め終了日を遅らせる、たかがそれだけの微調整に、費用が3.5億ドル。ざっと400億円です。"
何があなたの都市ポップなさんのツイート: "サマータイム導入の影響を受けるコンピュータが省庁や一部の企業のものだけだと思ってないか? JST に触れてるコンピュータ全部やぞ、全部。お隣の国や地球の裏側の国にあるコンピュータにも影響あるんやぞ。なんならオリンピックに海外から来る選手や観客のスマートフォン一台一台も対象やぞ"
りおりおすとさんのツイート: "タイムスタンプ付きでイベント管理しているようなプログラムがうるう秒やサマータイムを考慮してない場合、想定したイベント発生までビジーループでwaitしちゃう、なんて場合にですね…。 9:00から9:01まで待つつもりが、7:00から9:01まで待っちゃうわけですよ。死ぬわ。"
りおりおすとさんのツイート: "実際、おかしくなったシステム、例えばCPUロードが100%になっちゃったJavaとか続出しただろ…。時計が遅れるのはまだ良いんだよ。時計が進むのはマジでやばい。"
Kazuho Okuさんのツイート: "JJYは「日本標準時」を送出している以上、法律が標準時に対してオフセットを定める一般的な夏時間になるという前提において、一部メーカーの「世界時計機能だけおかしくなる」という説明は誤りでは? / “サマータイム導入で「電波時計が狂…” https://t.co/sSQHFucrzF"
FUTATSUKI Yasuhitoさんのツイート: "FreeBSDの cron には -s ってのがあって、夏時間等でGMT offsetが変更になる場合の特別な取扱いをするかどうかをこれで決めるのだけれども、CentOS 7のcronでは -s は別のフラグに割り当てられていて特別な取り扱いが常に行われると。"
FUTATSUKI Yasuhitoさんのツイート: "軽くcronにおけるオフセット変更時の挙動について見てみたけど、Vixie CronなFreeBSDとCentOS 7でそれぞれdefaultの挙動が違うということだけはわかった。(ほんとに中身をまともには読んでない:))"
ymmtさんのツイート: "グループウェアのサマータイム対応はひとつ面白い問題があります。 会議で良く「毎週水曜日10時~11時」といった予定をいれることがあるのですが、この毎週10時というのが、サマータイム中か否かでタイムゾーンの異なる参加者間での調整が難しいことになるのです。"
ymmtさんのツイート: "これに会議室予約を合わせて、ダブルブッキングをできないようにすることを考えるとさらに面倒なことになります。参加者・会議室・予約それぞれがどのタイムゾーンで予定をいれるべきか。 ひとつの完璧な正解というのはない問題です。"
kinnekoさんのツイート: "サマータイム2年だけと思っているでしょうが、未来で過去のその月日を計算する時には必ず計算が必要になります。影響は未来永劫続くことになります。"
Takehiro OHYAさんのツイート: "①「損害保険のように時刻が指定された契約や、公訴時効の成立時点などをどう扱うか。サマータイムの導入は、「1日=24時間」を前提とした契約や法制度が無数に存在する、日本社会というシステムをどのように“改修”するかという大仕事」と書いてあり、条文を見たこともないのだな感。"
Takehiro OHYAさんのツイート: "②実のところ、期間計算について定めた民法139・140条、刑事訴訟法55条とも時間以下の計算と日以上の計算を分離している。具体的には、 ・時間単位の場合は即時起算(民139) ・日以上は初日不算入(0時スタートの場合を除く)(民140) なので、1日の時間数が変動しても期間計算に支障は生じない。"
高梨陣平さんのツイート: "豪でサマータイムが開始されたが、Apple Watchの第四世代にDST、Daylight Saving Timeの取扱にバグが存在、ブートを無限に繰り返す問題が発生中。 #自民党議員、見てる?… "

@tetsutalow

上原 哲太郎/Tetsu. Ueharaさんのツイート: "こんな認識なんですなあ世の中。ではあなたのスマホどうやって時間決めてるか。これサマータイム対応しようとするとOS更新がいるのですが、では来年までに皆さんスマホアップデートしてねといって、それできると思います?… "
上原 哲太郎/Tetsu. Ueharaさんのツイート: "「いまの時間」を表示するだけならそれでもいいのですがTZ表示関係は影響うけますし,スケジュール帳など「どこから夏時間になるか」情報を欲するアプリがスマホにはいっぱいあるんでTZ情報もつOS更新しないとまともに動かないです.… "
上原 哲太郎/Tetsu. Ueharaさんのツイート: "2時間ずらすなんてやってる国はないですよ.その上で,サマータイムをビットフラグで表してそれ見て1時間ずらすようにしてるシステムがいっぱいあるのですが.例えば電波時計の標準電波はサマータイムのフラグはありますが「何時間ずらすか」は未定義ですよ.… https://t.co/1SFFY4Z3NC"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー、本当に何も分かってない。今年決めて来年も無理だし、2年間だけとかまた戻す手間がかかる最悪の選択だ。大混乱だよ。今の情報機器の時間は竜頭をひねるようには変わらないんだぞ。 / “【東京五輪】酷暑対策でサマータイム導入へ 秋…” https://t.co/ssGVwequ65"

@mhiramat

まさみさんは語りたいさんのツイート: "サマータイム導入した結果、自動的に国内に時差が発生し、自国にいながらにして時差ボケで調節できず、悲惨な結果に終わる日本代表の姿が見えるぞよ。"
まさみさんは語りたいさんのツイート: "この仕組み自体が「全員馬鹿」と揶揄される現象なんだが・・・。… "
satさんのツイート: "サマータイムとか言ってるのを見て関係者全員馬鹿かと思ってる人が多いようだけどそうじゃないと思っている。関係者のうちの多くは意味不明な施策だと百も承知で上に訴えかけているのだけれども、伝言リレーを繰り返すうちに「ナイスアイデア、ぜひやりましょう!」になってるだけかと"
まさみさんは語りたいさんのツイート: "実際2時間の変更はめちゃくちゃ身体に来ますよ。多分平日眠くて仕事にならない人が続出して、その上で「睡眠不足になるのは自己管理が出来ていないからだ」って言い出す馬鹿が続出すると思う。いままで経験したことがない人が多いだろうし、過労死や老人の死亡割合も増加するだろう。"
まさみさんは語りたいさんのツイート: "日本ってただでさえ極東の非常に中途半端なタイムゾーンに位置していて、他の地域との電話会議の設定が大変なんで、さらに2時間も時差を付けられると、多分まともな時間帯に電話会議すること自体が不可能になる。本当にするって言い始めたら、個人的に午前中に打ち合わせを入れるのをやめる。"
lastline@オクトオバケさんのツイート: "酷暑対策にサマータイム導入って、午前中に限っては正解だが、それは午後に全てを押しつけることになるわけで。 気温のピークは1時から3時くらい。地面も温まるので、実質5時くらいまで暑い。それを2時間遅らせるってことは、帰宅時間とか夜はずっと暑いという。何が酷暑対策か。"
まさみさんは語りたいさんのツイート: "サマータイム導入すると夜も熱くなるわけか。そして老人がバタバタ倒れたら、やっとオリンピックという敗戦を通じて、日本は再生できるかもしれないな。"
まさみさんは語りたいさんのツイート: "うわー、よく考えるとこれは酷いぞ。サマータイムは通常初夏に切り替わるから、来年度からの導入を行う場合、5月の天皇退位=元号変更と大体あわさり、今からどうやったらいいかを検討してまとまるのが年末となると、影響を受けるシステム変更はもはや収集が付かないレベルに・・・。"
まさみさんは語りたいさんのツイート: "サマータイム導入が31年度からだとすれば、元号変更も合わさり、サイバーテロを起こしやすくなるのは来年5月あたりからだと思われますね。… "
まさみさんは語りたいさんのツイート: "サマータイムは感覚的には夜の時間も伸ばすことになるんだけど、何が起きるかと言うと、夜9時になっても空が明るい状態になる。そんな状態で小さい子供を寝かしつけられるか?生理現象として老人と子供はついていけないよ。"
まさみさんは語りたいさんのツイート: "ただでさえ子供の寝不足・夜ふかしが問題になっているのに、暗くなってから寝かせて、朝暗いうちから起こして学校に行かせるなんてことをしたら、子供の学力以前に成長に影響することも懸念される。"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyはサマータイム対応済みだが、万一、サマータイム導入が決定したら、導入に賛成した議員には「投票しない」つもり(笑) ---- 「サマータイム導入へ 秋の臨時国会で議員立法 31、32年限定」 https://t.co/ud9TWdlQ6y… https://t.co/e00X8H0NZX"
Shirouzu Hiroaki(白水啓章)さんのツイート: "日本で知っている人は少ないと思うが、サマータイム適用中のWindowsでは、サマータイムでないタイムスタンプを表示すると、Explorerとコマンドプロンプトで、時間表示が1時間ずれる豪快仕様。 cmd.exeは(DOS時代の互換性のため?)このAPIを使っている様子。 https://t.co/hY1nVKzeBY (解説参照)… https://t.co/0LUGqI2hCg"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FileTimeToLocalFileTime API 「夏時間が適用される季節では、変換対象の時刻が冬時間を指している場合でも、この関数は夏時間による調整分を考慮に入れます」"

@kazuho

Kazuho Okuさんのツイート: "日本国内の一部だけ夏時間導入案について言うと、沖縄本島以東は夏時間導入、としない限り、UTC+zoneinfoで動いてるスマホとかパソコンとかも全滅するのかなw"
Kazuho Okuさんのツイート: "zoneinfo を分割するような時間帯導入が過去事例があるのか気になりますね… "
Kazuho Okuさんのツイート: "windowsもzoneinfoなのかしら"
Kazuho Okuさんのツイート: "夏時間への移行は、ある標準時から別の標準時への変更(例: 東部標準時-5から東部夏時間-4への変更)として表現するんだよ。標準時のUTCに対するオフセットが変化するんじゃないよ #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "時刻間の差の計算は、とにかく同一の標準時に変換してから計算する。実務的にはUTCに変換して計算すればいい #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "一番問題になるのは「毎日午前9時」とかローカル時刻にひもづいている繰り返しイベント。夏時間を含む複数時間帯前提のプログラムだと、値がローカル時刻かを表すフラグと、ローカル時刻の場合はどの地点か(例: Asia/Tokyo)を表す属性をもってる #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "実務的には、ローカル時刻依存のイベントを増やすのは夏時間移行の問題を増やすだけなので、できるだけ多くの繰り返しイベントをUTCベースで設計して、窓口対応など人に関係する部分だけをローカル時刻連動にする #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "これ、こうするのは、ある標準時を採用している地域のうち、一部のみに夏時間があるケースがあるから。例えばオーストラリア東部時間(AEST)を採用してる4州のうち3州は夏時間(AEDT)に移行し、1州は夏の間もAESTを使い続ける #夏時間プログラミングの基本… https://t.co/nFZaIWQWl6"
Kazuho Okuさんのツイート: "例えば東京時刻で2018/8/14 9:00AMから毎日10回繰り返すイベントはiCalendarでは "DTSTART;TZID=Asia/Tokyo:20180814T090000 RRULE:FREQ=DAILY;COUNT=10" のように表現されます。絶対値としてのタイムゾーンはでてこないことがわかるかと思います #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "#夏時間プログラミングの基本 を連ツイしたのは、第一に、OSやJVMなどが提供する夏時間サポートと異なる手法によるオレオレ手法によるサマータイム実装を考え、それを前提とした技術的妥当性を欠くサマータイムへの批判がいくつか見受けられたこと"
Kazuho Okuさんのツイート: "第二に、日本人がサマータイムや複数時間帯の存在に無頓着なコードを書いた結果、国際化が困難になることがある点を踏まえ、一般的な多時間帯サポートがどのようになされるかコメントする意義はあるのではないか、という点からです"
Kazuho Okuさんのツイート: "今後プログラムを設計する際、サマータイム機能を当初から入れることはしないとしても、後々OS等が提供する多時間帯及び夏時間サポートを使うことを想定しておくことは、多くの場合、損にはならないだろうと思います"
Kazuho Okuさんのツイート: "PIMむけのウェブブラウザを書いていたのでカレンダー情報の交換フォーマットに多少知見があった程度のクラスタです"
Shirouzu Hiroaki(白水啓章)さんのツイート: "#夏時間プログラミングの基本 を見て思い出したが、FATのようにローカル時間で記録するファイルシステムがあり、NTFSとの差分コピー時に更新ファイルと誤認識される問題もあったり。 (なので、robocopy等は1時間の誤差を無視するオプション(/DST)が存在)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "robocopyの/DSTの動作は「1時間の誤差を無視する」なので、夏時間を2時間進める、というパターンには対応できないはず。"
Kazuho Okuさんのツイート: "OS等の夏時間機能にのっかる最大のメリットは、いつ時間帯が切り替わるか(例:3月第2日曜日午前2時)を指定するデータベースを自分で設計管理更新しなくていい点。時間帯の導入廃止や切替時期が法律で変わるから、ハードコードするわけにはいかないんですよね #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "夏時間のある国でも、サーバは夏時間を適用せずに(あるいはUTCで)動かすのが一般的なのでは? 無理にサーバで夏時間使おうとするからおかしくなる / “CentOS7でJDTを試してみた – さくらインターネット研究所” https://t.co/wRw0pf1bHR"
CentOS7でJDTを試してみた – さくらインターネット研究所

夏時間 - Wikipedia
夏時間対応のタイムゾーンでJP1/AJS3を運用する
SAP ERPでの日本のサマータイム対応について - SAPのすみっこ
Ryosuke Enokiさんのツイート: "サマータイム導入の議論が再燃しているみたいだけど、以前元ボス(本間研一先生)が書いたこの文で、すでに結論は出ているように思う。 https://t.co/1JzeeUQ4Jv しかも2時間の位相前進はかなり無謀かと。得られる経済効果より、不眠による健康被害や事故などによる経済損失は甚大なものになるかと。"
summertime_20120315.pdf
第1回 サマータイム延長で悲鳴を上げるシステム担当者たち:アキラの海外“デッドストックニュース”掘り起こし|gihyo.jp … 技術評論社
日本の法令における「一日」と「二十四時間」 | yasuokaの日記 | スラド
サマータイム導入で「電波時計が狂う」? メーカーに聞いた - ITmedia NEWS
「サマータイム実施は不可能」スライドが話題 「経済被害が兆単位」「サイバーテロをお膳立て」立命大・上原教授が指摘 - ITmedia NEWS
Shirouzu Hiroaki(白水啓章)さんのツイート: "サマータイムに限らず、時間がジャンプした場合のcronの挙動を分かり易く説明してあった。 https://t.co/ty7xPUjJ0k"
cron の意外な落とし穴! - もろず blog
Web JJY が夏時間に対応しました
サマータイムの導入は簡単!なのか?可能なのか?メリットはあるのか? – yohgaki's blog
『Excelにタイムゾーンという概念がなく、サマータイムに対応しないということは』『これから未来永劫、時限サマータイムの2年間についての複雑な特別処理を仕込まないと、正しい集計ができなくなります』 - Togetter
この一文で、自民党内のサマータイム導入推進派の方々の息の根を止めることが出来るかしら | 早川忠孝の一念発起・日々新たなり  通称「早川学校」
出生届と死亡届における夏時刻の表示方法 | yasuokaの日記 | スラド
サマータイム導入には反対だが、サマータイム導入に必要なことを考えた - Qiita
欧州委員長、夏時間廃止の意向=460万件意見調査踏まえ-EU各国に提案へ:時事ドットコム
サマータイムにうんざり、米国で廃止の動き | ナショナルジオグラフィック日本版サイト
欧州で最後の「冬時間」に、2021年に「夏時間」廃止で 写真1枚 国際ニュース:AFPBB News

昼休憩

シエスタ - Wikipedia
Shiro Kawaiさんのツイート: "暑さ対策というならサマータイムよりはシエスタ導入ではなかろうか。"
第63回 シエスタとるなら昼寝は短めに | ナショナルジオグラフィック日本版サイト
シエスタ(昼寝)にも影響か。スペインがワーク・ライフ・バランス重視へ|クローズアップ海外ニュース
スペインのタイムゾーン変更はいつから?
スペイン時間がなくなる?日本との生活リズムや食事回数の違い | たびこふれ
スペインの時差と現在時刻 - Time-j.net
Current Local Time in Siesta Key, Florida, USA
シエスタって何?シエスタは法律で禁止化へ~スペイン - NAVER まとめ
スペインに根付く「シエスタ」のライフスタイルを変えようとする動きが活性化 - GIGAZINE

サウジアラビアがついにグレゴリオ暦を採用、時代は「21世紀」へ - GIGAZINE

タイムゾーン

Yusuke Endohさんのツイート: "Google カレンダーに ICFPc の予定を登録しようとしたら、タイムゾーンに UTC が指定できない。「はいはいイギリスにすればいいんだろ」とやってみたらサマータイム。。。イギリスは世界標準時の自覚を持ってくれ"
Yusuke Endohさんのツイート: "みんな UTC の予定どうしてるんだろうと思ったら、アイスランドのレイキャビーク(https://t.co/o7y7CV1UtC)とか、ガーナのアクラ(https://t.co/apgjoCzrII)で代用してるって出てくる。普通に Google カレンダー側で対応してほしい。。"
四九六々(縦書き用)さんのツイート: "WindowsのICU4CでTimeZoneにお悩みの方。wintz.cのSTD_REGKEYをwchar_tにし、getTZI関数を参考にgetStd関数を作り、uprv_detectWindowsTimeZoneで呼び、apiTZI.StandardNameと比較しましょう。"
IANA — Time Zone Database
eggert/tz: Time zone database and code
タイムゾーン呪いの書 - Qiita
タイムゾーンに関するあれこれ - Qiita
アメリカの時差と現在時刻 - Time-j.net
ヨーロッパの現在時刻と時差一覧 - Time-j.net
Shiro Kawaiさんのツイート: "クラウドでのログ時刻がローカル時刻で表示されるの、メンバーが異なるタイムゾーンに散ってる状況で話しながら作業するには極めて不向きだなあ。"
Shiro Kawaiさんのツイート: "まさしく、この打ち合わせ中にgithubのissueのコメントが書き込まれた正確な時刻を知る必要があったんだけどa day agoでぐぬぬとなった。そこクリックしても時刻表示に展開されないし。(マウスをhoverしたら時刻が表示される、というのにしばらくして気付いた)… https://t.co/bSDz5L4jjx"
9b96faac591ad05eddec760eed2da2d5 齊藤敦志さんのツイート: "ブログやチャットのサービスで「×日前」「×時間前」みたいな表示をするものがあるのはそういう面倒くささをカジュアルに回避してるのかなぁと思ったことがある。 業務で使うなら一意性が必要だろうからもっとちゃんと考える必要があるだろうけど。 https://t.co/t655t1XtjX"
18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ

プロトコル

NTP

日本標準時プロジェクト 公開NTP FAQ
NTP Security Project、「NTPsec」ベータ版をリリース - ZDNet Japan
NTP leap indicatorを上書きするProxyを書いた - ASnoKaze blog
ntpdのLeap Smearingを有効にし、うるう秒を24時間かけて調整する - ASnoKaze blog
NTPクライアントへの攻撃などを防ぐため、要求パケットに含めるデータを最小限にすることが提案される | スラド セキュリティ
ENOG-20171027-公開資料.key
日記 (2015 年 7 月上旬)
Fadisさんのツイート: "閏秒は正確な時間を必要としないシステムなら1秒のずれをntpdでゆっくり解消すれば良いだけで、この場合60秒の存在をソフトウェアが意識する必要はない。正確な時間が必要なのに60秒を扱えないシステムはただの欠陥品だから直そう"
NTPを暗号化する Network Time Security for NTP の提案仕様 - ASnoKaze blog
Facebook、より精度が高くスケーラブルなNTPサービスのためntpdからchronyへ切り替える
NTPの次期バージョンv5の標準化が始まる - ASnoKaze blog

PTP

WhitePaperPtpJP.pdf
スペシャルフォーカス: IEEE 1588 Precision Time Protocol - National Instruments

Roughtime

Rockridgeさんのツイート: "RoughtimeはGoogleが開発中のプロトコルで、サーバとの時刻の同期を安全に行うことができるというもの。ただし、正確な時刻に対し10秒程度の誤差が生じる可能性がある。 / “roughtime - Git at Goog…” https://t.co/ERdGDojsE3"
googleの新しい時刻同期プロトコル Roughtimeとは - ASnoKaze blog
時刻同期プロトコル Roughtime の標準化 - ASnoKaze blog

GPS

GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf
19.6年周期の“GPS週数ロールオーバー”が4月7日にやって来る。古いGPS機器では不具合が発生する可能性も【地図と位置情報】- INTERNET Watch
魚田雅彦さんのツイート: "すでに404 Not Foundになっていますが、archiveサイトで見られました https://t.co/urTwt5Wahc… "
GPSリセットによる運航への影響発生について - JAL国際線
Hiroshi Matsumuraさんのツイート: "まさか、GPSロールオーバーでJALで問題が発生するとは!しかも最新のB787で。 https://t.co/EXHy9CpIBZ"

RTC

RTC - OSDev Wiki
CMOS - OSDev Wiki
【やじうまPC Watch】「Windows 10のPCが夜中、勝手にスリープから復帰する」原因と対策 - PC Watch
「PCの時計が1時間ずれている」の原因 - Tactful Answer
「PCの時計が1時間ずれている」の原因の解説 - Tactful Answer
pwrtest.efi – UEFI Shell developer tool to test Intel/AMD RTC wake function | Firmware Security
自作OSで時間を使いたい - HonokaNo’s blog

TSC

untagged - x86/x86-64 RDTSC命令とRDTSCP命令の動作の違い - スタック・オーバーフロー
rdtsc ‐ 通信用語の基礎知識
CPUクロックに基づく相対時刻の計測
NAKAMURA Minoru's Diary (2010年4月)
タイマーカウンタ その3
付録G KVM 仮想マシンのタイミング管理
Hyper-VのゲストOSの時間が遅れる場合がある原因を考察する | MCTの憂鬱
カーネルにおけるタイマー事情 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
[Win32] [x86 Assembler] Time Stamp Counter | すなのかたまり
社会人でもOSを作りたいさんのツイート: "「TSC(Time Stamp Counter)はCPUの周波数程度の細かさ,つまり1GHzであれば1ns単位で時間をカウントすることができる」というのを「1nsの精度がある」と誤った表現をしているウェブページが多いこと多いこと… 精度とは何%の誤差かを意味する言葉であって,先の話題では「分解能」が正しい."
社会人でもOSを作りたいさんのツイート: "分解能が1ns±0.5nsのタイマがあったとして,これは秒しか測れないタイマーより分解能はかなり高いと言えるが,精度はめっちゃ悪いよ."
周波数 hz 時間 - Google 検索
hz 時間 換算 - Google 検索
Timestamp-Counter Scaling for Virtualization White Paper - 教育は参考ブログ
Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
c++ - Calculate system time using rdtsc - Stack Overflow
msaitohさんはTwitterを使っています 「Intel の lfence;rdtsc の挙動がいまいち謎だったのだが、イカす会話を発見 https://t.co/mHXzkXWcZY」 / Twitter
Travis DownsさんはTwitterを使っています 「@InstLatX64 I wonder if the semantics of SERIALIZE differ from: mfence lfence ? Currently, even mfence alone has what appears to be at least as strong semantics (the equivalent an embedded lfence was added to it fix an erratum).」 / Twitter
msaitohさんはTwitterを使っています 「ここから先とか https://t.co/T2x0JKuZ1Q」 / Twitter
Ronak SinghalさんはTwitterを使っています 「@trav_downs @InstLatX64 Re: footnote 5 -- does not address speculation in the front-end. Yes, does serialize the instruction stream but still allows fetching/prediction of the code stream that is after the LFENCE. SERIALIZE/CPUID do not allow that.」 / Twitter
msaitohさんはTwitterを使っています 「Inte, AMD の cpuid, lfence, mfence, rdtscp の挙動の違いの調査など https://t.co/8KVxJ7OwcA」 / Twitter
Index of /~msaitoh/tsc
rdtscp を使う - Fixstars Tech Blog /proc/cpuinfo
CPU_CLK_UNHALTEDの値を取得する - Fixstars Tech Blog /proc/cpuinfo
命令単位の時間を計測する (準備) - Fixstars Tech Blog /proc/cpuinfo
その他の時間計測方法 - Fixstars Tech Blog /proc/cpuinfo
ogiwaraさんはTwitterを使っています 「時計へのアクセスにしたってシステムclockじゃなくてrdtscp使ってCPUのclock使ってる で、時間のズレが発生したら同期するようにしてる(Cicadaとか?)」 / Twitter

2038 年問題

Kazuho Okuさんのツイート: "off_tの64bit化は共有ライブラリの普及前だったからまだ簡単だったけど、time_tの64bit化は面倒だよな感しかない。しかもレガシーな32bit環境だけの問題だし"
Kazuho Okuさんのツイート: "今年はアセットファイルの expires を +20years に設定しているサーバの管理者が2038年問題に悩まされる(かもしれない)年です"
Kazuho Okuさんのツイート: "プロセス内部の値だけじゃなくシリアライズされた値も問題になるわけで、たとえば windows 8 の時刻型や MySQL の timestamp 型、 ext2/3 のファイル時刻は 32-bit… "
Dan Kogaiさんのツイート: "うん。だから「」でくくっといた。あとこういう問題も残ってる https://t.co/qvJgCdQpNs… "
404 Blog Not Found:人類よ、これが本当の人類滅亡だ

MS

Shirouzu Hiroaki(白水啓章)さんのツイート: "コマンドプロンプトでは、未だにこの挙動(夏時間では、夏時間以外のタイムスタンプも1時間ずれる)になる様子。 (ExplorerやPowerShellではそうならない) https://t.co/S0Ji6OrgQJ"
Why are file Explorer and CMD Dir displaying differnt timestamps ? - Microsoft Community
Shirouzu Hiroaki(白水啓章)さんのツイート: "SystemTimeToTzSpecificLocalTime / TzSpecificLocalTimeToSystemTime だとこの問題はない様子。 ただ日本語MSDNは明らかに誤記しているようにみえる。 ---- 「夏時間が適用されているときは、変換しようとしている時刻が標準時間でも、夏時間が考慮されます」 https://t.co/dlUNIMuO1i"
SystemTimeToTzSpecificLocalTime 関数
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct で(やっと?)うるう秒対応が入っていたらしい。 SYSTEMTIMEのwSecondが60に。事前にSetProcessInformationで仕込みした場合のみ(仕込みなしなら59が2秒掛かるらしい) https://t.co/xmku6aqXuM"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「TAI開始時点の太陽秒が原子秒の基準」とタネンバウム先生の本に書いてあったのだが、間違いだったのね。 「閏秒挿入の理由についての間違った理解」Wikipediaから。 https://t.co/lzBqBbkFCe… "
閏秒 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "最後のセンテンスに、グレゴリオ暦導入時の余談が入るのがタネンバウム先生らしさ(笑) 「地主は1ヶ月分の家賃を要求し…雇用者は労働者が働かなかった10日分の給料を支払うことを拒絶した」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "念のため、写真部分の出典は「分散システム 原理とパラダイム」A.タネンバウム・M.スティーン、P.245"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSは64bit タイムスタンプで、西暦6万年まで指せるので、オーバーフローなどは気にしなくていい。 …と思ったら、何故か西暦6万年を差したファイルが実在して、FastCopyの時間誤差の許容計算でオーバーフロー発生した経験。 (2年前の話、現在はオーバーフロー対応済) https://t.co/guYWIGLbYf"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct以降、FILETIME にはうるう秒も加算されるらしい。 UNIX epochのように、うるう秒を無視(59秒と60秒が同じ値)してくれる方が楽なのだが。 https://t.co/xmku6aqXuM"
Shirouzu Hiroaki(白水啓章)さんのツイート: "つまり、FILETIME ⇔ time_t の単純変換ができなくなる、と。 うーん、私のソフトでも、いくつか対応が必要になりそうだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、こういう計算が出来なくなる、という話。 https://t.co/ENhYQu6YAm"
Converting a time_t Value to a File Time - Windows applications | Microsoft Docs
Windowsで高精度タイマを使う - Qiita
高解像度タイマーカウンタ
ASCII.jp:Windows RS5で実装される、うるう秒対応や高精度ネットワーク時間|Windows Info
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NT系も含めてWindowsで起動から49.8日目にいろいろと問題を起こす話は有名だったけど(GetTickCount(ms単位)が一周り)、最近は概ねGetTickCount64に代替されて問題なくなった様子。 https://t.co/VGwbIf00Fc」 / Twitter
ultravioletさんはTwitterを使っています 「「248日で死ぬシステム」てのが昔はよくあってな、32bitの符号付き整数で秒を数えてるシステムがオーバーフローする話なんだが、昔のOracleで出たケースが有名で、私も巻き添えを食ったことがある」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とはいえ、これは単調増加クロックなのでとても便利。 逆に昔のUNIXには clock_gettime(CLOCK_MONOTONIC) がなく、gettimeofday(ジャンプ・最悪巻き戻り対応)か tims(2)の戻り値(粒度荒い&バラバラ)くらいで困った記憶。」 / Twitter

Linux

本の虫: Linuxカーネルを2038年問題に対応させるには
本の虫: Linuxカーネル、Rockchip暦に対応
gettimeofdayからclocksourceまでの道のり - livaの雑記帳
Fadisさんのツイート: "2038年問題、この間LinuxのInput Subsystemが32bit x86環境で32bitで入力時刻をユーザ空間とやりとりしてるのなんとかしようって話が上がってたな https://t.co/ccw75LlY33"
Input Drivers Are Being Prepped For Year 2038 Safety - Phoronix
NOKUBI Takatsugu野首貴嗣さんのツイート: "kernel側の2038年問題対応 内部のインターフェースは全部64ビット化された 32bit kernelでは設定で時間関係のシステムコールを64ビットにできる glibcが32/64bit time_tを同時に使うことを想定していない。レビューと作業は遅いながらも進んでいる #debconf18"
VDSO(arm)の実装をちょっと調べてみました - Qiita
Man page of VDSO
Implementing virtual system calls [LWN.net]

TAI64N形式

tai64n 形式。 | 技術系メモ
cr.yp.to/libtai/tai64.html#tai64
tai64nlocalコマンド:TAI64N形式の日付を読めるようにする|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
daemontools - TAI64N to TAI
TAI64N形式の文字列をTimeに変換する関数 - うなの日記
external TAI64N形式のデコード – knsm.net
qmailのTAI64N形式タイムスタンプの変換 - taka_moriのブログ
djbware-doc-ja/tai64n.8.xhtml at master · fumiyas/djbware-doc-ja
blog.asial.co.jp/iphone/225
daemontoolsによるロギングとプロセス監視 (3/3):実用qmailサーバ運用・管理術(9) - @IT
https://cr.yp.to/libtai/tai64.html
TAI64
Perl [script] TAI64 形式の変換・出力プログラム 00 TAI64 とは (0x255)|Perl Perl_5 Perl_my_program|blog20100901
Macでtai64、daemontools、そしてctrl+cについて - ugon105の日記
Fadisさんのツイート: "ある時刻が存在しなかったり、2度存在したり、60秒が挟まったりすると困るというプログラマさんには、TAI64という時刻表現の素晴らしさを伝えたい"

ISO・JIS

ISO 8601の日付形式
ISO 8601 の日時に関すること(間違いがあるかも) - モノトーンの伝説日記
ISO 8601 - Wikipedia
ISO 8601 - Wikipedia, the free encyclopedia
渋川よしきさんのツイート: "WikipediaのISO8601の日本語の方、durationの説明がまったく抜けているぞ・・・"

POSTD

処理速度の遅いcurrentTimeMillis() – 前編 | プログラミング | POSTD
処理速度の遅いcurrentTimeMillis() – 後編 | プログラミング | POSTD

Wikipedia

システム時刻 - Wikipedia
Time Protocol - Wikipedia
世界時 - Wikipedia
国際地球回転・基準系事業 - Wikipedia

Twitter

時間管理

Dai MIKURUBEさんはTwitterを使っています 「理解してやってるんじゃない限り、ローカルタイム (+09:00のような固定オフセットではなくAsia/Tokyoとか) で保存するのはやめておけとしつこいくらい言っておく。 2017-11-05 01:30:00 America/San_Francisco は二度あるぞ。せめて +07:00 か +08:00 のどっちだったかは常にセットにするんだ。いいね?」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「過去の時間は基本的に UTC でいいと思う。未来の時間が問題で、その国や地域において法的に定められる時刻が問題なのか (イベントの開始時刻など) それとも、それと関係ない絶対的なある瞬間を扱いたいのかで変わる」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「前者である場合はそれでも気をつけ続ける必要があって、その時刻が2回訪れる可能性や、その時刻がスキップされて訪れない可能性を常に考慮に含めておく必要がある」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「念のため言っておくと、ある時刻 (1〜2時間程度) が消滅するだけではなく、ある日付がまるごと消滅したようなことすらここ数年の間に実際あったので、まあ日付時刻については自分の常識をまず疑っておくのがいい」 / Twitter
成瀬さんはTwitterを使っています 「未来の時刻、いきなりタイムゾーンがずれる可能性を考慮するといつもあいまいでこの世の地獄」 / Twitter

ゆたかさん🐬さんのツイート: "システムに負荷がかかるとOSの時刻がずれる、というのはある意味正しいけれど、負荷という表現が曖昧。 厳密には、 カーネル空間で割り込み禁止状態が継続して、タイマ割り込みの処理ができなくなることで、時刻の更新が遅れる。 が正解。CPU数や実装で異なる場合もあるけど。"
ゆたかさん🐬さんのツイート: "NOだと思います。1秒未満でポーリングして、時刻を更新すればよいです。ただ、一般的に割り込みよりポーリングのほうが重たいと言われているので、割り込みと比べて負荷がかからないほうを選択することになると考えます。 https://t.co/FIfATs8XwS"
市川 真一さんのツイート: "@yutakakn OS の無い環境で、割り込みを使わずに 3 秒毎にポーリングする方法があれば、知りたいです。方法がなければないでよいです"
ゆたかさん🐬さんのツイート: "u-bootではudelay関数で下記条件を満たすループが実装されています。単純にクロックを参照してループしているだけですね。 @ udelay() # lib/time.c ftp://ftp.denx.de/pub/u-boot/u-boot-2017.05.tar.bz2 https://t.co/vKpi3v45pt"
satさんのツイート: "かつてlinuxプロセスの実行時間utimeとstimeは、タイマ割り込み(ここでは一秒ごとに100回とする)を使って、割り込みが入った時点で実行してた処理を、直前1ミリ秒で実行した処理とみなしていた。厳密に測るのではなくサンプリングですね"
satさんのツイート: "わざとらしい例を出すと、ほぼ全ての時間プロセスが実行していたとしても、サンプリング時間にたまたまカーネルが動いてたり、スリープしたりしてれば、utimeにはカウントされない。なので精密な実行時間の計測には向かない。使うとしても十分な長さの実行時間をとらないとあまり意味がない"
satさんのツイート: "s390とia64だけはサンプリングではなく、かなり精密な方法で測定していた。 最新カーネルでこのへんのコードを見てないので、今は知らん"
satさんのツイート: "すいません10ミリ秒"
Masahiro Kasaharaさんのツイート: "ほとんど茶々だけど、閏年は if((year % 4 == 0) ^ (year % 100 == 0) ^ (year % 400 == 0)) って書きたい派です。… "
kamimuraさんのツイート: "かなり茶々だけど、閏年は、 if (isLeapYear(year)) // isLeapYearは任せた! って書きたい派です。w… "
渡久地 信之さんのツイート: "12時間表記,12時がどっちを指すのか国によって違うのでアレ."
ゆきさんのツイート: "ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み https://t.co/evTEWm2QRw 書いた。chromeがどのようにシステムクロックのズレを検出してるか。"
ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「今時の linux + ext4 は utimensat(2) の tv_sec に負の値を設定することで、A.D.100年なども表現できるのね。 (touch でなく、utimensat なら、B.C. も行けそう) https://t.co/1i84lSpPyt」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「UNIX epoch を 0 として、1969年12月31日23:59:59 が -1という調子。 (ただ、エラー値に(time_t)-1を返すmktime(3)などとの相性悪そうだな…)」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「Un*x使うプログラマになって約20年たった私ですが、最近ようやくPC向けUn*xにCMOS時計をローカル時刻に設定するオプションがある理由を理解しました。いままでWindowsとのデュアルブート環境とか真面目に使ったことがなかった」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています: 「@kazuho Windowsのレジストリを変更してUTCを使うという方法もありますよ。 https://t.co/szPiDl0R6I 私はデュアルブート環境の時はこの設定にしていました。」 / Twitter
System time - ArchWiki
Shinji KonoさんはTwitterを使っています 「ローカルタイムをDBに入れるのは初心者の間違いだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ローカルタイムの害悪はちょっと考えればわかる。Windowsは初期にはlocaltimeをOS内部の基準に使ってた。アホ過ぎるので最近やめた。」 / Twitter
yohさんはTwitterを使っています 「https://t.co/SWigVAAdmi C++20 Calendarって同月中最初の指定曜日を起点に 先月の最終指定曜日[0]とか 翌月以降の指定曜日[5~]を直接計算できるのね https://t.co/kbcOoAUCyG」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ

西暦1年は閏年か? - プログラマーの脳みそ
ISO 8601 - Wikipedia

Twitter

その他

りおりおすとさんのツイート: "CPUが暇こいてる時に、自動的にマイニング、それもその時点で最も採掘効率の良い仮想通貨を、電力消費量も込みで選択してくれるOSがあった場合、それは「意図しないマイニング」なんだろうか…。 システム環境設定に「マイニング」がある世界"
Ryou Ezoeさんのツイート: "なんでDockerみたいなものが流行っているのかと問に対して、WindowsやMacしか使えない管理者権限を持たない環境でも動くからという説が提唱されていて、GNU Hurdは正しかったのかと呆然としている。"
Shiro Kawaiさんのツイート: "なるほど。chaos monkeyはNetflixが作ったツール https://t.co/DfFnuGdupV で運用中のサービスのVMをランダムに終了させるもの。耐障害性を上げるのに役立つ。同様に、休暇取得の制限をできるだけ少なくしておけば、いつ誰が突然休んでも止まらないチームを作るのに役立つ。… https://t.co/Ynp0PsWJ7q"
Takashi Kawasakiさんのツイート: "今やWindowsが凄いとかそういう話、誰も興味ないと思うんだけどさ、現存するどころか、かなりのシェアを持ってるUNIXじゃない思想で設計されたOSなんて凄くないですか!そして、互換性重視で来たので、かなり初期の謎の機能の痕跡とかが残ってるんですよ!"
渋川よしきさんのツイート: "50年くらい前は、一人で多くの領域の開発、改良に関われたのかもしれないけど、今どきは大人数で1つの領域に集中的に資源投下してなんとか数%改良、そして量産効果でなんとか費用配賦みたいな時代なんだよね。"
sogitani / baigie inc.さんのツイート: "専門家同士は100点満点で評価しがちだけど、市場が求めるのは50点くらいだったりする。それを上手に提供した60点の専門家は、70点以上の専門家たちからディスられがちだけど、事業継続して成長できるのはちゃんと市場とミートしてる60点の人。ディスってる70点以上の専門家たちはだいたい滅亡する。"
TAN-Y(たに)さんのツイート: "Macの最高なところは英語キーボードと日本語キーボードが正しく混在利用できるところだと思っているのですが、Windowsもこの点さっさと見習ってなんとかしてほしい・・・"
Ryou Ezoeさんのツイート: "Windowsカーネルにはしばらくの間、少電力モードから復帰するときにキャッシュを無効化してメモリにも書き出さないコードが入っていた。理由は宇宙線によるメモリエラーの回避のため https://t.co/x9fZakM5Gg"
For a brief period, the kernel tried to deal with gamma rays corrupting the processor cache – The Old New Thing
齊藤明紀さんのツイート: "×MULTICSはクソ。おれたちがいいOSを作ってやる ○MULTICS使えなくなって寂しいなぁ。懐かしいなぁ。しゃーない、自作するか。謙遜してMULTIをUNIに変えておこう。"
Nerry さんのツイート: "おれんじぺこのメモリマップは256TBのメモリ空間を512等分して、最初の512GBはアクティブなプロセスのローカルメモリ、前半の残り255個は予約領域、後半の約250個が各アプリのメモリ空間、次の1TBが物理メモリのダイレクトマップ、次の512GBがリカーシブマップ、最後の512GBがカーネル空間だった、はず"
ほうめい 不思議金物堂さんはTwitterを使っています: 「@miura1729 マルチプロセッサ構成でI/O初期化するときには他のプロセッサを足踏みさせといて共有資源を初期化し終わったら一斉にドンと走るとかたのしい」 / Twitter

オフロード

Livaさんのツイート: "今日の発表のスライドをWeb公開できるように編集しました。 「創りたいOSを、創りたい時に、最小コストで作れる世界」 https://t.co/1rqXPorjAl"
18:03:24_web公開版.pdf - Google ドライブ
まさみさんは語りたいさんのツイート: "jailhouseの採用は検討済み?… "
siemens/jailhouse: Linux-based partitioning hypervisor
Linux向けハイパーバイザー「Jailhouse 0.6」リリース | OSDN Magazine
Jailhouseハイパーバイザ実践 - Qiita
Livaさんのツイート: "いえ、初耳でした。調べてみたのですが確かに近いところが多そうですね。もうちょい調べてみます。ありがとうございます!… "
ぬるぽへさんのツイート: "モチベーションはlibrary OS的なやつにあるので少し違いますが、並行して動くlinuxにlibrary OSから機能をオフローディングするやつにmultiverse kyle 2017があります、参考になるかもしれません… "
ぬるぽへさんのツイート: "同姓同名ですがどうも別プロダクトのようです こちらの論文のやつになります https://t.co/riiw0ZmHop… "
Multiverse: Easy Conversion of Runtime Systems into OS Kernels via Automatic Hybridization — Northwestern Scholars
ぬるぽへさんのツイート: "ちなみにめっちゃ被ってるというより、参考程度、つまりliva師が修論であれやるのなら関連研究の章にかけるかなーくらいの関連度です vmmを使って自作ライブラリOS上で動いているアプリのシステムコールを協調して動くlinuxカーネルに処理させてその結果をlibraryOSと同期するみたいなやつです… https://t.co/Dvvx1PrO2o"

NetBSD

Kimihiro Nonakaさんのツイート: "今のNetBSDだとカーネルはsrc/sys以下だけではなくsrc/commonも見てるはず"
SODA Noriyukiさんのツイート: "kernel と userland で共用するコードという意味で common なんですね https://t.co/L5DibO5j4x"
Kimihiro Nonakaさんのツイート: "NetBSDは不要な機能をディレクトリ毎消すとfiles.*が無くなるのでそれだけは残さないと駄目か。sys/conf/filesとsys/arch/XXX/conf/files.XXXを見れば何が必要なのかは判る"

プログラマ

まさみさんは語りたいさんのツイート: "ベアメタル→RTOS(MSDOS含む)→Linuxと進化してきた組み込み機器のプログラマと、サーバアプリなどから入ってきたプログラマの間で、OSを含むシステムモデルの理解に深い深い溝があることはよく知られている。"
まさみさんは語りたいさんのツイート: "大きい政府と小さい政府の違いみたいな、イデオロギー的な違いを感じるんだよね。アプリで全て頑張るからOSはローダーやライブラリみたいな働きだけしとけ、というのと、アプリはすべき事に集中して書きたいから、残り全てOSでやってね、という違い。"
Kazuo Moriwakaさんのツイート: "「O_DIRECTとかsched_yield使ったハックとか使いたい人」と「そういうの興味がない人」だ… "
まさみさんは語りたいさんのツイート: "イデオロギー論争なのでどちらが正しいとか間違ってるとかそういうのは余り意味がないんだけど、前者には車輪の再発明は避け、巨人の肩に乗る方法を模索することには意味があるんだよ、ということは伝えておきたい。後者はパフォーマンス追いかけ過ぎると前者になるから注意。"
星山 等(E-SW20改)さんのツイート: "組み込みもリッチクライアントもやるのでどちらの感覚も分かるんだけど、それだけにもやもや感もある。 組み込み専業の人はOSもコンパイラもあまり信用してない感じが強いし、リッチOSアプリの人は少し下位レイヤを信用しすぎ感がある。 どちらももうちょい融通をきかせた方が良さそうに思う。… https://t.co/8zz4ZYsScZ"
Kazuho Okuさんのツイート: "職業プログラマとしての成長したい人は、SIerとかウェブ系みたいな業種ではなく、メンテやリファクタ、再設計を通して「より良いソースコードを生み出す」環境が整っている会社を選ぶべきだと思ってる。仕様を満たすコードを短時間で生み出すことを繰り返しているだけでは、なかなか成長しないよ"
Kazuho Okuさんのツイート: "なお、期限のある契約に縛られない開発の場合でも、プロトタイピングや新サービス投入など、品質よりも納期を重要視すべき局面は存在します。ただ、そればかりやっているのはよくないという話"
Kazuho Okuさんのツイート: "なお、バグが再現しないからツイートに逃避しても、プログラマとしては成長しません(気分転換にはなる)"

組み込み業界

Ryou Ezoeさんのツイート: "組み込み業界の環境がひどいという話だが、テキストファイルでコードを書く以上gitで管理しない理由はないし、メモリ数KBだのクロック数十MHzだのという環境ならまずエミュレーター(clock accurateではないにしても)を書くだろうし実機のみで動かす必要もないだろうし、長期的に考えれば淘汰される。"
beepcap@HTTPSの強制には反対さんのツイート: "まぁ、組み込み「だから」バージョン管理していないというのは嘘であるが、 シミュレータをつくるというのは環境によるものの、ほとんど無い。 組み込み開発にとってはcoreのアーキテクチャより、ペリフェラルの方が多様で統一性がないためである。… "
deさんのツイート: "問題はだいだいペリフェラルで同意。 ハード屋さん(大抵顧客)がPMIC取り除いたり、メモリ変えたり、ドライバがないカメラ持ってきたり… ハード屋さんが顧客の場合、ハード選定から関われなくて、とても辛い場合がある。… "
リーズリングさんのツイート: "顧客といってもBtoB,BtoCでは多少違いはあるだろうけど。でも結局金を出すのが顧客ですからね。たとえ顧客が間違っていても事業的に儲かるなら応えるだけのことで、それよりも儲ける道があるならそっちを選ぶのが経営だという単純な話かと… "
まさみさんは語りたいさんのツイート: "みんな嫌ならやめればいいのにと思わなくもない。ラダーで動かさないといけないからPLCが高くついてる感じがする。(逆にそれがなくなったらラズパイだけで構成される世界が来るかもしれん・・・)… "
Kazunori Satoさんのツイート: "組み込み系プログラミングの不便さなめんなって記事にシーケンサーとラダー図なめんなってコメントが付いてて、不便さマウンティングに並行世界みある。 https://t.co/Tz01ZTAAZ5 https://t.co/Tz01ZTAAZ5"
PLCとは、シーケンサとは?初心者が速習でき83%分かる11項目 | ある電機屋のメモ帳
まさみさんは語りたいさんのツイート: "ちなみに大体のPLCは中身がLinuxかWindowsです。"
ほろころさんのツイート: "この問題はethernet/ipやethercat、cc-linkを利用しつつ、raspberry piで通信すればラダーは積極的に利用しなくても良いので… (I/Oで扱える電圧はPLCに分が有るので機器の削減は出来ませんが) 例:https://t.co/xFN3y6XTWT https://t.co/kzI1ZtMZk7"

@fadis_

Fadisさんのツイート: "Slackwareから学び取れるのはLinux環境の仕組みというより、何故パッケージにはファイルのアーカイブより多くの情報が必要なのか、何故ディストリはオリジナルのソースを変更しなければならないのか、な気がせんでもない"
Fadisさんのツイート: "資源の共有と分配を行うのがOSの役割なわけだけど、ホスト内である資源を唯一のプロセスしか使わない事が保証されている場合OSの仕事は無駄でしかなくて、無駄だから回避しようというのは真っ当な話だし、前述の条件が満たされない状況の為にカーネルによる資源の分配も依然として必要とされている"
yoh2さんのツイート: "カーネルとLILO更新して起動したら LI で止まって立ち上がってこない恐怖は今でも鮮明に覚えてる。"
Fadisさんのツイート: "GRUBと違ってLILOは指定した位置からカーネルをロード出来なかったら他の方法で起動して修正必須だもんな"
Fadisさんのツイート: "SwitchのOSはマイクロカーネル → 高速なIPCが欲しい → スレッドごとに独立した共有メモリを使って別のプロセスにデータを投げる #kernelvm"
Fadisさんのツイート: "「キャッシュに当たるようにコードを書く」種類の人たちだ…"
ゆかたゆさんのツイート: "一般人「HDDは遅すぎるからSSDに置こう」 友人たち「SSDは遅すぎるからメモリに置こう」 職場の人「メモリは遅すぎるからレジスタに置こう」 私「HDDは安いので好きなのです。」"
Fadisさんのツイート: "CPUは外からの観測結果が変わらない限り命令の実行順序を変えるし、ストレージは外からの観測結果が変わらない限り書き込み順序を変えるし、コンパイラは外からの観測結果が変わらない限りコードを読み換えるし、グラフィックランタイムは外からの観測結果が変わらない限りレンダリング順序を変える"

@makoto_kato

Makoto Kato ︎︎さんのツイート: "WindowsをOSSにしたところで、XPの頃でビルド1日以上かかる(40GB以上必要) 巨大すぎるOSのコードを直したいって人って多くない気がするんだよね。NTOSKRNLとWIN32Kだけでも十分な気がするんだが"
Makoto Kato ︎︎さんのツイート: "今更、第3のOSのウリが軽いとか使ってるのって、アプリが重いんだから意味ないと思うんだよな。Androidアプリが重厚たから、そのアプリが動くっていっても、スペックに似合わないもの動かしてもヘイトしか生まない。"
Makoto Kato ︎︎さんのツイート: "アプリをインストールさせないようなOSはまだ理解できるんだけどね、軽さをウリにするんだったら"
Makoto Kato ︎︎さんのツイート: "個人的に言えば、サポートエンジニアのロールモデルってのは難しくて、そこそこ出来るレベル人が一番長生きしやすいという状況だし、飛び抜けた人はそもそもサポートだと飽きちゃうんで。 https://t.co/FjZAgsqh5P"
サポートエンジニアをサポートするサポートエンジニアNight! - Secret Ninja Blog
Makoto Kato ︎︎さんのツイート: "窓作ってる会社のEscalation Managerって職も自分がいた頃とは毛色が変わってて、まぁ今なんてTeam Managerとそんなに変わんないんじゃないのって感じだし。。。"
Makoto Kato ︎︎さんのツイート: "サポートエンジニアとしてエンジニアリングが優秀すぎる人で残るのは、まぁ家庭を持っちゃっててとかが必要であって、若くて優秀な人って、軒並みあの組織からいなくなってるんだよな、特に品川のあそこ。"
Makoto Kato ︎︎さんのツイート: "大きい組織になったサポート部門は普通の人が入ってくるので、まぁ能力的には尖る必要がなくなって、普通の人がハンドリングできるレベルしかその組織として出来なくなる。その経過をいろいろ見ちゃってるから、尖った人は大きい会社のサポート部門へ就職することはオススめしない"
Makoto Kato ︎︎さんのツイート: "組織が小さいときはやりたい放題もできるし、いい意味で頭がおかしい人が入りがちなので、エンジニアリングとしても大変おもしろいんだけどね。大概起きてる現象って事例ないので想像力働かせるとかして説かないといけないし"

@d_toybox

なかのん&マジックさんのツイート: "2、3、8、9以外は普通のアプリ開発でも基本やるべきでしょ(5は物による)。 https://t.co/PINbS54Xyq"
命に関わるコードを書く時の10個のルール - GIGAZINE
みぞらぴさんのツイート: "モノリシックカーネル - Wikipedia https://t.co/VQ3V35Mv0S >日本国内においてはしばしばモノシリックカーネルと誤用・誤表記するユーザーやライター等が今なお見られる。日本語の「物知り」と語呂が似ているための勘違いであろう。 いらん考察すぎる"
なかのん&マジックさんのツイート: "シュミレーション("

@rockridge07

Rockridgeさんのツイート: "KaiOSはFirefox OSの遠い親戚のような存在であり、Firefox OSの開発チームの一部もMozillaを辞めた後で参加しているようだ。名称の由来は中国語の「开」(日本語の「開」)から。 / “A Short His…” https://t.co/7TiwDRDAZN"
A Short History of KaiOS - KaiOS
Rockridgeさんのツイート: "Windows版Firefox 61.0.2において、OSの強制再起動後(Windows 10 Fall Creators Update以降は全再起動後)にFirefoxが自動的に起動し、セッションを復元する機能が段階的に有効化さ… https://t.co/tW4OdUYDjo"
Rockridgeさんのツイート: "Windows再起動後にFirefoxの自動復元が行われる機能は、toolkit.winRegisterApplicationRestartの設定によって有効・無効を切り替えることができる。 / “Firefox 61.0.2 …” https://t.co/uNvvE159cg"
Rockridgeさんのツイート: "Firefox Realityのパーミッション機構はProgressive/Accountable/Comfortable/Expressive(PACE)の原則を採用するという。ユーザーにとってわかりやすい形で段階的にパーミッシ… https://t.co/TzJNK5bUR6"

@uchan_nos

OS作れないマン 技術書典3 あ11企さんのツイート: "Mobingiはクラウドへのデプロイ指示を1度定義しておくと、その定義ファイルを元にいろんなクラウド環境にデプロイができるサービスらしい。オンプレミス上のCloudFoundryとかも対応している。 #paasjp"
OS作れないマン 技術書典3 あ11企さんのツイート: "AnsibleとかChefはデプロイだけに集中しており、その後の監視とか更新などはスコープ外。Day2運用(監視、ログ、更新、バックアップなど)をするためのツールがBOSHである。 #paasjp"
OS作れないマン 技術書典3 あ11企さんのツイート: "Kuboはyamlファイルを読み取ってその通りにVMを構築し、ソフトウェア(etcdを動かすために必要なものとか)をデプロイする。 #paasjp"
x86-64-128さんのツイート: "集中コースの講師になったとしたら教えたいことまとめ: ・C++でのOSの作り方 ・川合さん謹製ツールからの脱却 ・Newlibのビルド ・UEFI起動のやり方 ・ELFバイナリのローダ ・PCIバス制御 ・SATA制御 ・USBキーボード制御 ・64ビットページング ・Linuxでのメモリ管理 ・mutexなどの同期機構"
x86-64-128さんのツイート: "全部詰め込んで教えるとは言ってなくて,学生が興味のあるところを聞いてくれたら詳しい話が聞けるリストだと思ってください.… "
OS自作 uchan_nosさんのツイート: "作者が「これはOSだ」と言い張って、周りの人も「まあそうかな」と思ったらそれがOSだ、という定義が僕は好きです。… "
OS自作 uchan_nosさんのツイート: "Operating Environmentという言葉が割と好き"
OS自作 uchan_nosさんのツイート: "OS自作について考えを巡らせていると,「OSを作る」=「カーネルを作る」となりがちでよくないな.こんな機能はカーネルに入れる必要ないよな,っていうの多すぎて「OS自作とは…」ってなりがち.だけど,ユーザ空間の諸々も含めて「OS」と考えれば,OS自作のスコープは広い."
OS自作 uchan_nosさんのツイート: "ユーザ空間でどの機能を実現し,カーネル空間(リング0)にどの機能を含めるか,っていうのもOSの重要な設計課題だと思って取り組むと,かなり楽しいチャレンジングな課題に思えてくる."
OS自作 uchan_nosさんのツイート: "ユーザ空間を含めてOSであるという立場にたてば,まだまだチャンレジすべきOSの分野は広そうだなあということに気づく.例えば,HadoopやKubernatesなどの分散処理基盤もOSだな,とかいう考えになって,未開の地が広がっていることに気づく.カーネルに閉じるとやることなさそうな感じになるけど."
OS自作 uchan_nosさんのツイート: "分散OSの教科書を読むと、壮大な夢が語られていて、意思を継いでみたさが発生する。"
OS自作 uchan_nosさんのツイート: "Kubernatesとかのオーケストレーションツールは,分散OSの機能の一部がユーザ空間プログラムとして実装された例だと思います.つまり現代の分散OS.(というのが最近分散OSを学んで感じたこと)… "

@utshina2

品川 高廣さんのツイート: "Linux の /dev/urandom は書き込み可能だけど、macOS の /dev/urandom は書き込めないらしい。"
品川 高廣さんのツイート: "Linux の /dev/urandom は poll() で POLLIN を指定すると読み出し可能として帰ってくるが、macOS ではエラーになる。"

@mhiramat

まさみさんは語りたいさんのツイート: "x86-opcode-map.txtを更新したらobjtoolが壊れたとかバグ報告が来たんだけど、意外と知らないところでこれ使われてるの?"
まさみさんは語りたいさんのツイート: "ありゃりゃー、先週末CELFで話をしていたことが(こちらはWindowsとはいえ)実際に起きた。OTAメンテ出来ないIT機器は販売してはならないっていう法律作るべきだ。 https://t.co/uRNCU3mMIP"
高梨陣平さんのツイート: "カナダで千台を超えるPOS端末がリモートからマルウェアにてwipe、削除された。Windows Xpを使用。機種はpanasonicの9300。攻撃はリモート保守に採用されたベンダー経由。SMB 1のパッチが適用されていなかった。再起動には全ての端末の物理アクセスが必要。… https://t.co/z5CLgXSBNq"
Hideyuki Tanakaさんのツイート: "Dockerいらなくね?というより、Dockerのコンセプトは成功したけど実装は気に入らないから積極的に代替に切り替えていきたいという流れじゃなかろうか(´・_・`)"
まさみさんは語りたいさんのツイート: "Dockerがいらないというより、Docker自体がモノリシックすぎて他のフレームワークと合わせて使いにくいから小さくしたcontainerdが使いたい、という話では。やっぱりUnix哲学は正しかったんだよ。"
まさみさんは語りたいさんのツイート: "ということをsystemdにも普及させていきたいのですがどうすればいいでしょうか。"
Kazuo Moriwakaさんのツイート: "systemdかなり機能ごとにバラバラになってると思うのですが…… ファミリーになってるとだめなかんじですか… "
まさみさんは語りたいさんのツイート: "機能毎にAPIって切れていて、任意のコンポネントを入れ替えるのは簡単なんでしたっけ?… "
Kazuo Moriwakaさんのツイート: "systemd-logindをつかわないとかはまあ普通にできる印象ですが置き換えの実装がないのでGNOMEつかいたいとかだと困りそう… "
まさみさんは語りたいさんのツイート: "なるほろ、systemd以外に依存ができてるわけですね。 なんかCNCFみたいな感じでいい感じにコンポネント毎の呼び出し規約の標準化とかが出来ると、コンポネント毎に代替手段やフォークして別になった実装が入って、またダイナミズムが復活するかなあ、という気持ちです。… https://t.co/1slSF5oDUU"
Kazuo Moriwakaさんのツイート: "udevdとsystemd本体は外すと前提が崩れていろいろ手当てがいりそうですが、基本的にはsystemd-*は相互にdbusでやりとりする疎結合なサービス群として構成されているので入れ替えたり使わなかったりは(程度問題ですが)やりやすいはず… "
Kazuo Moriwakaさんのツイート: "少なくとも*BSDはsystemd-udevつかわずにhald等でdbus喋って対応してるので、簡単な置き換えが典型的なlinux環境に無いというだけで極めて難しいとかではないはず。https://t.co/aDsmeJLDJ6標準のサポートはsystemdが強いところなのでデスクトップ環境を動かすのにsystemdが欲しいのは割と特徴的。… https://t.co/rDPmDL7C7g"
まさみさんは語りたいさんのツイート: "svcはservice callなんだろうな。レジスタの代わりにTLSにメッセージをおいてsvcするわけか。 #kernelvm"
まさみさんは語りたいさんのツイート: "NSの内部のgfxの処理は、処理するためのバッファキューをIPCで操作する。この仕組みはAndroidのbinderの仕組みを再利用している。 #kernelvm"
まさみさんは語りたいさんのツイート: "OSの仕組みを学ぼう、より、OSに入っている仕掛けを学ぼう、のほうが面白いかも。"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "OS側ニーズで再起動する場合は、デスクトップ上のアプリケーションが完全復元する仕組みが出来ると良いのだが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "手元のデータだと、ようやくXPはほぼ消えた感じになってきた。 (だが、時折、XP(x64)で動かないんですけど…という問い合わせが来たりする)… "

@beepcap

Miura Hidekiさんのツイート: "セルフホストOSといえば、これだよな。何度見てもすごい https://t.co/pzj7DQu3yc"
ガラパゴスは此処に在った!自作OSの上で自作CADを動かす猛者 | Scene Research Station
beepcap@HTTPSの強制には反対さんのツイート: "これはちょっと違って、12年前だと時代遅れではあるものの、 30年前は「ソフトが書けなきゃPCはそもそも起動しても意味が無い」時代だった。 パソコンを使うとはソフトウェアを記述することだった。 その時代の感性であれば、自作するのは当たり前だろう。 CPUがDX4と言っているのでさもありなん"
beepcap@HTTPSの強制には反対さんのツイート: "僕もPC98で自作のワイヤーフレームモデラソフトを作って、ワイヤーフレーム表示や3D表示を研究していたぞ。 もう多分手元からなくなってしまったが、法線ベクトルを使うともっと簡単にポリゴンへの光線処理が出来ると分かったのは作ってからだいぶあとだったな・・・(減衰率と角度で表現していた)"
beepcap@HTTPSの強制には反対さんのツイート: "セルフホストOSといいつつ、まぁ自分専用のおもちゃだったんだろうと思うぜ。"

Advent Calendar

その他

Bluetooth Low Energy Advent Calendar 2014 - Qiita
Bluetooth Low Energy Advent Calendar 2015 - Qiita
Bluetooth Low Energy Advent Calendar 2016 - Qiita
一人トランザクション技術 Advent Calendar 2016 - Qiita
武蔵野 Advent Calendar 2017 - Qiita
カーネル/VM Advent Calendar 2012 : ATND
カーネル/VM Advent Calendar 2013 - Qiita
Kernel Advent Calendar 2017 - Adventar
オープンソースカンファレンス Advent Calendar 2018 - Adventar
Advent Calendar 2018 - panda's tech note
OS-CPU Advent Calendar 2019 - Adventar
東京大学 品川研究室 Advent Calendar 2020 - Qiita

BitVisor

BitVisor Advent Calendar 2015 - Qiita
BitVisor Advent Calendar 2016 - Qiita
BitVisor Advent Calendar 2017 - Qiita
BitVisor Advent Calendar 2018 - Qiita
BitVisor Advent Calendar 2019 - Qiita
BitVisor Advent Calendar 2020 - Qiita

Linux

Linux Advent Calendar 2013 - Qiita
Linux Advent Calendar 2014 - Qiita
Linux Advent Calendar 2015 - Qiita
Linux Advent Calendar 2016 - Qiita
Linux Advent Calendar 2017 - Qiita
Linux Advent Calendar 2018 - Qiita
Linux Advent Calendar 2019 - Qiita
Linux Advent Calendar 2020 - Qiita

本日12月1日より,2017年の技術系Advent Calendarが各所ではじまる:インフォメーション|gihyo.jp … 技術評論社
自作OS Advent Calendar 2014 - Adventar
自作OS Advent Calendar 2016 - Adventar
自作OS Advent Calendar 2017 - Adventar
自作OS Advent Calendar 2018 - Adventar
自作OS Advent Calendar 2019 - Adventar
自作OS Advent Calendar 2020 - Adventar

IME

Wolfram|Alpha 日本語版:計算知能
The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction • Software Engineer as Data Scientist
全ての機械学習の論文は新しいアルゴリズムを提案しているのですか? - Quora
はまさんはTwitterを使っています 「@shunji_umetani 嘘にならない範囲で限界までポジショントークするなら「確かに似てますよね!じつは機械学習も中身は最適化問題を解いてるんですよ!データから最適なアクションを見つけだす技術が機械学習。でも最適化にはデータなしで最適なアクションを見つけ出す技術もあります!」」 / Twitter

IME

その他

IME

日本語入力 / エスリル
フリック入力の基本 / iPhone5の使い方動画 - YouTube
Seamonkey インプットメソッド仕様書
🐟日本語入力の落とし穴 #burikaigi - みずぴー日記
“http”が“hっtp”になるイライラを解消する「ImeCaretColor」【レビュー】 - 窓の杜
SKKがブラウザ経由で使える「SKK Anywhere」を作ってみた - yunazuno.log
パッチを当ててuim-skkをUTF-8化する | κeenのHappy Hacκing Blog
im2018 · mamorlis/chaime Wiki

エディタ

Big Sky :: Vim と日本語入力の話。
SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!) - しふーのブログ
エディタのVimモードで、Escキーを押したときに日本語入力をオフにする設定(macOS, Windowsそれぞれの場合) - nosu blog

自然言語処理

分かち書きする言語しない言語のトークン化を統一的に扱う方法を妄想してみる - 言語と知能
GBDT - Google 検索
☔️⚡️さんはTwitterを使っています 「正直、文章のクラスタリングならばもうGBDTでいいと思う。 NN使うとやっぱ最大の課題はAPIにしたとき重いんですよね。 精度もAUCで3%ぐらいしか違わないので、高頻度で叩かれるAPIを想定するとGBDTに分があります」 / Twitter
言語処理100本ノック 2020 - NLP100 2020
ラフ集合 コーパス - Google 検索
Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「ツイッターのような短文書分析用の新しいトピックモデル。ACL2020。文書に含まれる分野を教師なし推定するトピックモデルの代表格がLDAだが、各文書に含まれる単語数が少ない短文書では弱い。分散表現は併用せず、最後まで単語を離散的に扱う純粋なトピックモデルのようだ https://t.co/jl8JMPveFA」 / Twitter
An Online Semantic-enhanced Dirichlet Model for Short Text Stream Clustering - ACL Anthology
Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「Semantic enhancedと書いてあるので、GLoVeみたいな単語の連続的な分散意味表現を別に持ってきて併用する方法かと思ったんですけど、どうやらそういう話ではなく、離散的な単語表現からトピックと各単語の間のsemantic weightという値を計算して、教師なし学習時に逐次更新するらしい。」 / Twitter
C3-3.pdf
論集49-2_白田.indd
Mamoru KomachiさんはTwitterを使っています 「何がギャップだったかというと、言語学での自然言語処理はルールベース万歳でひたすら辞書やルールといった知識を書く(プログラミングは正規表現的な)アプローチだったのに対し、工学の自然言語処理は統計的手法全盛で、コーパスにタグを付けて機械学習するというアプローチだったので、違いすぎた。」 / Twitter
『トピックモデル』の勉強ノート:記事一覧 - からっぽのしょこ
Googleが表形式データを使用して自然言語の質問に答えるためのAIをオープンソース化
Salesforceがデータベース用自然言語インターフェースPhotonをリリース
MicrosoftとGoogleが言語横断のAIタスクに対する新しいベンチマークをリリース
しょこβ📚さんはTwitterを使っています 「本にはないけどこれを変分ベイズでも解くという遊び方に気付いてしまった。 #OsakaR はてなブログに投稿しました #はてなブログ 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ https://t.co/o7dO1GJjdw」 / Twitter
5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ
nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ
系列ラベリングによる NPS コメントのポジティブ・ネガティブ部分の抽出 - クックパッド開発者ブログ
NPSアンケートを自動分類した話 - クックパッド開発者ブログ

辞書

Yuki YoshidaさんはTwitterを使っています 「国語辞典、循環参照するじゃんと思ってたが、あれは連立方程式だと思えばいいのか。巨大な連立方程式の解として全ての言葉を定義している。」 / Twitter
翻訳するポット🫖さんはTwitterを使っています 「@yos1up すこし違いますが、減衰係数をかけて代入を繰り返して計算解を出すという手法もあります。 鈴木敏『辞書に基づく単語の再帰的語義展開』 https://t.co/Fy1Hj67Bng」 / Twitter
情報学広場:情報処理学会電子図書館

スクレイピング

ウェブサイトからデータを自動で収集する「スクレイピング」を実行する方法と注意点 - GIGAZINE
ローカル環境で netlify lambda のエミュレータを動かす - mizdev
netlify-lambda で puppeteer を起動する - mizdev
ブラウザのさまざまな操作を自動化するためのガイドをまとめたサイト「theheadless.dev」 - GIGAZINE
theheadless.dev - Learn Puppeteer & Playwright
checkly/theheadless.dev: Learn Puppeteer and Playwright - Tips, tricks and in-depth guides from the trenches.
ブラウザ自動化ライブラリ Puppeteer が Firefox をサポート
Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース
ウェブサイトの情報を自動で取得する「ウェブスクレイピング」をJavaScriptで行う方法 - GIGAZINE

耳コピ

しゃをみんさんはTwitterを使っています 「ブログに書きました。先日のOngaACCELシンポジウムで発表されたAI自動採譜の研究について、自分が関わったパートを少し詳しく解説してみました。 「AI自動耳コピ」の研究者がいま考えていること - しゃをみんの自習部屋 https://t.co/DMvmLqcouH https://t.co/uPWmlwqNAq」 / Twitter
「AI自動耳コピ」の研究者がいま考えていること
【藤本健のDigital Audio Laboratory】音を楽譜にする“耳コピ”はここまで来た。AI自動採譜の最前線-AV Watch
[2005.07091] Semi-supervised Neural Chord Estimation Based on a Variational Autoencoder with Latent Chord Labels and Features

位相的データ解析(Topological Data Analysis)について | ALBERT Official Blog
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
整数計画法による定式化テクニックをまとめたい - 締め切り駆動開発
NumPyroによるベイズモデリング入門【線形回帰編】 | deepblue
松本徹三さんはTwitterを使っています 「@shirouzu 現在の延長線上ではシンギュラリティーは無理だと思っています。三つの点でブレークスルーが必要です。1)推論スピード(量子コンピューターが必要)2)データベース(大量の文書や講演・演説等のデジタル格納が必要)3)規範の認識と遵守、自由意志、自律的問題提起、閃き、等々の問題の解明。」 / Twitter
「相手のあらゆる行動の確率を計算する」ポーカーAIをFacebookが開発、将来的にはサイバーセキュリティへの応用も - GIGAZINE

ローマ字

Twitter

毎日新聞さんのツイート: "ローマ字の「ち」は「ti」と「chi」。 教育現場からは「どちらかに一本化してほしい」との声が上がっています。 https://t.co/pJXfyqmaN5"
SASANO Takayoshiさんのツイート: "「ち」は「chi」表記じゃないかなあ。「ti」は「てぃ」という発音に見えるんだけど。(キー入力のことは考慮しないツイート"
SASANO Takayoshiさんのツイート: "入力は多分tiだと思います。 #ち"
SASANO Takayoshiさんのツイート: "むしろぁぃぅぇぉ入力がlaなのかxaなのかで戦争が起きるような"
SASANO Takayoshiさんのツイート: "ていうか何故統一したがるんだろう。どっちでも良いものは「どっちでもいい」を許容しなよ。"
Orumin de Izumoensisさんのツイート: "このまえ,ローマ字入力で ti か chi かで訓令式かヘボン式かみたいなアンケートが出回っていたのだけれども,昭和二十九年十二月九日のローマ字のつづり方(内閣告示第一号)における第二表に,"ち"を chi と綴る方法が乗ってる https://t.co/g3qvGc8ft8"
KIMATA RobertHisasiさんのツイート: "なんで選択肢が訓令式とヘボン式からの択一なのか。ISO 3602はなぜかこういう時に話題にすら上がらない。国際標準なのに。あと99式とか日本式とかもあるがこちらも話題に上らない。更に固有名詞の場合、ローマ字の書き方無視して全く別の綴りになる場合もあるが、そういう場合の対策も出ない https://t.co/kXpjfgJJhc"

ローマ字 - Wikipedia
99式ローマ字 - Wikipedia
ISO 3602 - Wikipedia
UT_Komaba_Nihongo_no_romaji_hyoki_v1a
ヘボン式ローマ字一覧表です。ローマ字のヘボン式と訓令式の違いを知っておこう!
正しく知っておきたい「ヘボン式ローマ字」の基礎知識 - NAVER まとめ
新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp

Mozc

Re: [opensuse-ja] 辞書の話
Wonderlands in Usagi's brain: mozcユーザー辞書エディターとか作ってデータ構造とアルゴリズムをがさごそっと勉強しようか
Mozcソースコード徹底解説 #TokyoTextMining
Mozc - ArchWiki
google/mozc
mozcをコンパイルしてインストールする(Linux) - Qiita
Google 日本語入力 - Wikipedia
2012年他にやったこと - Mozc 編 - NyaRuRuが地球にいたころ
2014 年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
2013年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
2012年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
エヌユルさんはTwitterを使っています 「@d_toybox ローマ字テーブルをカスタマイズできるのがmozc系だけなので逃れられなくなりました」 / Twitter

Google

もしかして

スペル修正プログラムはどう書くか
日本語「もしかして」検索について - 株式会社ロンウイット
日本語「もしかして」検索について - 株式会社ロンウイット
Apache Solr でサジェストを実現してみる、その2 - Qiita
「Google サジェスト」が正式サービス開始、「もしかして?」を検索窓に表示 | 日経 xTECH(クロステック)
Google、「もしかして」修正検索の新しい機能 | 海外SEO情報ブログ

グライド入力

渋川よしきさんのツイート: "グライド入力、めちゃ便利。英語入力めちゃくちゃ早くなった。欧米人がIMEを知らなくて云々というのは過去の話になりそう。グライド入力とか音声入力を実現するには必要だし、事例として理解してもらいやすくなりそう。"
渋川よしきさんのツイート: "AndroidのGoogle日本語入力内蔵英字キーボードにはグライド入力ないのね。Google中国語入力の方にはあるのに!まあ、システムキーボードのgboardの方を使えばよいのだけど。"
iOS版「Gboard」が日本語対応!賢いグライド入力も!
英文メール作成も楽ちんに。日本語対応した「Gboard」でキー入力を“同時翻訳” - ケータイ Watch
ASCII.jp:スマホの入力でも日本はガラパゴス、世界は《ひと筆書き》入力が主流だ|遠藤諭のプログラミング+日記
指をスライドして入力する - Nexus ヘルプ
Google日本語入力の後継アプリ「Gboard」のAndroid版が最新β版で日本語に対応 – ゼロから始めるスマートフォン
iPhoneのキーボード入力をカスタマイズしてちょいワザ覚えたら超快適になった - Engadget 日本版
Android★SQUARE:■Gboard - Google キーボード ~ 大幅な進化を遂げていた標準キーボード
Google日本語入力の後継キーボードアプリ「Gboard」のAndroid向けが最新β版で日本語に対応!導入方法や使い方を紹介 - ライブドアニュース
Gboard - Google キーボード - Google Play の Android アプリ
【Gboard】Google らしいスマホ向け文字入力ツールの初期設定、使い方を解説(iOS版)

Google

Google Japan Blog: Google 日本語入力の開発版をアップデートしました。(0.13.481.10x)
Google Japan Blog: Google 日本語入力チームからの新しいご提案
714668 - Duplicate normal character + Vietnamese character for Vietnamese input - chromium - Monorail
Backspace can not erase the last one character during Japanese IME conversion (macOS) · Issue #9173 · electron/electron
Google 日本語入力 - CGI API デベロッパーガイド
(99+)Google 日本語入力 ヘルプ フォーラム - Google プロダクト フォーラム
Google 日本語入力報告されている問題 - 日本語入力 ヘルプ
誤変換報告フォーム - 日本語入力 ヘルプ
[026460]通常使用する言語(日本語入力システム)を切り替える
「新しいキーボードをインストールします」と通知されますが何も変わっていない。これは何でしょうか&# - マイクロソフト コミュニティ

窓の杜

【レビュー】ここ100年間で公開されたアニメタイトルを網羅した「Google IME」向け辞書ファイル - 窓の杜
Google、スペルチェック機能を搭載した「Google 日本語入力」v0.13.521.0 - 窓の杜
Google製の日本語入力システム「Google 日本語入力」がついに正式版へ - 窓の杜

本の虫

本の虫: Google日本語入力の技術講演会
本の虫: Google日本語入力の開発版が更新された

Twitter

なかのん&マジックさんのツイート: "Linux版ChromiumのIME周りのイベントの挙動が変なことになってるなーと思ったので、ソースコード確認してみたけど、やっぱりコメントから悲壮感漂ってくるな……ホンマに地獄。"
Desktop App Convater で変換した UWP アプリ対応の Google 日本語入力 2.23.3195.100 / 101 開発版リリース – What I Know ~ワッタイナ
まさみさんは語りたいさんのツイート: "なんかこれはgoogle日本語入力などでよく見られるような(笑)… "
高梨陣平さんのツイート: "NNのモデルは学習したデータを記憶してしまい、悪意あるユーザはデータを取り出すことが可能だとの研究結果。特にテキストデータの学習が危険でイメージやそれ以上のエントロピーが高いデータは難しいという。回避方法は重要データは学習させない、するなら差分プライバシアルゴリズムを使用すること… https://t.co/i2yOoswRt4"
Albert R. Antoscaさんのツイート: "Neural nets can "unintentionally memorize" private training data, leaving it vulnerable to hackers. "[We] don't really know why neural networks memorize these secrets right now" #neuralnets @TheRegister # https://t.co/JMSyq06F9P… https://t.co/2BxpcZlYCe"
Boffins baffled as AI training leaks secrets to canny thieves • The Register
[1802.08232] The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets
Makoto Kato ︎︎さんのツイート: "Google日本語入力に関しては、エイプリルフールやる前に、プロダクトのバグを直して欲しいよね。。。"
Google Developers Japan: Gboard 物理手書きバージョンの舞台裏
なかのん&マジックさんのツイート: "Google日本語入力って、スクリーンのDPIが変更になると、移行、候補ウインドウ位置とかバグる?"
なかのん&マジックさんのツイート: "プロセスを殺してみたら正常な位置に表示されるようになったけど、その後再起動されていないのにそのまま動いてるのが気持ち悪いな……どういうことなの。"
Makoto Kato ︎︎さんのツイート: "Microsoft Japanese IMEも2017の時にいろいろあったのをサム古川さんがばらしちゃうし (まだ日本にチームあるけど)。。。"
Makoto Kato ︎︎さんのツイート: "なので、JustSystemに納税するようにしてます"
Makoto Kato ︎︎さんのツイート: "Google Japanese Inputの功罪は、IMEで稼ぐビジネスが難しくなったのと、その結果焼け野原になった後に彼らが(会社の方針かどうかは知らないけど)アップデートをしなくなったことですね。Netscape Navigatorでみんなが学んだビジネスのつぶしかたではある"
Makoto Kato ︎︎さんのツイート: "OSSなんてパッチ書いて問題点指摘するだけでもいいわけだし、自分の場合はどういう形であれバグが直ればいいだけなんで。 他人のパッチを自分が取り込む場合は、パッチを全く変えたとしてもその人の名前でできる限りlandするけどさ。ただ会社によってはできないからね"
Makoto Kato ︎︎さんのツイート: "そもそもChromiumのIMEコードってもう日本人やってないはずだし、Google Japanese Inputも(そのチームではもうない) 某氏がギョーム外の休日にやるかどうかだから、自分とかでパッチ書けばいいじゃんといつも思うんだけど。なんのためにmozcがOSSにしてあるのかと https://t.co/DyYnqFkJ0J"
Makoto Kato ︎︎さんのツイート: "AI SoftのWXビジネスだって、Microsoftに駆逐されたし (というかもともとのMicrosoft IMEはWXのソースコードライセンス版からスタートしてるが)、商用のサードパーティ製IMEはデスクトップじゃ難しいよな"
Makoto Kato ︎︎さんのツイート: "Chrome 75 for Windowsで入力周りの変な話が出てきたのは、75でTSFに移行したからか。Geckoの場合はさんざんサイクル回したけど、Chromeは一気にいったんだ。Microsoft社内でテストされてるんだとは思うけど"
SODA NoriyukiさんはTwitterを使っています 「Google IMEの z+一文字 って、たぶん Emacs Egg あたりが起源だから https://t.co/4gFIyrEzL5 の「『zX』が :-) に変換される?!」に記載されている奴はだいたいあるんじゃないかなあ。 ちゃんと確認したことないけど。」 / Twitter
Wnn Yogo Ver.2.0 (2005.4.18)
ひさてるさんさんはTwitterを使っています 「Google IME zh ← zj ↓ zk ↑ zl → ここまでは知ってたけど z- 〜 z[『 z] 』 z. … こんなのもあったのか」 / Twitter

ライティングが捗る!Google日本語入力の意外と知らない便利機能9選|ferret [フェレット]
Google日本語入力のショートカットを覚える - Milk+ea

ATOK

blog

Macの日本語入力に「ATOK」を1年以上使い続けている理由 - Better Better Days
ATOK & やまぶきR による親指シフト - にせねこメモ
ATOK も統計的言語処理へ - NyaRuRuが地球にいたころ
Firefox Quantumが激重になる問題が発生中 - あれこれ備忘録@はてなブログ
3DMARK 11で透明な窓が出てきて起動しないのはATOKの設定が原因だった | Hinemosu
3DMarkが動作しない...原因はこれ?! | つれづれなるままにひぐらしすずりにむこて..
おりおんの戯言 - メインPC、ビデオカード換装。(2014/09)
ATOKの直前の入力を日本語にするをポップアップさせない方法 - プログラムdeタマゴ

PC Watch

ジャストシステム、新エンジンを搭載し誤変換が30%削減された「ATOK 2017」 ~10年ぶりの刷新でディープラーニングを駆使 - PC Watch
「まっくお」で「macOS High Sierra」に変換できるATOKの新IT辞書公開 - PC Watch
ジャストシステム、Windows 10プチフリ問題を解消したATOKアップデート - PC Watch
ジャストシステム、説明で漢字変換できる新機能を搭載した新「ATOK for Windows」 ~Android版も深層学習エンジンで予測変換性能が30%向上 - PC Watch

INTERNET Watch

「ATOK 2017」はディープラーニングで誤変換3割減、2月3日発売 -INTERNET Watch
「ATOK for Mac」の入力ミス修復率が35%向上、最新版をATOK Passportで公開 - INTERNET Watch

窓の杜

ディープラーニングを採用した新変換エンジン搭載の「ATOK 2017」が発表 - 窓の杜
ジャストシステム、次期「ATOK」を発表 ~ディープラーニング技術を活用して入力ミスを修正可能に - 窓の杜

Twitter

なかのん&マジックさんのツイート: "ちなみに、ATOK 2011以上はTSFのTIPになっているので、安定して動作します。ただし、Win10ではIME周りの変更がまた入ってるので、ATOK 2015以上にした方が良いです(2011も試した限りでは使えていますが)。"
なかのん&マジックさんのツイート: "@dalkyrie4g Win8以降でATOK 2010以前は64bit版アプリではまともに動作しないのを確認しました。Win7やx86版アプリでは問題無いのでWindows側の変更によるものだと思います。2011以降にアップグレードするか、Firefoxのx86版を再インストールするかですね。"
Rockridgeさんのツイート: "Fx57:アクセシビリティサービス(ATOKインサイトを含む)が有効の場合、一部のWebページでハング状態が発生する問題を修正。 / “1321960 - Browser becomes hangs up and Windows…” https://t.co/wLfSO2ubVT"
Piro/Linuxコマンド操作解説漫画連載中さんのツイート: "https://t.co/rGMU4O2FWW ATOKもAdobe製品もクラウド一本化、Google Homeを男声で喋らせるデモも後ろは当然クラウドで、スタンドアロンがあり得ない前提の「コンピュータは世界に5台だけで充分」な時代と感じるけど、ツールがオフラインで動かないっていうのは古い世代の自分には恐怖感や不快感がある"
ATOKの買い切り型とPassport版各種の違い - 俺の作業デスク
なかのん&マジックさんのツイート: "クラウドはこちらの都合よりもメーカー側の都合優先すぎて嫌だな。販売終了しても使える方法をちゃんと提供してくれるの?ってところが主に。"
一ノ瀬 いろはさんのツイート: "Adobe は用意してたりしますね。ライセンスサーバー止めるので認証不要版提供。… "
なつき@Webデザイン日曜開催さんのツイート: "ATOKは、クラウドに接続できないと変換一覧ポップアップの右端にアイコンが出ている候補が表示されなくなるはずです。 余談ですが、夕方からaiboのクラウドサーバが落ちたらしく、aiboが一歩も動かなくなってクラウドの重要性をかみしめています…… "
なかのん&マジックさんのツイート: "んんんんん? ATOK Passportって、古いATOK削除しないとインストールできない??? これはテストでむっちゃ困るんですけど。"
なかのん&マジックさんのツイート: "なんかよく分からんな。インストーラのメッセージがバグってるかも? 削除しますか的なメッセージで「はい」にしないと進まないんだけど、通常のインストーラが起動してから聞いてくるのに対しては単に拒否できて先へ進める。しかも最初に聞いてきたバージョンは再度聞かれなかった。"
なかのん&マジックさんのツイート: "いや、やっぱり、最初に聞かれて拒否できなかったATOK 2014だけ削除されてしまった。ATOKは後から古いバージョン入れられないから面倒だなぁってのと、そもそもPassportのインストーラが複数バージョンインストールしてる環境でテストしてなさそう?"
なかのん&マジックさんのツイート: "とりあえず、これ、Passportのインストーラに関しては嘘っぽいので、修正した方が良いのでは。Passportのインストーラの後に来る、ATOKそのものっぽい方のインストーラは、パッケージ版と同じく、共存の選択肢あるけど。 https://t.co/dQGTTqvwj1"
なかのん&マジックさんのツイート: "二つ以上のバージョンがインストールされていたら、最初に聞かれたバージョン以外は残せる模様。"
なかのん&マジックさんのツイート: "単純にPassportのインストーラのバグなんじゃないのかな。ちなみにmacOS版も全く同じUIから強制アンインストールさせられたけど、共存不可なのは https://t.co/dQGTTqvwj1 に明記されてるんで、macOS用のコードが、Windows版でもビルドされちゃってるとか?"
なかのん&マジックさんのツイート: "あれ? ATOK Passportだと、TIP名が"ATOK"になってて年号入って無いな。加えて、GUIDが{A38F2FD9-7199-45E1-841C-BE0313D8052F}だけど、これって今までのバージョンもこうだったんかな? もしそうなら、ATOK向けのGeckoのハックがまったく動いてなかったことになるけど。"
なかのん&マジックさんのツイート: "Win10のInsider Build入れてるノートPCの方にATOKをインストールしたら、インストール済みのバージョンのアンインストールを拒否できた。ただ、メインの環境で拒否できなかったのは複数バージョン入ってるうち、2014のみ。こちらの環境は2017のみが入ってたのと、インストーラ自体が別物かも?"
なかのん&マジックさんのツイート: "壊れて欲しく無いメイン環境の方から2014がアンインストールされてしまったのが本当に痛いなぁ。ATOKはより新しいバージョンが入っていると古いバージョンをインストールできないんで。"
Makoto Kato ︎︎さんのツイート: "Firefoxのa11yの問題はATOK使ってて痛いほどわかるんだけど、あれに首突っ込んだら身体が足りないのでやってない。。。でもデッドロックの問題はいろいろバグ報告したけど"
なかのん&マジックさんのツイート: "a11yが必要な理由がATOKのみだったら、a11y機能を無効化して欲しいぐらい。"
なかのん&マジックさんのツイート: "一太郎についてるATOKって"ATOK FOR 一太郎2018"とかになるのか。ということはこれ、毎年個別のGUIDが振られていく訳か。誰かに教えてもらうしかないかな。"
箱あんこうさんのツイート: "そういや、ATOK を入れた状態でネットが不安定なところで作業していると、サーバーと繋がらなかったよっていちいちダイアログ出してきて、しかも選択を間違えるとブラウザ開いてきたりするのが最高にウザったいのよね。 まぁ認証とか大切なのはわかるんだけど、正直つらい。"
なかのん&マジックさんのツイート: "おう……ATOK、PerMonitor DPIに対応してない?"
なかのん&マジックさんのツイート: "デバイス間での辞書の同期や、変換候補を広辞苑で確認したりできるの、ATOKしかないんで、値上がっても私的にはまだ全然OK。サービスが無くなった場合のデメリットがはるかに支出を上回るケース。 / 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER https://t.co/b3sifb793I"
月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER

ATOKとMicrosoft IMEのショートカットキー比較
Bug-org 1409155 ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment - WebStudio

Japanist

なかのん&マジックさんのツイート: "次の商品を購入しました:富士通ミドルウェア 『Japanist 10』 via @amazonJP https://t.co/xvgtMx0ae1"
なかのん&マジックさんのツイート: "来てみないと分からないけど、Japanist 10が出ると、親指シフトキーボードがある程度スマートに環境作れるようになるのでは?"
なかのん&マジックさんのツイート: "親指シフトは、キーの入力複数個をまとめて一文字の入力としてるけど、あれがレスポンスを悪くするし、OSネイティブで処理される必要が出てくるしで、技術的には筋が悪いよね……"
なかのん&マジックさんのツイート: "親指シフトキーボード(物理)を買ってあるけど、軽く1時間ほど練習して投げ出した。"
なかのん&マジックさんのツイート: "Japanist 10入れてみたけど、案の定なTS_E_NOLAYOUT対策入れてないなーという感じの動作だ。"
なかのん&マジックさんのツイート: "あと、アプリ上でJapanist 10の設定を開こうとすると、アプリがハングアップする(回復するパターンのほうが多いけど)。そして設定が開かない。スタートメニューから独立したアプリとして起動する分にはOK。"
なかのん&マジックさんのツイート: "Japanist 10のキーバインディングの変更で、他のIMEの基本的なバインディングがプリセットとして用意されていないのは、乗り換えさせる気ゼロって感じだなぁ。"
なかのん&マジックさんのツイート: "Japanist 10、一応確認したけど、TIP名は"Japanist 10"、GUIDは{E6D66705-1EDA-4373-8D01-1D0CB2D054C7}。縦書きにはちゃんと対応してる模様。"
なかのん&マジックさんのツイート: "とりあえず、Japanist 10がこのままではFirefoxで使い物にならないので、ハックを入れるバグは立てた。たぶん簡単に修正できる。 https://t.co/XvKWgzA1VD #もずでぶ"
なかのん&マジックさんのツイート: "よし、Japanist 10以外では目立ったTSFのバグはこれで一掃できたかな。"
なかのん&マジックさんのツイート: "Japanist 10のためにハック入れたパッチ、仕方なく、他のIMEでも通るパスを修正する必要があったので、少しリスクが高くなってて、BetaへのUpliftをリクエストすべきか悩んでる。"
なかのん&マジックさんのツイート: "まあ、Japanist 10ユーザからのバグ報告があったわけでもないんで、もういいかなって感じはしてるけど……"
なかのん&マジックさんのツイート: "実際のバグ報告が無いんで、GeckoのJapanist 10対応は、59にupliftせずに60 (次のESR)から。TSFのバグにJapanistが引っかかってるって話だし / https://t.co/XvKWgzA1VD - [TSF] Candidate window of Japanist 10 positioned incorrectly and flicked (not aware of TS_E_NOLAYOUT issue) #もずでぶ"

MS

MS

IME Share

IME Share (Windows)
続報: imeshare.dll —完結編— - イグトランスの頭の中
IMEのドキュメントURLメモ - イグトランスの頭の中
Mozilla for Windows x64 platform: How to get IME settings such as converted text color

知っておくと便利な機能

日本語入力(IME) の知っておくと便利な機能(1) – Windows & Devices 開発統括部
日本語入力(IME) の知っておくと便利な機能(2) – Windows & Devices 開発統括部
日本語入力(IME) の知っておくと便利な機能(3) | Windows Blog for Japan
日本語入力(IME) の知っておくと便利な機能(4) | Windows Blog for Japan
日本語入力(IME) の知っておくと便利な機能(5) | Windows Blog for Japan

Win10 AU, CU

Windows 10 Anniversary Update 日本語入力 (IME) 関連の改善 | Windows Blog for Japan
Windows 10 Creators Update 日本語入力 (IME) の改善 | Windows Blog for Japan

Win10 FCU

Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update において、未確定文字列の確定タイミングが変更されました – JAPAN Platform SDK(Windows SDK) Support Team Blog

IME ショートカット - マイクロソフト コミュニティ
Microsoft IME Application Interface
Third-party input method editors - Compatibility Cookbook
Input Method Manager (Windows)
Masaru Iritaniさんのツイート: "@yutakakn 横から失礼します、IME の開発者です。実は日本にも Windows の開発チームが有り、IME も日本語については日本のチーム (@msimejp) が担当しています。ローカライズに関しては、是非フィードバック Hub にてご意見をお寄せください。"
日本語入力(IME) の「クラウド候補」について | Windows Blog for Japan
Windows 10 における日本語入力の変換精度向上への取り組み | Windows Blog for Japan
Windows 10 Insider Preview ビルド 14986でお試しいただける日本語入力の改善点について | Windows Blog for Japan
Windows 10 Insider Preview ビルド 15002 でお試しいただける日本語入力の改善点について | Windows Blog for Japan
Windows 10 Insider Preview ビルド 16226 でお試しいただける日本語入力の改善点 - Windows Blog for JapanWindows Blog for Japan
Windows_Japanさんのツイート: "最新 #WindowsInsiders ビルドの日本語入力では、入力そのままの予測候補とスペル修正された予測候補がすぐ区別できます。クエストをお試しいただき、フィードバックをお寄せください。 https://t.co/PC41BQBF0V https://t.co/WSkxL9fF4q"
Windows 10 Insider Preview ビルド 17035 でお試しいただける日本語入力の改善点。女子高生 AI「りんな」による予測候補を追加 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 17063 でお試しいただける日本語関連の改善点について - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルドでお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18262 の日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18277 でお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18875 でお試しいただける日本語入力に関する改善点 - Windows Blog for Japan
【Chrome+MS-IME】変換確定(Enter)で入力中だった文字が消える不具合について(BackSpace→Enterで消える現象)

TSF

MS

ITfInputScope interface (Windows)
Text Services Framework
Text Services Framework (Windows)
TSF Aware – Dictation, Windows Speech Recognition, and Text Services Framework.
IME (Input Method Editor) と Text Services Framework のアクセシビリティ
MSDN Magazine - July 2007 - Speak Up: Support Dictation with Text Services Framework
64-Bit Considerations (Windows)

Mozilla

Firefoxのナイトリービルド、Text Service Framoeworkにデフォルト対応へ | スラド IT
Masaru Iritaniさんのツイート: "@d_toybox 詳細な情報をいただきありがとうございます!担当者にもお伝えしました。初期調査では TSF に原因が有りそうだという話ですが、いただいた情報も踏まえて引き続き調査を進めます。"
Bug-org 1204519 [TSF] Get rid of the hack for TS_E_NOLAYOUT issue with Google Japanese Input - WebStudio
Windows 版 Nightly が TSF ネイティブサポートへ | Mozilla Developer Street (modest)
Bug-org 848672 [TSF] Redesign focus and IME state handling of nsTextStore - WebStudio
なかのん&マジックさんのツイート: "台湾のIMEのバグ対応でTSFの泥沼にハマってる。TS_E_NOLAYOUTがらみのバグの根元を、いい加減にWindows側とMS製の各国語IMEで修正していただきたい。"
なかのん&マジックさんのツイート: "Google日本語入力がハマってるTSFのロック絡みのバグのために入れてるハックで、他の言語のMS-IMEの動作に合わせられなくなってるっぽくて(まだ完全に確信にいたった訳ではない)頭抱えてる。"
なかのん&マジックさんのツイート: "とりあえず、最近のTSF周りの修正で得られた知見は、なんでか、ネイティブの中国語環境と、日本語環境に中国語のTIPをインストールしたのとでは、動きが全く同じではないという嫌すぎる事だ。"
WindowsのIME API、TSFのTS_E_NOLAYOUT問題とは - WebStudio
Masaru Iritaniさんのツイート: "ご指摘いただきありがとうございます。#WindowsInsiders Skip Ahead (RS5) ビルド 17643 以降では、GetTextExt() が TS_E_NOLAYOUT と E_INVALIDPOS を正しく返すようになりました。ご確認いただけましたら幸いです。… https://t.co/lV94WtXpid"
なかのん&マジックさんのツイート: "おおおおおおおお。ありがとうございます。IMEのデバッグの仕方が分からないので直接テストすることはできませんが、こちらのハックを無効化して、各IMEの挙動がどのようになるのか、テストしてみます。… "
Masaru Iritaniさんのツイート: "ありがとうございます。お恥ずかしながら私個人もまだコード上でしか修正を確認できていないので、実際の挙動として正しい修正になっていない場合はお知らせいただけますと大変助かります。… "
なかのん&マジックさんのツイート: "むむむ。"Skip Ahead is now closed. If you select this option going forward, you will have your Windows Insider Program settings reverted." になっちゃってて、Skip Aheadを選択できなくなっていますね。そのままFastリングに来るのかもしれませんが。… https://t.co/Cbjf3f6iRK"
Masaru Iritaniさんのツイート: "Skip Ahead は人数限定の早い者勝ちですので、早期に設定を変更されていない場合には選べなくなっています。件の修正は Skip Ahead のみ提供(= RS4 には残念ながら入らない)ですので、大変恐れ入りますが Fast リング への RS5 提供開始までお待ちいただきますようお願いいたします。… https://t.co/n97cuIh4UL"
なかのん&マジックさんのツイート: "はい。VMの方をFastリングにして待機しています。また、結果の方をまとめたいと思いますのでお待ちください。… "
Masaru Iritaniさんのツイート: "ありがとうございます!ご面倒をお掛けしますが、宜しくお願いいたします。… "
なかのん&マジックさんのツイート: "大変遅くなりましたが、検証結果です。5時間ぐらいでテストからまとめまで行いましたので雑ではありますが、私の検証した範囲ではJapanist 10以外は非同期レイアウトに対応しているようです。 https://t.co/k9T5ylylTJ… "
Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた - WebStudio
なかのん&マジックさんのツイート: "Japanist 10、なんで最後発で一番デキがアレなんだろうっていう謎な結果になってしまった。 / もずはっく日記: Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた https://t.co/k9T5ylylTJ"
なかのん&マジックさんのツイート: "Windows自体がバグってる上に、Firefoxぐらいしか非同期レンダリングを行うTSF-awareアプリなんて無いと思うんだけど、なんで各IMEベンダ、非同期でのUIの表示にこうも安定感のある実装できてるんだ??"
なかのん&マジックさんのツイート: "正直、もっとボロボロな結果になると思ってた。"
Masaru Iritaniさんのツイート: "詳細な検証をしていただきありがとうございます!修正が Firefox でも問題無く動作しているようで嬉しいです。Microsoft IME の挙動については担当者に報告いたしました。… "
なかのん&マジックさんのツイート: "macOSのIME周りはundocumentedな事だらけだったり、バグ報告せざるを得ないものを見つけたりと、なかなかにアレでできるだけ関わりたくないな……"
なかのん&マジックさんのツイート: "同じAppleのIMEがWebKitとBlinkで別の挙動を見せてくれたりしてて、本当に嫌過ぎて。"
なかのん&マジックさんのツイート: "TSFとCocoaは、IMEからアプリに情報を問い合わせて、アプリからの結果でIME側が動作を決定するモデルになってるけど、このモデルってIME側にバグがあったり、IME側がアプリ毎に動作を変えてるとアプリ側でバグの修正に詰むんで、これから新しいプラットフォームでは絶対に採用していただきたくない。"
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ChromeのTSFの実装見てると、そのインタフェースならシンプルにやれるんかい、みたいなのを見つけて、うぐぐってなったわ。別にパフォーマンスとかに影響しないから、互換性のためにこのままいくけど(IME側でハックされてたりすると壊れる系)。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「日本でアプリ側のTSF対応に関わった人は何人居てるんだろうか。ふと、疑問に。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「絶対、三桁はいかない気がする。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GeckoのOSKのコードが最新のWindowsで全く意味のないコードになってたことをやっと理解した。OSK表示するかどうかはTSFで判断してるのか (無効にするフラグはドキュメントにないけど存在する)」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「従来のOSKをキックするコードは全く動かなくて、UWPのAPIを使わないといけないっぽい。実装してみないとわからないが」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windowsのinputmodeの実装、noneは後回しにして、ほかのを直そう」 / Twitter

Text Services Framework - Wikipedia
Text Services Framework - Wikipedia
Project Zero: Down the Rabbit-Hole...
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「これ要するにMSCTFのプロトコルが腐ってる問題っぽいので問題の影響範囲が大きすぎてすぐには解決しないんじゃないかな… / “XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch” https://t.co/d46WZ3LzqH」 / Twitter
XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch
TSF を使う (2) - tsfapp - NyaRuRuが地球にいたころ
TSF を使う (3) - WPF での UILess Mode - NyaRuRuが地球にいたころ
IMEを使う(Windows: TSF編) - Qiita
TSFに挑戦 - イグトランスの頭の中
TSFに挑戦 (2) 表示属性 - イグトランスの頭の中
kaya: IME開発者向けリンク集
■とある言語の開発記録II / TSFで日本語変換
TSF を使う (1) - Windows Input Method の歴史 -... : Windows 8とWindows 8.1 互換性情報 リンクまとめ - NAVER まとめ
TSF を使う (1) - Windows Input Method の歴史 - NyaRuRuが地球にいたころ
はてなブックマーク - imeとtsfに関するkaorunのブックマーク
Q's Nicolatter 8 [BETA TESTING] | Netsphere Laboratories
藤枝和宏 - ぱんなこった@佐鎮(@kfujieda) - Twilog
C++ - TSFを利用して候補文字一覧を取得する | DIGI-CON 技術部
ui/base/ime/win/tsf_text_store.h - chromium/src - Git at Google
chromium/ime_input.h at master · adobe/chromium
Makoto Kato ︎︎さんのツイート: "MicrosoftがChromiumに移行したおかげで、まぁこのバグを直す方法が公開されたのは、いいこと (前だと上手く行かなかったけど、たぶんWindows側のコードの修正もいろいろ行われているんだろうなと) https://t.co/HbCWlWYSCH"
958054 - TSF1 on windows 10 should use private input scope if we are in "incognito" or "guest" mode - chromium - Monorail
Makoto Kato ︎︎さんはTwitterを使っています: 「ChromeのTSF周りのバグはGoogleのせいじゃなくて、Microsoftせいだしな。ChromeにTSF関連のパッチを投げたのがMicrosoftという意味で」 / Twitter

ショートカット

Windowsのショートカットキー: IMEのショートカット
言語バーのショートカットキー | IME2003 | 初心者のためのOffice講座
Microsoft IMEのショートカットをカスタマイズ | ものものモノローグ★ - 楽天ブログ
MS-IMEの入力モードをキーボードだけで操作したい - MS-IMEの入力モードをキー... - Yahoo!知恵袋
IMEショートカットメニューを表示するショートカットキー−Ctrl+変換キー:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
Microsoft IME スタンダートのキーボードショートカットキー設定 | WEBサービス創造記
Windows で IME をキーボードショートカットキーで切り替えられないとき | すぐに忘れる脳みそのためのメモ
日本語入力変更のショートカットキー−Ctrl+Shift:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
ショートカットキーの活用|情報システム課| 東京経済大学
日本語入力ソフトの切り替えをショートカット操作で行う - 日経トレンディネット
キーボードから操作するショートカットキー
[Windows 10] USキーボードで日本語IMの全角と半角を切り替えるショートカット一覧 - Qiita
日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - いまさら聞けないWindows 10のTips - 窓の杜
なかのん&マジックさんのツイート: "Winキー + / で再変換とかわしゃ知らんかったぞ!"
なかのん&マジックさんのツイート: "Winキー + iで設定なのか。"
なかのん&マジックさんのツイート: "PrintScreen系の一覧を確認したかったけど、思わず色々と覚えた(そして、PrintScreen系のショートカットキー一覧が見つからない)"

窓の杜

次期Windows 10は日本語に関連する変更も盛りだくさん 〜「Insider Preview」Build 17063 - 窓の杜
IMEで変換できない漢字は単語登録を! [Ctrl]+[F7]のショートカットでも登録可能 - いまさら聞けないWindows 10のTips - 窓の杜
IMEで間違って登録された単語が毎回変換候補に表示される! どうやって修正すればいい? - いまさら聞けないWindows 10のTips - 窓の杜
IMEで( ´艸`)こんな顔文字を入力したい - いまさら聞けないWindows 10のTips - 窓の杜
IMEの変換モード切り替えで画面中央に“あ”とか“A”とか表示されるのが邪魔! - いまさら聞けないWindows 10のTips - 窓の杜
「Windows 10 Creators Update」では日本語入力も改善 ~Microsoftが強化点を案内 - 窓の杜
1文字目は早すぎる! IMEの予測候補は3文字目くらいからでOK - いまさら聞けないWindows 10のTips - 窓の杜
英語の会社名や製品名をIMEで自動的に半角英数へ変換したい! ~小文字から始まる英字をすばやく入力する方法 - いまさら聞けないWindows 10のTips - 窓の杜
文字入力のユーザー辞書をバックアップしておきたい! - いまさら聞けないWindows 10のTips - 窓の杜
辞書にない最新フレーズを入力したい! クラウド候補を活用する - いまさら聞けないWindows 10のTips - 窓の杜
日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - 窓の杜
なかのん&マジックさんのツイート: "FirefoxやThunderbird共に一時期のトップクラッシュはこの辺だったし、なかなかに設計に問題抱えてる感じなんかな。 https://t.co/pg0iAQRrts"
Windows 10環境で日本語入力中に「Microsoft Office」がクラッシュする不具合 - 窓の杜
「Windows 10 RS5」に機械学習のタイピング支援、フォントのユーザーインストールも可能に - 窓の杜
「Windows 10 19H1」Build 18242がリリース ~日本語IMEに新しい要素を投入か - 窓の杜
「Windows 10 19H1」では日本語入力システムの改善も - 窓の杜
“(╯°□°)╯(┻┻”も簡単に入力 ~「Windows 10 19H1」の絵文字パネルは日本の“Kaomoji”をサポート - 窓の杜
新しいIMEがフィードバックを反映させて復活 ~「Windows 10 19H1」Build 18305 - 窓の杜
新設計の日本語IMEが利用可能に ~「Windows 10 20H1」Build 18875が“Fast”リングに - 窓の杜
「Windows 10 20H1」Build 18941が“Fast”リングに ~日中に続き韓国語IMEも近代化 - 窓の杜
新設計の日本語IMEをさらに改善 ~「Windows 10 20H1」Build 18950が“Fast”リングに - 窓の杜

PC Watch

Windows 10プレビュー版IMEが改良。Backspaceの使い方で予測変換がより賢く ~変換状態からのキーワードWeb検索もサポート - PC Watch
Windows 10プレビュー版は日本語フリック入力対応。さらにAIがネコを認識 - PC Watch
次期Windows 10に女子高生AI「りんな」がIMEとして実装 - PC Watch
Windows 10 RS5、ソフトウェアキーボードがAIで賢く。スペル修正や予測入力可能に - PC Watch
次期Windows 10で日本語IMEが刷新へ - PC Watch
Windows 10プレビュー版、タッチキーボードにキー幅の自動調整機能 ~次に押されるキーを推測して入力ミスを軽減 - PC Watch
【山田祥平のRe:config.sys】Ctrl+スペースで行こう - PC Watch
Windows 10プレビュー版に新しい日本語IME。安定性やゲーム互換性などが向上 - PC Watch
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
Windows 10プレビュー版、日本語IMEのキー割り当てが「設定」画面で可能に - PC Watch
変換/無変換キーが消えた「Surface Laptop Go」。Mac仕様のIMEオン/オフで便利に ~日本マイクロソフトが13日発売のSurface Pro Xとともに特色を紹介 - PC Watch
Windows 10 October 2020 Updateでも日本語IME周りの不具合が継続? Microsoftが回避策を提示 - PC Watch

NyaRuRuが地球にいたころ

Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ
辞書が壊れない仮名漢字変換エンジンの作者を雇うのは案外に難しいのかもしれない,という話 - NyaRuRuが地球にいたころ
信頼できる書き込み・読み込み - NyaRuRuが地球にいたころ
HTML5 Forms の type 指定がデスクトップ IMEに影響するという話 - NyaRuRuが地球にいたころ
Windows 10 Insider Preview Build 14332 実験ノート: ブラウザと IME のプライベートモード連携 - NyaRuRuが地球にいたころ
Metro スタイルアプリケーションと IME - NyaRuRuが地球にいたころ
保護モードと IME - NyaRuRuが地球にいたころ
あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ
数式入力パネルとアプリケーションを連携させる 2 つの方法 - NyaRuRuが地球にいたころ
チューニングと過学習 - NyaRuRuが地球にいたころ
「開発の主体」って何だろう? - NyaRuRuが地球にいたころ
2012年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (0) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (1) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (2) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (3) - NyaRuRuが地球にいたころ
Windows Vista における IMM32 API / Message の変更と互換性に関する影響 - NyaRuRuが地球にいたころ
Windows Vista IMM32 関係まとめ - NyaRuRuが地球にいたころ

Twitter

Yutaka Hirataさんのツイート: "日本語入力をオンにした状態でスペースキーを打つと、空白が全角で入りますが、SHIFTキーを押しながらスペースキーを打つと、空白が半角になります。いちいち、日本語入力をオフにしなくてもよいのでおすすめです。ATOKとMicrosoft IMEのいずれでも使える技です。 https://t.co/F89tt5gtOC"
takimuraさんのツイート: "IMEが原因でVivaldi落ちたっぽい… "
なかのん&マジックさんのツイート: "WindowsではIMEはアプリ内部にロードされて動くんで、IMEがクラッシュした場合も苦情がアプリに行くの、結構不条理。"
なかのん&マジックさんのツイート: "昔、OS XでIMEの機能を呼び出して、そのリアクション中に同じ機能を呼び出すとIMEのプロセスがクラッシュするというバグを見つけたけど、そうするとOSを再起動するまでIMEがどのアプリでも使えなくなってた。そういう意味ではWindowsのやり方の方が正しいって気もする。"
なかのん&マジックさんのツイート: "@inasoft_ayacy バグの内容的にも、タイミング的にも、 https://t.co/4Po30xSJhp っぽいです。Creators UpdateのMS-IMEにはちょっとヤバいクラッシュバグがあったので、その可能性を減らせないか試すために、MS-IMEがアクティブな間はIMCを無効化していました"
なかのん&マジックさんのツイート: "むう。Win10 RS4に入る英語キーボードの単語のsuggest機能、Firefoxだと、候補の表示と操作まではうまくいくんだけど、最後の確定時にキャレット位置に挿入されるだけになっちゃうな。 #もずでぶ"
なかのん&マジックさんのツイート: "Windowsをタブレットモードで初めて使ってるけど、日本語入力ひどいな。何でローマ字入力なの。ローマ字入力とかかな入力とか気にしなくて良いはずのデバイスなのに。"
なかのん&マジックさんのツイート: "いやATOKじゃなくてMS-IMEなら多少ましか。でも、正直使えるレベルじゃないな。"
✨私がういにゃんだ✨さんのツイート: "DJやすんでる間にTraktorが日本語検索できるようになってた・・・・・・・・・・・・・! 2.6.7 -> 2.11.2をキメた… "
なかのん&マジックさんのツイート: "macOS版とWindows版とあるみたいだから、macOS版の話なのかな。Windowsって、基本的にはIMEに「わざわざ」対応しなくても、IMEが「とりあえず」使えるアプリが作れてしまうっていうのが未だに他のOSにも真似できていなくて凄い。というか、あんな互換性の鬼、そうはいない。"
なかのん&マジックさんのツイート: "Nightlyユーザでも結構、ATOK 2011とか、MS Office IME 2007とか相当古いサードパーティーのIMEを使ってるもんなんだなぁ。あと思ってたよりもMS-IMEユーザが多い。"
なかのん&マジックさんのツイート: "Windows 10 October 2018 Updateで修正されたTS_E_NOLAYOUT周りの最終確認と、Nightlyの現状への最適化もやらないといけなんだけど時間が……"
Masaru Iritaniさんのツイート: "これ、新しい #msimejp で一番お気に入りの機能です。これまでもキー設定を頑張れば実現可能ではありましたが、スイッチ一つで簡単に設定できるようになりました。 #WindowsInsiders… "
Masatoさんのツイート: "あれ、以前のIMEこんな設定項目あったっけ 使い心地を試してみよう (build 18277)… "
渋川よしきさんのツイート: "うおーーーー!IME周りの実践的なコードが読み放題だ!WinFormsのOSS最高!MSDNでもVista時代に作られたサンプルとか削除されて古い形式のAPIしかネットに詳しい情報がなかったりしたのでこれは良い。 https://t.co/Y0ByT6KH4n"
藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "WinFormsのソースなんてreference sourceで前から読み放題だったのだが… https://t.co/3xwjodWZLv"
Reference Source
2018年12月5日 Microsoft,「Windows Forms」などのUIフレームワークをオープンソースに,「.NET Core 3.0」プレビュー版も:Linux Daily Topics|gihyo.jp … 技術評論社
米Microsoft、WPFおよびWinForms、WinUIをオープンソース化 | OSDN Magazine
なかのん&マジックさんのツイート: "@msdmairitan お久しぶりです。検証のために今環境を整えている最中ですが、TSF and/or MS-IMEの動作が変わってしまっているようです (https://t.co/quWVy94EZa)。ITfKeystrokeMgr::KeyDown()がasync処理になったか、pfEatenがFALSEを返すようになったかのどちらかかなと睨んでます。とりいそぎ。"
なかのん&マジックさんのツイート: "分かりました。値がおかしくなるの自体はGeckoのバグなのですが、動作が変わってしまった原因はImmGetVirtualKey()の挙動が変わっているようです。1809ではTSF/TIPがRequestLock()を呼び出している間はVK_PROCESSを返しますが、19H1では生のVKを返してくるようです。意図的な変更でなければご注意を。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のForegroundAppのIME on/offを知るには、GlobalHook + IMM系API発行しかないのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系だとIM系のツールバーがカーソルそばにあるから、現在のIME status 把握のために、タスク通知領域を見る、みたいな視線移動が不要と。"
なかのん&マジックさんのツイート: "あー、MS-IMEのInputScopeのアレか。"
江永島子さんのツイート: "やっぱchromeで新しいタブ開いて検索窓に入力しようとすると 勝手に半角になってしまう。 前はこうじゃなかったような。"
yasu0796さんのツイート: "Chrome 75 において手元の環境でも再現することを確認しました。 私の方からも不具合を報告しました。 #gHelp… "
マイクロソフトサポートさんはTwitterを使っています: 「#Windows10 の MicrosoftIMEで誤った変換をしてしまい、予測候補に毎回出てくるようになってしまった...。 そんな時は変換候補画面で消したい候補を選びCtrl+Deleteキーを押せば削除できます。 #MSHelpsJP https://t.co/zil7INxmsH」 / Twitter
島鉄雄さんはTwitterを使っています: 「なんと!これは助かる! &gt; できたこと &gt; WM_IME_ 及びその他のウィンドウメッセージを収奪 これが出来るのか…後でソースを解析しよう。」 / Twitter
(1) 精廬 幹人さんはTwitterを使っています: 「WindowsのEmacsにIME patchを当てるのが超面倒臭くてdynamic moduleで作った後、26.1のcc-modeが激遅で27.0.50に上げて10ヶ月masterに追従させたセルフテストでノーSEGVでした事をご報告します。 https://t.co/e1UjycJEAB」 / Twitter
maildrop/w32-imeadv: IMM32 dynamic module for Emacs on Windows
精廬 幹人さんはTwitterを使っています: 「毎回パッチのコンフリクト解決するの嫌なの なお、dllの暗黙的依存関係の解決も超めんどくさかったのでスクリプトもございます。 https://t.co/j9YVaip1gH」 / Twitter
maildrop/emacs_dependency_resolver: emacs dependency resolver

文字入力で「イラっ」とする6つの問題とその解消法(1/2) - FMVサポート : 富士通
「ローマ字入力」と「かな入力」を切り替える|パソコン|サポート・お問い合わせ:シャープ
日本語入力のOn/Off切り替えキーを変更する:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
Microsoft Windows 7 - 入力言語の切り替えを行うキーを変更する方法 | HP®カスタマーサポート
日本語入力の切り替えはトグルじゃダメ、の件 - DTP Transit
ASCII.jp:Windows 10の日本語入力は使いにくい?|ズバッと解決! Windows 10探偵団
IMEを無効にすることとスクリーンキーボード - イグトランスの頭の中
MS-IMEとHTML5のinput[type=xxx] - Qiita
Gecko1.8相当製品において修正したバグ - WebStudio
IMEを制御する方法
IMEがおばかと諦めてませんか? - Windows 2000 Blog
Windows 10のIME、郵便番号辞書の更新はどうなっている?:山市良のうぃんどうず日記(142) - @IT
[半角/全角]キー不要に? WindowsのIME切り替えがMac方式に - ITmedia NEWS
なかのん&マジックさんのツイート: "トグル形式って頭の中で全ての状態を管理できていることが前提になるんで、ime-mode: active;とかで簡単に問題が出てくるんだよな。なので、どっちかのモードへの切り替えボタンが独立して存在するのがUI的にはすごく正しい。"
なかのん&マジックさんのツイート: "半角/全角キーとか、カタカナ/ひらがなキーとか、Windowsネイティブイベントのカオスっぷりを知っていると、この辺どうにか綺麗になっていただきたい(たぶん互換性維持のためにしないとは思うけど)。"
なかのん&マジックさんのツイート: "一応、各OSでのIME関連キーのKeyboardEvent.keyのマッピングはこんな感じ。ややこしいことこの上ない。 https://t.co/B3MWD5BBxx #もずでぶ"
NativeKeyToDOMKeyName.h - mozsearch
なかのん&マジックさんのツイート: "そもそも今のJISキーボードの日本語入力キーって、一体何にあわせて設計された結果なんだろう。どの現在のIMEもラベルの通りの機能をデフォルト設定にはしていないよね。"
1549394 - Potential privacy leak from Win10 keyboard autocomplete of data entered in Private Browsing
Makoto Kato ︎︎さんはTwitterを使っています: 「GtkInputHintsとか見てもIMEで履歴を学習しないモードのための値がなさげなので、とりあえずリクエストした https://t.co/owjFCZmFzY」 / Twitter
RFC: Add new enum value for privte mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
Windows 10のアラビア語のキー配列 - 七誌の開発日記
won't fix: IS_PRIVATE on Windows 10 20H1
Windows 10 20H2にアップデートしたら、Microsoft IMEが消せなくなったので解決してみた | しょぼんブログ

増井俊之

略歴 / CV - 増井俊之
masui (Toshiyuki Masui)
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「なんでみんなIMEを自作しないの?」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「MacのIMEだってChromeOSのIMEだって500行ぐらいで作れるのに。ソースも辞書も公開してるから真似してほしい...」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「キーボードは自作するのにIMEは自作しないというのはヘンだろう」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私のGitHubにはソースがいろいろ置いてある。辞書はScrapboxで公開してる。 https://t.co/hiDUxbFd26」 / Twitter
Gictionary
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私が使ってるアルゴリズムはこういう感じ。何年もこれで生活してるし、このテキストもこれで書いている。 https://t.co/JVvFg37zx3」 / Twitter
接続辞書と日本語入力 - 増井俊之
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「何度も言うけど、普通のMacアプリケーションのinfo.plistを書き換えてMacのIMEにすることができる。ChromeOSの場合はChrome拡張機能でIMEを作ることができる。いずれにしてもとても簡単なので試してみて損は無い。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「昔はMacのIMEを作るのは超大変だったと思うのだけど、IMKitというライブラリが出てから簡単になって、それをRubyで使えるようになって超簡単になった。それをずっと使ってたのだけど、サポートが無くなったので困ってるのであった... RubyでなくてもIMKitが使えるスクリプト言語があればいいんだけど。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「Catalina時代のらくらくIME作成法、みたいなのがわかればそれで満足かも」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「もう一度言っておくと、MacでもChromeOSでも私は自作の500行IMEでずっと暮らしており、それで全然問題はありません。連文節変換なんて要らなかったんや!」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「変な挙動のIME増えると死ねる……特にCocoaとTSF。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Android APIは知らないけど、CocoaとTSFでは、アプリとIMEが共に、同じアプリ内の別のコンポーネント同士かのように動くので、どちらかが他の製品と極端に違った動作をすると、ハックを入れないといけなくなり、その原因を修正すると、そのハックが今度は邪魔になってバグったり。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「なのでAPIのドキュメントで非常に細かく「どうあるべきか」を定義しておいて欲しいんだけど、特にCocoaの方はその辺が全くドキュメント化されてないと良いレベルで。」 / Twitter
予測入力の弊害 - 増井俊之
曖昧検索asearch - 増井俊之

GIGAZINE

Googleの新たな自然言語処理モデル「ALBERT」はどのように進化したのか? - GIGAZINE
「AI関連ソフトウェアの輸出に制限をかける」とアメリカ政府が発表 - GIGAZINE
無料で機械学習やデータ処理の流れを簡単に可視化してくれるワークフローツール「Flyte」を触ってみた - GIGAZINE
実際のところ「AIが表情から感情を読み取る」ことは可能なのか? - GIGAZINE
AIが人間の表情から感情を読み取る「感情検出技術」はなぜ危険視されているのか? - GIGAZINE
Googleの新たな自然言語処理AI「T5」の特徴とは?実際にAIとクイズで対決も可能 - GIGAZINE
ローマ教皇がMicrosoftやIBMと共同で発表した「AIの倫理に関する呼びかけ」とは? - GIGAZINE
「差別をAIに植え付ける」としてMIT研究者らが大規模なデータセットをネットから完全削除 - GIGAZINE
Googleが「知らない言語」も翻訳処理ができてしまう言語モデル「LaBSE」を発表 - GIGAZINE
ゲームパッドからのテキスト入力を最適化する手順をエンジニアが公開 - GIGAZINE

GitHub

hiroshi-manabe/ngram-converter-cpp: Kana-Kanji (and vice versa) converter using N-gram data (C++ version, dictionary data included)
tmu-nlp/simple-jppdb: A paraphrase database for Japanese text simplification
日本声優統計学会
libhangulに韓国の人名用漢字をほぼ全面追加 | yasuokaの日記 | スラド
choehwanjin/libhangul: libhangul
WorksApplications/Sudachi
zhezhaoa/ngram2vec
deton/tsf-tutcode: Kanji Direct IME for Windows
uim-tutcodeで後置型かな漢字変換(連続するひらがなを対象に最長一致)
Shiki Okasakaさんのツイート: "tsf-tutcodeをローマ字入力やかな入力用につかってみると、 ・ひらがなを直接入力できるというは能率がよい、 ・後置型変換で最長一致のときは、まぜがきではなくて、直前のひらがなの部分に限定したい、 ・従来のIMEから後置型変換への移行は別にむずかしくない、 といった感想。"
Shiki Okasakaさんのツイート: "tsf-tutcodeがおもしろいのは、 『しろうとむけワープロの登場を期待したいですね。』 と、梅棹さんのようにかきたいときに、ふつうのIMEだと、 『素人向けワープロの登場を期待したいですね。』 になりがち。それが、 https://t.co/nqprBgjY22"
不一致シーケンスが後置型変換開始キーで確定された時に変換対象外になるバグ修正 · deton/tsf-tutcode@32301e8
esrille/ibus-replace-with-kanji: Replace with Kanji Japanese input method for IBus
Shiki Okasakaさんのツイート: "EDICT2ファイルからibus-replace-with-kanji用のカタカナ辞書を生成して、ひらがなからカタカナ語に置換変換できるようにしました。 https://t.co/TB0Y23oQ5U"
Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiでは、辞書ツールもSKK辞書からrestrained.dicを生成するように書きなおしました。 https://t.co/PBA3Y1etnq"
Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiで和語の用言も必要であれば漢字で入力できるようにしました。※ 和語は「かな書き」を好む傾向とのことで、常用漢字表内でも弄ぶ・遡る等は「ひらがな優先」いうのが『NHK漢字表記辞典』流。 https://t.co/rmpclFO57r"
yoriyukiさんのツイート: "Pythonで書かれたオープンソースかな漢字変換エンジン「中山道」をリリースしました。普通に統計的言語モデルを使っています。ソースは辞書がついてこないので、バイナリをダウンロードしてください。 https://t.co/lAP330vJe2"
Release Version 0.1.0 (鴻巣) · yoriyuki/nksnd
Shiki OkasakaさんはTwitterを使っています: 「「ひらがなIME」のウェブページをつくりました。総ルビ。原稿は、「ひらがなIME」と「ふりがなパッド」をつかって、総ルビのマークダウンでかいています。それをPythonでHTMLにかきかえています。リポジトリには、原稿やスクリプトごとおいてあります。 https://t.co/Wbq8IlwloO」 / Twitter
はじめに ― ひらがなIME
Shiki OkasakaさんはTwitterを使っています: 「「ふりがなパッド」v0.1.0 をリリースしました。  Fedora、Ubuntu、Raspbian用のソフトウェア パッケージを用意しました。「日本語 漢字置換インプット メソッド for IBus」v0.6.0とくみあわせて利用してください。 https://t.co/NmPoD1HSY6 https://t.co/zeJFxBpbiA」 / Twitter
Release furiganapad-0.1.0 · esrille/furiganapad
Shiki OkasakaさんはTwitterを使っています: 「ふりがなをふった漢字のおわりまでカーソルを移動して、CTRL-Tをおすと、ひらがなにもどせます。そこで変換キーをおせば、またいつでも漢字に変換できます。」 / Twitter

Wikipedia

形態素解析 - Wikipedia
POBox - Wikipedia
日本語入力システム - Wikipedia
修飾キー - Wikipedia
フリック入力 - Wikipedia
トライ木 - Wikipedia
オンライン整数列大辞典 - Wikipedia
ロジバン - Wikipedia
Lojban - Wikipedia
湯桶読み - Wikipedia
重箱読み - Wikipedia
Control key - Wikipedia
コントロールキー - Wikipedia

Qiita

glfwマルチプラットフォームでのIME対応の困りごとまとめ - Qiita
マルチプラットフォームでIME対応させたいメモ - Qiita
ニューラルかな漢字変換 - Qiita
未踏の応募資料を公開します 【統計的かな漢字変換】 - Qiita
理工系俗語辞典 - Qiita
Windowsのvimで挿入モードのIMEをデフォルトオフにする - Qiita

Twitter

@d_toybox

金具 as a 産廃さんのツイート: "IME周りはどうやら闇が深すぎて、普通に対応するだけでアプリ側が細工しまくりなイメージがすっかり刷り込まれてしまったので、ユーザが別の細工を入れたらうまく動作する方がおかしいくらいかもしれないな。"
道化師さんのツイート: "Chrome だけ、 IME 絡みの細工がうまく動作しないからその対策してたら Chrome 本体の挙動がおかしくなった。 Chrome さん、 IME 周りのハンドリングがアホっぽい。"
一ノ瀬 いろはさんのツイート: "IME 周りってかなりの闇という印象。 IME 側もアプリ側も。"
なかのん&マジックさんのツイート: "だって、GeckoのIME周りの実装の面倒見て、10年以上給料貰えるぐらいですから。"
なかのん&マジックさんのツイート: "いぐざくとりぃ…… https://t.co/kkghv2DgrK"
金具 as a 産廃さんのツイート: "なんとなくTL眺めてる限りでは、それぞれの"失敗"に対してIME側がそれぞれ異なるアプローチで修正をしかけていて、それらに対して更に対応を強いられるようなことがあるらしいようなイメージがある。"
道化師さんのツイート: "IME周りって別にそんな闇々してないと思うんだけどなぁ。単に IME ?なにそれ?極東の連中はそんな面倒臭いモノ使ってテキスト入力してんの?って感じのIMEに対する理解が薄い連中が絡んで失敗やらかしてるだけなんじゃないの?"
なかのん&マジックさんのツイート: "それ、日本人がメンテしてても日本以外のIMEユーザにそう思われてると思うよ。"
⚓そうだな㌠⚓さんのツイート: "MS-IMEとATOK、GoogleIMEの各バージョン毎の動きの違いとか全然違ったりするからIMEは大変だと思う。(古いIMEだとTSFではなくIMMで実装されててWindows8.1以降Firefoxでクラッシュするとか)"
なかのん&マジックさんのツイート: "TSFになってから、一回、エラーを返すとヘソを曲げてTIP (IME)が動かなくなるとか多々あってですね。色々とやってるんですわ、色々と。"
なかのん&マジックさんのツイート: "読むとタノシイヨ? / TSFTextStore.cpp - mozsearch https://t.co/EEGhlUyv29"
なかのん&マジックさんのツイート: "この上にまだ、e10sでcontent process側での非同期更新をTSFTextStoreから隠蔽してるクラスが居たりするからね?"
なかのん&マジックさんのツイート: "ちなみに、こんだけ実装が大きくなってても、WinXPでは全然まともに動かなかったからね……"
なかのん&マジックさんのツイート: "特に、Natural Input、てめぇだ。"
なかのん&マジックさんのツイート: "@cobodo あ、そういえばここの、"However, this is fixed on Win 10."っての、当時のプレリリース版では修正されていたっぽいものの、現存しているはず。"

histric-1

なかのん DAYS''さんはTwitterを使っています: "ちなみに、GeckoはIMEからたとえ意図的にASCIIのコントロール文字が未確定文字列に混入してても、これを無視して(無いものとして)処理するようになっています。"
なかのん DAYS''さんはTwitterを使っています: "そもそもWindowsだとCtrl+AltはAltGrなのでショートカットキーとして使っちゃいけないんだけど……"
なかのん DAYS''さんはTwitterを使っています: "ハングルのキーボードだけは、さらにBackspaceの隣のキーを押させないと分からないけど、OS Xがハングルのキーボードをサポートしてるかは怪しい。Mac用のハングルキーボード探したけど、少なくとも当時は存在していないっぽかった。"
なかのん DAYS''さんはTwitterを使っています: "Mac OS XのApple純正キーボード以外を接続した時にShiftキーの横のキーを押せっていうダイアログ、上手いよね。KeyboardEvent.codeの仕様書見ると分かる。 https://t.co/kqtd8O8M4w"
なかのん DAYS''さんのツイート: "入力した文字数でしかサジェストしてこない予測変換はその価値を見いだせない……"
なかのん DAYS''さんのツイート: "OS Xの欧米のキーボードレイアウトでキー長押しにした時に出るアクセント記号付き文字の候補の入力、内部のイベントの生成が実にひどくて涙出る……こういうデザインがAppleは相変わらず下手だよなぁ……"
なかのん DAYS''さんのツイート: "他のOSならIME非対応アプリならIMEをそもそもオンにできなかったり、未確定文字が表示されなかったり、確定しても何も入力されなかったりするのが当たり前だけど、WindowsはIME側で未確定文字列表示したり、確定文字列をキーによる入力にまでフォールバックしてくれる。"
なかのん DAYS''さんのツイート: "Windowsのキー入力とIMMのイベントモデル考えた人、本当に凄いと思う。後からIMEに対応したんだと思うけど、キー入力イベントとの整合性や、それへのフォールバック、さらにIMEイベントの処理のしやすさと、これらのバランスが最高。"
なかのん DAYS''さんのツイート: "積極的に使ってなくても恩恵受けてる可能性はあるよ。ブラウザとか未確定文字列を自前描画するアプリはフォーカス移動で確定が普通だけど、これはIMEでテストでちゃんとテストされていないアプリで意図しない確定の原因担ってる。 https://t.co/oSbDYx3ZyK"
なかのん DAYS''さんのツイート: "ちなみに、3の時点でBackspaceキー使ってもOKで、コツをつかむと、かなり効率よく辞書登録できて、同じ単語の入力で何度も面倒な入力しなくて済む。"
なかのん DAYS''さんのツイート: "ATOKに、変換しようとしたけど辞書に無かったって事実を分からせる、最後の文字の確定をうまく知らせる、ここがポイント。難しそうに聞こえるけど、慣れると簡単にできたりする。よく使う当て字の登録とかに便利。"
なかのん DAYS''さんのツイート: "くそっ。右Altキーが無いからハングルのTIPでオン・オフ切り替えできないことに今頃気付いた。本当に右Altを削除するという判断した日本人は他言語の入力に対して無知すぎないか? キーボードという言語入力のためのハードの設計者なのに。"
なかのん DAYS''さんのツイート: "ちなみにTSF実装で、Korean TIPはMS謹製のものでも、かなり変な挙動してくれるので鬱陶しい。サードパーティー製のものはやはり、互換性のためにこれに合わせてるっぽくで地獄絵図。"
なかのん DAYS''さんのツイート: "ATOKさんには有名なヨーロッパ、南米のサッカー選手の名前ぐらいは辞書に入れてもらいたく……あまりにカタカナで書く外国人名に弱いのが難点。"
なかのん DAYS''さんはTwitterを使っています: "ちなみに、Geckoはかなり前から、キー操作にしろホイール操作にしろ、ページ単位でスクロールする場合には1ページ分より少しだけ少ない量しかスクロールしない。そうしないと特にリストボックスのようなUIでは分かり難いから。"
なかのん DAYS''さんのツイート: "未確定文字列を見られる可能性をどうしようってのがやっぱあって……あと、自動学習しちゃわないといけないんだけど、その辺も色々と…… https://t.co/NuACAoEAR5"
なかのん DAYS''さんのツイート: "テキスト入力の抽象化にはこの方が良いのは分かるんだけど、キーイベントの後に文字入力イベントが保証されてる訳じゃないんでこの辺がバグの温床になってるなぁ、昔から。"
なかのん DAYS''さんのツイート: "ChromeのKeyboardEvent.key、printableキーはそこそこ正しいんだけど、non-printableキーに関しては、ただのKeyboardEvent.codeと値が違うだけの挙動なんだよな。仮想キーコードからじゃなくて、scancodeからマッピングしてる"

histric-2

Rockridgeさんのツイート: "Fx52:Android版のIME処理をJava側と非同期化し、パフォーマンスを向上させつつマルチプロセス機能(e10s)との互換性も確保した。 / “1307816 – Make IME asynchronous on the…” https://t.co/Cua1Zwgp4b"
なかのんクエストさんのツイート: "Firefoxは2.0まで、IMEやキーボードレイアウトの状態制御が出来なかったんで、3.0から各プラットフォームのネイティブのパスワードフィールドの挙動に合わせる際に、入力不能なパスワード使ってたユーザへの配慮として、CSSのime-modeで挙動を戻せるようにしておいた。"
なかのんクエストさんのツイート: "macOSはASCII-Capableなキーボードレイアウトに絞るように開発者向けの資料で指示があるけど、逆に言うなら、ASCII-Capableなレイアウトで入力できる非ASCII文字は使える。ユーロ記号とか。"
なかのんクエストさんのツイート: "Windowsは確か、デッドキーは利用不能だけど、非IMEなキーボードレイアウトは利用可能。LinuxはテーブルベースのIMEは利用可能なので、デッドキーは利用可能。非IMEなレイアウトは何でもOKだけど、そもそも、アプリがそれを判断出来ない、指定出来ないぐらいのAPIだったり。"
Rockridgeさんのツイート: "Windows版Firefoxにおける、保護モードで動作するFlash PlayerのプロセスとIMEとの関係について。2013年7月の記事だが、その後Firefoxに加えられた修正を理解するための基礎知識を提供してくれる。 https://t.co/DEx4sWJG8a"
Flash PlayerのIME問題のおさらい - WebStudio
なかのんクエストさんのツイート: "最近、IMEにいい加減にどうにかしてって思うのは、(特に単漢変換の時に)候補を追加入力で絞り込めないことだな。例えば部首とかで絞り込めたら膨大な候補の大半を捨てられるのに。"
なかのんクエストさんのツイート: "自動学習がおかしな事にならないように、できるだけ本来の読みから文節区切って確定していきたい。"
なかのんクエストさんのツイート: "基本的にはどのIMEフレームワークもマルチプロセスなりマルチスレッドなりで、エディタに遅延書き込みが発生することが想定されていなかったりとかしたりするぐらいです(Androidは、 @NyaRuRu さんががんばって非同期なアプリでも大丈夫な形とか聞いたけどまだ見ていない)。"
なかのんクエストさんのツイート: "そろそろ標準仕様側で決着ついてる、IME利用時のKeybordEventの発火処理の標準仕様準拠化作業もやりたいな。あれは結局、Firefoxの挙動にメリットも多いけど、他のブラウザ間が互換あるんで影響のでかさからFirefox側の動作を変えてという話にorz"
なかのんクエストさんのツイート: "Firefoxの動作が、というより、Netscape時代からの動作なんだけどね。"
なかのんクエストさんのツイート: "内部処理は一年以上前から設計変更時に、あわせて準備してたんだけど、TSFモードが完全に非対応なんでその辺をガッツリ書かないといけない。"
なかのんクエストさんのツイート: "IMEの未確定文字列がある時にkeydownイベントやkeyupイベントを発火する最大のデメリットって、これらのイベントの本当の意味を理解していない開発者にアクセシブルじゃないサイトを作ることを許してしまうってところなんだよね。"
なかのんクエストさんのツイート: "keydownとkeyupイベントは仕様でも定義してるけど、物理的にキーが押された、もしくはそれがエミュレートされたというイベント。つまり、文字が入力されたというイベントじゃ*無い*。"
なかのんクエストさんのツイート: "なので、inputイベントの代わりにkeydownやkeyupイベントをハンドリングされていると、音声入力や手書き入力のようにキー入力と関係ない文字入力時に正しくハンドリングできず、マイナーな環境が切り捨てられる可能性が高くなる。こういうのを仕様レベルで回避したかったんだけどね。"
なかのんクエストさんのツイート: "もうひとつ、Firefoxだけ、文字入力しないキーでもkeypressが発火するという動作があるんだけど、こっちは発火しない方がmakes senseだと思うんで変更に賛成なんだけど、内部処理を先に書き換えないといけないところが多過ぎて踏み出せずにいる。"
なかのんクエストさんのツイート: "まあ、なんにしろ、互換問題がこの辺は昔から報告多いし、仕様も決着ついてるんでそのうちにどうにかする。"

histric-3

なかのん&マジックさんのツイート: "無事、57へのupliftが承認された。Google日本語入力とMS-IMEでURLバーにフォーカスあてるとIMEがオフになる(IMEが自動的にやってる)余計な機能、無効化されます。 https://t.co/Pi9ZGb3G89 #もずでぶ"
なかのん&マジックさんのツイート: "ただし、副作用として、これらのIMEが選択されている間、URLバーにフォーカスを与えても、タッチキーボードはURL用ではなく、通常用になります。他のIMEやキーボードレイアウトならURL用になります。 #もずでぶ"
なかのん&マジックさんのツイート: "MS-IMEの公式のフォーラムでもこの機能に不満持ってる人居たし、なんでGoogle日本語入力もそれを真似たのかまったくもって謎。ATOKは自動で余計なことをしてくれないので助かってる。 #もずでぶ"
なかのん&マジックさんのツイート: "ちなみに、前々からの問題だったなのに、なんでこのタイミングで強引に修正したのかというと、デフォルトのレイアウトでは、検索バーが消えて、URLバーから検索するようになったから。流石にこれでIMEをいちいちオフにされるのは迷惑なので説得しやすくなった。 #もずでぶ"
なかのん&マジックさんのツイート: "本当はIS_URLだけじゃなくIS_SEARCHもInputScopeに指定すればTSFのデザイン的には正しい。でもそうすると期待通りに動かないし、タッチキーボードも同様だったので、IS_DEFAULTを渡すようにした。なのでIMEからは特殊なものには見えなくなってる #もずでぶ"
なかのん&マジックさんのツイート: "@robert_KIMATA 全ブラウザ、検索兼URL入力の欄になってるので、そういうのをTSFが用意するか、MS-IMEとGoogle日本語入力が独自にやってることなんで、IS_URLとIS_SEARCHの同時指定でよろしくやるかのどっちかであるべきなんですよね。こちらとしては不本意な変更。 #もずでぶ"
なかのん&マジックさんのツイート: "IME内部でのクラッシュ(もっといえば、DLL内部でのクラッシュ)が、アプリのクラッシュに見えてしまうの、Windows上でアプリで商売やってる側としては迷惑なのでどうにかしてほしい……"
なかのん&マジックさんのツイート: "AltGr使うヨーロッパ言語ではAltGrキー押したときに発生するGDKのイベントがUnityの時だけバグってるんではよ消えて…… / Unityデスクトップの存続に向けて開発者やメンテナ募集が行われる | スラド Linux https://t.co/bex7I4R0Ce"
なかのん&マジックさんのツイート: "UWP関連の色々で、ここ最近のWindowsはIME周りのコードを書き換えている様なので、できるだけ最新のバージョンを使い続ける方が良いという、今までには無かったような状況に思えます。"
なかのん&マジックさんのツイート: "@inasoft_ayacy Firefoxは、UWPではありませんが、TSF-awareアプリです。about:configでintl.tsf.enableをfalseにして再起動すると、通常のアプリと同様のIMM APIを利用したハンドリングを強制できますが、その場合はどうなるでしょうか?"
なかのん&マジックさんのツイート: "そーいや、たまにパスワードに日本語も、みたいな話を見かけるんだけど、あれもいろいろと有るから、未だにASCII文字だけなんだと思うよ。まず、第一に、マルチデバイスな昨今、全ての環境でパスワード入力欄の仕様を同時に変更するのは難しい。"
なかのん&マジックさんのツイート: "第二に、未確定文字列等をショルダーハック(だっけ?)される心配をどうするのか。第三に、コンピュータに詳しくないユーザがうまく入力できるのかという、サポートのコストに対する懸念がある。最後に、IMEがパスワードを学習してしまう問題がある。"
なかのん&マジックさんのツイート: "実際に、最後の問題は深刻で、Androidでたまに、パスワード入力欄を独自実装してるのか、IMEが使えるアプリがある。この時、パスワードがIMEに学習されてしまい、変換候補に表示されるという糞な体験をしてる。"
なかのん&マジックさんのツイート: "USB HIDで定義されてる全キー入りのキーボード欲しい。"
なかのん&マジックさんのツイート: "世界のキーボードを知ってから、MacにApple純正じゃないキーボードを刺したときに、左右のShiftキーの横のキーを押さされる意味が分かった。あそこにある特殊キーだけでレイアウトが分かっちゃうのね。"
なかのん&マジックさんのツイート: "まあでも、物理レイアウトを意識するmacOSはクソだと思いますけどね。"
なかのん&マジックさんのツイート: "OSは論理レイアウトだけ意識すれば良いと思うんだけど、macOSは物理キーボードタイプを文字とのマッピングに使うせいで、JISキーボードでUSレイアウト(Dvorak含む)を使えない。そのくせ、APIというか、ネイティブイベントでは仮想キーコードしか取得出来ないというのが意味不明… https://t.co/A2bfORKmc3"
なかのん&マジックさんのツイート: "TSFについてググると、自分の出した情報か、NyaRuRuさんの情報に行き着くだけというオチ……"

histric-4

なかのん&マジックさんのツイート: "MSのIME、軒並み、TS_E_NOLAYOUT問題を一杯抱えてるみたいなので、本当にTIP側でどうにかして欲しいんですが……"
なかのん&マジックさんのツイート: "Firefoxでkeydown/keyupが発火されないのは現在のUI Events上はバグなんだけど、"input"イベントを捕まえずにどうにかしようとしている時点で入力イベントを理解できていない(UI Eventsの仕様案を読んでいない)な、この人。 https://t.co/F41MKDw4X2"
inputの入力値の制御でIME入力とかいろいろ辛かった話 - Qiita
なかのん&マジックさんのツイート: "修正を後回しにしてるのは、本来"input"イベントを使うべきだからなんだよなぁ。音声入力とかにどうやって対応するつもりだ?"
なかのん&マジックさんのツイート: "TSFのTS_E_NOLAYOUT問題、個人的に知ってるMSの人に直接コンタクトとるべきかなぁ、もはや。"
紙魚丸(しみまるさんのツイート: "ウィンドウズ 登録されてない文字を辞書登録して今後は変換できるぜ ってのあるけど 逆に そんな変換はもうしなくていい って登録はできんのかな ゲームって入力して変換押したらGAMEって出て いいからそういうの やめて"
なかのん&マジックさんのツイート: "ブラウザのオートコンプリートだと、矢印キーで選択してDeleteで消せるけど、IMEでは考えたこともなかったな。"
なかのん&マジックさんのツイート: "アプリ開発者としては、macOSのCocoaみたいな、「アプリの実装がIMEやフレームワークと一体となって動かなければいけない」という設計は本当にキツい。TSFも基本的にはそれに近いけど、アプリからもAPIを使ってIMEにリクエストできるのは大きい。"
なかのん&マジックさんのツイート: "NSTextInputContext.invalidateCharacterCoordinates()を呼び出してもアプリから当然のごとく期待される動き、つまり、候補ウインドウの位置の再計算とか無いからね。何のためにあるのか本当に謎。"
なかのん&マジックさんのツイート: "access keyとshortcut keyがコンフリクトしてたらどっちが優先順位高いの問題……(Geckoはaccess key)"
てるろーさんのツイート: "IMEほど闇は深くないんだけど、海外製テキスト入力コンポーネント(典型例がDataGrid)でIMEを想定してないキーイベント実装になってるやつ、よくありますね / 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記 https://t.co/EZbyWlBdYu"
なかのん&マジックさんのツイート: "そういうのがあって、音声入力や手書き入力に非対応なWebアプリが増えちゃうから、未確定文字列がある時にkeydownとkeyupは発火すべきじゃないって、UI EventsのWGで昔、抵抗したんだけど、Gecko以外は発火してるからっていう理由で負けた。"
なかのん&マジックさんのツイート: "これは本当に今でも悔しくて、Webアプリはテキストの入力を検出する場合、beforeinput (Geckoはまだ未実装)、input、composition(start|update|end)イベントのみで実装しないと全然アクセシブルじゃない。"
なかのん&マジックさんのツイート: "beforeinputはどうすればスマートな実装になるのか、未だに分からないんだよなぁ。keypressイベントの発火方法自体を見直さないと、EventStateManagerからフォーカスのあるEditorに問い合わせて、みたいな汚いやり方しか思いつかない。 #もずでぶ"
なかのん&マジックさんのツイート: "長年の修正で、keydownイベントがkeypressイベントのほぼ全ての情報を持つようになったのでなんとかなるのかもしれないけど、一部のプラットフォームはIMEが処理する前にkeydownイベントを発火してから、keypressにするか、compositionイベントにするかを判断してるんでキツい。 #もずでぶ"
なかのん&マジックさんのツイート: "keydownの発火をIMEが処理したかどうかを判定できるようになるまで遅らせるべきなんだけど、そうすると、今度は、keydownイベントのpreventDefault()でcompositionstartを抑制するということがプラットフォームによっては不可能になるので、なんというか、仕様が悪い気する。 #もずでぶ"
小野塚裕也 (よP)さんのツイート: "ところで Windows 版 LINE は IME のキーバインドより前に出てくるから単語区切り指定中にウィンドウが開かれたりして使いにくいのなんとかして。ライン社内には Microsoft IME でキーボードショートカット使う人いないのかね。"
小野塚裕也 (よP)さんのツイート: "IME の文字入力・変換作業中にホストのアプリケーションがキーボード入力受け付けちゃダメでしょ。"
小野塚裕也 (よP)さんのツイート: "極端なこと言うとスマートフォン中心に使っている人なら LINE のキーボードショートカットなんか使わない (というかあっても実用的でない) んだからなくてもいいのに。"
なかのん&マジックさんのツイート: "IME全く使わない人たちが開発するとこの手のバグを入れがちなのに、LINEがやらかしてるのか。"
なかのん&マジックさんのツイート: "あー、でも、ハングルのIMEだと、何かショートカットキーを押したくなる時には、もう、ユーザの中では入力が終わってる状態だから、か。"

histric-5

なかのん&マジックさんのツイート: "ぼんやりとソース見てるけど、devtoolsは全部、keypressからkeydownにそのまま移行させた方が良いのかな。"
なかのん&マジックさんのツイート: "e-Taxはime-modeを多用してくれてて、かなり入力しやすかった。あれを実装するなとまで書いたW3Cは本当にアレ(抵抗はした)。"
なかのん&マジックさんのツイート: "とりあえず、確定申告ページで今でも使われてるってのは書いておいた。ime-mode: active;とime-mode: inactive;は設定で無効化できた方が良さそうではある。ただ、無効化をデフォルトとするかどうかは悩ましい / https://t.co/ASPFx4ZeN8 - Remove ime-mode propery https://t.co/CmHiTpqk5s #もずでぶ"
なかのん&マジックさんのツイート: "Android、タッチ入力の仮想キーボードからIME使うのと、ハードウェアキーボードから使うのとでは動作が違うのかよ……"
なかのん&マジックさんのツイート: "実装後回しになったとしても、ハードウェアキーボードのパスを作っておいて、そこに仮想キーボードから疑似イベントを流す、みたいな形になってないのかな?"
なかのん&マジックさんのツイート: "今日もパッチ書いてて戸惑ったんだけど、この例、本当に正しいんだろうか。WM_SYSKEYDOWN(UP)は無視して良いの? TIP/TSFがAlt+somethingを処理できないけど。 / ITfKeystrokeMgr::TestKeyDown method (Windows) https://t.co/RX6nWMiJ9B"
ITfKeystrokeMgr::TestKeyDown method (Windows)
なかのん&マジックさんのツイート: "@msdmairitan さん、ご意見あれば。"
Masaru Iritaniさんのツイート: "ありがとうございます。ちょっとこの辺り詳しい人に聞いてみます。… "
なかのん&マジックさんのツイート: "はい、お願いします。最初の実装時にもうーん、と思いながらも、例に従って、WM_KEYDOWNとWM_KEYUPのみTSFに渡すようにしました。もしアレならWM_SYSKEYDOWNとWM_SYSKEYUPも渡すようにします。… "
なかのん&マジックさんのツイート: "macOSでIMEから飛んでくる未確定文字列をそのままテキスト内で使うの、もういい加減にダメって広まってないの?"
なかのん&マジックさんのツイート: "Firefoxは現存する有名なIMEの全機能を子プロセス上でもサポートするために、かなり色々と値をキャッシュしたりしてて、シンプルに文字入力してるだけのときからすると「無駄な」処理をいっぱいやってる。入力から発生する処理の別プロセス・別スレッドへの追い出しは本当にキツい。"
なかのん&マジックさんのツイート: "OSからの入力に対するイベントと、それへの応答が非同期処理をサポートする形になってくれて、さらに、各IME等のミドルウェアがそれをバグ無く処理できるようになれば、メニーコア時代のデスクトップアプリはもーちょい進化するのかもしれない。書いてて無理に思えるけど。"
なかのん&マジックさんのツイート: "シングルプロセス、シングルスレッドなアプリはどんどん相対的にパフォーマンスの悪いアプリとなっていくわけだけど、ユーザからの入力に対するリアクションってほんどスレッドの分けようが無いアプリも多いので、やはりスレッドあたりの性能向上も大切だなぁと。"
なかのん&マジックさんのツイート: "Firefox/Chromeのような、メインプロセスが重要なタイプのマルチプロセスアプリの設計は今後どう変化していくんだろう。今でもメインプロセスにかかる負担ってそれなりにあるけど、統括すべき子プロセスが増えていくと……"
なかのん&マジックさんのツイート: "今頃気付いたけど、macOSの日本語入力、今でも内部的にはKotoeriって名乗ってるんだ。"
なかのん&マジックさんのツイート: "Win10に古いIME入れてるとこんな感じで警告が毎度毎度、大きめのアップデートで出る。… "
なかのん&マジックさんのツイート: "Win10の大型アップデートのときに出なくても良いんではって思ったけど、いつまでも古いサードパーティーのIME使いながら、すぐにその自覚無く文句言う人出てきそうだから出すしかないか。"
なかのん&マジックさんのツイート: "「ぽんよう」はATOKでもMS-IMEでも変換できないか。"
なかのん&マジックさんのツイート: "ATOKは訂正候補出してきて、MS-IMEは単純にカタカナに変換できないように文節切ってくるのか。ガチで間違ってる人にはATOKの方が良さげ。"
なかのん&マジックさんのツイート: "ものっすごいlong standingなテストAPIのバグを見つけてしまった。よく動いてたな、IME周りのテスト。"
なかのん&マジックさんのツイート: "Linux版Nightlyで、一部のデスクトップテーマのバグのせいでfcitxの未確定文字列が正しい色で表示できないバグを修正したけど、その方法がfcitxの参照してる選択色を上書きするというちょっとリスキーな方法なので、regression出てたらできるだけお早めに報告を(bugzillaでも私に直でも) #もずでぶ"
なかのん&マジックさんのツイート: "このバグが起きてる環境だと、未確定文字列が背景も文字もおおむね同じ色なのでほとんど読むことができないので可能な限りupliftを行いたい(betaとESR60)。"
なかのん&マジックさんのツイート: "Debianでこんな感じに表示されてしまってる。… "
なかのん&マジックさんのツイート: "IMEの未確定文字列の表示自体は、把握している限りはfcitxユーザにしか影響無い上に、かなり新しいバージョン使ってる場合は、このバグ回避のためにfcitxが別の色をFirefoxの場合に使ってるので問題は起きてないです。ただ、IME以外の部分でのregressionが無いのかというのが怖いところ。"

なかのん&マジックさんのツイート: "先月、Nightlyで一番使われたIMEがハングルのIMEというのは予想外だった。日本語・中国語と違って選択肢無いとそうなるか……"
なかのん&マジックさんのツイート: "MS Office IMEを使ってる人が、ちょっと無視するには忍びない数で居てるな。安全方向にふった修正にしておくか……"
なかのん&マジックさんのツイート: "んー、先週末に突っ込んだTS_E_NOLAYOUTの修正に従ってTIPを信頼するパッチ、Nightly + 色々なTIPで試してみると、いくつか状況限定でバグるな……やはり、実装が無かったらTIP側にもバグがあるか。"
なかのん&マジックさんのツイート: "Site Isolation、IMEの観点からするとどうなんだろってのは無くも無い。今どきのIMEは周囲のテキストを読んでるし。IEの形式なら安全だろうけど。Edgeはどういう設計になってるのか未だに知らない。"
Taku Kudoさんのツイート: "ネットワークのflow、initializer、shape をまとめて同じところに書けるのが地味に静的グラフの利点だと思っているのですが (kerasなんてまさしくそう)、どうなんだろう。逐次実行の解釈がどうしても優先されるので慣れが必要ですが、これは定義なんだというスタンスに立てば可読性が良い。"
kyo agoさんのツイート: "reactでtextareaちゃんと管理するの、辛い。。。"
kyo agoさんのツイート: "react + textarea、真面目にやろうとすると「現在の入力値」、「現在のカーソル位置」、「現在のIMEの状態(変換状態)」の管理が必要な感じがする。 (宣言的にUI構築するんだからUIの状態に関わるものを管理するのは当然なんだけど。。。)"
なかのん&マジックさんのツイート: "ネイティブアプリレベルでもIMEのバグや挙動の違いの吸収はかなりキツいのでAPIのほとんどないWebは相当につらくないかなぁ。ある程度はブラウザが吸収してるけど。"
なかのん&マジックさんのツイート: "IMEのAPIって2種類のデザイン方法があって、IMM/GTK vs. TSF/Cocoa/Androidみたいな感じなので、WebへのAPIの公開とか出来る気しない(Qtってどうだったか忘れた)。"
なかのん&マジックさんのツイート: "Firefox for AndroidのパスワードフィールドでIMEで入力したら文字がダブる件、IMEのSelectionがマスク文字の上に復元されてないのをとりあえず修正してみたら、もっと動作が意味不明になった……"
なかのん&マジックさんのツイート: "最近、Firefox 64にセキュリティのテスト用のアドオンからキーボード入力をエミュレーションするAPIを新規に設計して投入したんだけど、その内部の処理はFirefoxOSのIMEをまともに作れるように設計したクラス群なので、XULアドオンの頃よりも真っ当なテストが可能になったという皮肉。"
なかのん&マジックさんのツイート: "ちなみにそのAPIは普通のアドオンからはセキュリティ的に危険すぎるので相変わらず使えません。専用のビルドオプション付けてビルドしないと存在すらしないので。"
なかのん&マジックさんのツイート: "今どき、KeyboardEvent.keyCodeだけを無条件に参照してkeypressイベントリスナを実装するWeb開発者、引退してくれない?"
なかのん&マジックさんのツイート: "よくあるのが入力のフィルタリング目的でそういうコードを書いてるんだけど、"input"で見てないから、IMEからの入力、貼り付け、D&Dあたりは素通りで入力できてるし。知識が雑すぎる、というか自分で特定のブラウザでだけ実験した結果を知ってるだけなんだろうな。"
なかのん&マジックさんのツイート: "未確定文字列が空のIMEって今どきあるんかな。Win7ではなさげなので、あるとしたらLinuxか?"
なかのん&マジックさんのツイート: "Input Events Level 2にIMEのイベント定義が入ってるけど、今までの定義とコンフリクトしてたり、TSFでそれたぶん無理、みたいな内容で、「お、おぅ」ってなってる。"
なかのん&マジックさんのツイート: "とりあえずこれだけで数ヶ月かかりそうだから、最初はInput Events Level 1の実装で決まりだな。"
なかのん&マジックさんのツイート: "おお、Ubuntu 18.04からUbuntu 18.10にアップグレードすると、デッドキーがmacOSと同様に未確定文字列を出すIMEとして実装し直されてる。"
なかのん&マジックさんのツイート: "実装面で一番苦しめられたのはLinuxのIME事情のクソッぷりだったな、結局(というか今でも環境限定バグがちょいちょい来てる)。"
なかのん&マジックさんのツイート: "(特に)プラットフォーム側がやっつけな実装すると、こうやってエコシステムがボロボロになってってダメになるんだってのを実感させられた。"
なかのん&マジックさんのツイート: "IMEの変換処理を非同期で他のプロセスで処理するために、APIの拡張を全く行わずに、イベントモデルを汚くハックしてて、アプリ側から見ると、来るかどうか分からない複製されたイベントを待たなくてはいけないという、実装した人本当にどうかしてる状況が今のLinuxのIMEのデファクトスタンダード。"
なかのん&マジックさんのツイート: "せめて必ず複製したイベントを再送してくるんだったら単純だったものを……"
なかのん&マジックさんのツイート: "今後、compositionstartをcancelableにしようとしたときに、また、Linuxでの実装が物事を複雑にしてくれるな……"
なかのん&マジックさんのツイート: "ちなみに、どのIMが非同期で処理しようとするのかっていうのを取得するAPIも当然無いので、アクティブなIMがiBusかFcitxじゃないかを確認し、それらだったら、さらにそれらが非同期処理を行うかどうか決定してる環境変数も確認して、というクッソ汚いコードをアプリが書かないといけない。"
なかのん&マジックさんのツイート: "ちなみに、Waylandになると、iBusかFcitxかっていうのを見分けるためのAPIが"wayland"と返してくるらしく……"
Makoto Kato ︎︎さんのツイート: "その経緯もChrなんとかOSが最初ibusを使ってた関係で非同期APIがあるらしいんだけど、その後そのOSがibus使うの止めちゃったんで、まぁ中途半端になりがちですよね… "
なかのん&マジックさんのツイート: "IMEも既に独自拡張のフラグをmodifiersに突っ込んできてるんで、あそこに見分けが付くフラグを入れて欲しかったです(これから非同期で処理するよ、っていうのを)。… "
なかのん&マジックさんのツイート: "愚痴ってたら、またLinuxのIMEが変な事してくれてるのが原因のバグ来てる……"
なかのん&マジックさんのツイート: "今のmozilla-centralで動いてるIME周りの自動テストは、JS製のIMEから複雑な未確定文字列を送信でき、コンテンツ上でのイベントも受け取れるという本格的なものなんだけど、Firefox OS向けに作ってたAPIなんだよね。なので、テスト用にはかなりのオーバースペック。本当に真面目に作り込んである(w"
なかのん&マジックさんのツイート: "しかもこのリッチなAPIが完成したの、確かFirefox OS終了に間に合わなかったというオチだった気がする……"
なかのん&マジックさんのツイート: "Windowsキー + : (コロン)で絵文字を入力できるとか初めて知ったんですけど……ただこれ、アクティブなキーボードレイアウトを英語にしておくと英単語の入力で絞り込めるけど、日本語だとIME問わず絞り込みができない?"
なかのん&マジックさんのツイート: "しかもTSF-awareアプリケーションとIMMのエミュレーションにちょっと齟齬があるんだよな、どうしよう。"
なかのん&マジックさんのツイート: "macOSのIME周りを知ってる開発者とのパイプが欲しい今日この頃。アプリによって動作を変えられるの、本当に意味が分からない。"
なかのん&マジックさんのツイート: "IMEからアプリに任意のタイミングで問い合わせを出せる、TSFやCocoaの設計は、IMEの開発者から見て便利なんでしょうか? アプリ側が用意できてなくてエラーが返ってきたりするんで、数多くあるアプリとの連携部分がかえって大変そうなイメージなんですが……"
なかのん&マジックさんのツイート: "ちなみにアプリ側から見ると結構しんどい形になる上に、意図通りにIME側が動いてくれなかった時に、何が気に入らなかったのか分かり難くて対応しづらいってのがあります。まさにmacOS上のシンプルな変換だけが必要な言語のIMEみたいに。"
なかのん&マジックさんのツイート: "とりあえず、MS-IMEも含めて、TSFは非同期レンダリングサポートしてるのにIME側が対応してくれてないのはキッツいですな……IMMみたいにアプリ側から通知出す方がこういうあたり、確実。"
なかのん&マジックさんのツイート: "ハングルのIMEの挙動が特殊過ぎるんで、ハングルの勉強したら?と言われるものの、そもそも日本語のIMEも全部は面倒見れていないという……"
なかのん&マジックさんのツイート: "日本語のIME、特に人名を変換してる時に思うんだけど、一文字目での候補リスト内の絞り込みがマウスを使ってでのUIでも良いんで、存在すべき。"
なかのん&マジックさんのツイート: "FirefoxユーザのLinux版のIMEのシェアを久しぶりに確認してみたらibus強いなぁ。"
なかのん&マジックさんのツイート: "IME経由で文字を実際に入力したユーザだけでの統計なので、欧米でキーボードからの直接入力だけのユーザはカウントされてませんので、たぶんibusの実際のユーザはもっと多い。"
なかのん&マジックさんのツイート: "IMのコンテキストの名前に"WAYLAND"が増えてるな……"
Makoto Kato ︎︎さんのツイート: "https://t.co/iiLfFYZkND このlandedをみて、reviewerでちょっと笑った。未だにreviewerになってる。。。"
657623 - Using TSF instead of IMM32 in the IMF on Windows - chromium - Monorail
Makoto Kato ︎︎さんのツイート: "幣社も4プラットフォームをほぼ2人のみでやってるから、人のこと言えないんだが、IMEとか入力周り。"
なかのん&マジックさんのツイート: "自動テストの方法をいい加減に作らないと、ですね……… "
Makoto Kato ︎︎さんのツイート: "確かにgtestでmock作れるようにしないとね… "
なかのん&マジックさんのツイート: "うーん。複雑なHTMLのケースでのテストが書きやすいようにmochitestで考えてたんですが……どちらにしろ、OSとTSFTextStore間に一枚かませて抽象化しないといけないですね。… "

ともい(Tomoi,S.)さんのツイート: "テキストフィールドにIMEModeみたいなプロパティがある以上、それに開発者マター以外のアプローチが存在しないのはなぜだ…と思い続けているけど、まあ日本人の使い勝手なんて理解できないだろうなあ…(・ω・"
ともい(Tomoi,S.)さんのツイート: "おそらく一生実装されないかもですが、Winの日本語入力可能フィールドはIMEの最後の変換モードを常時永続的に記憶しててほしいし、中途半端に覚えて継承されるかと思うと逆側になっててイラッとくるものもあるので、ユーザー側で英数・日本語の初期モード固定を指示できるようになっていてほしかった。"
Makoto Kato ︎︎さんのツイート: "IME依存のhack、GeckoのTSFの実装もGTKの実装もいろいろ多いけど、Androidも大概多いんだけど、OSの抽象化とは。。。 https://t.co/E3fwfzby8Y"
InputMethods.java - mozsearch
こたさんのツイート: "なんか気になったのでアンケート「ぁ」や「っ」など小書きを入力するとき、Xを使うか、Lを使うか、変換を使うか教えてください。"
京橋 ひよわ@労進さんのツイート: "んなもん、左Shift+「や」、右Shift+「つ」に決まってるやん?"
島鉄雄さんはTwitterを使っています: 「やっぱり、どんな IME パッチをあてても確率の問題でいつかは必ず落ちる事が分かったんで…これを試してみようかな。(多分明日から) これがちゃんと動けば、もう Emacs 本体から IMM32 のコードはバッサリ消し去りたい… https://t.co/bDP9dhOITK」 / Twitter
島鉄雄さんはTwitterを使っています: 「お!予想外に(失礼w)すんなり動いた! https://t.co/XcigCEpcRN ↑ここの 27 pretest 版を使って(つうかインストーラがある!) load-path に w32-imeadv.dll と lisp-w32-imeadv.el を置いて、(load "lisp-w32-imeadv.el") をした。 w32-imeadv.dll は自前でビルドしたけど、これも一発だった。続く https://t.co/CAKyv5QReI」 / Twitter
Index of /gnu/emacs/pretest/windows/emacs-27
島鉄雄さんはTwitterを使っています: 「lisp の方は色々カスタマイズ(や修正)が必要そうだ。 あと、起動直後に IME 効かない問題を対処するのに別のモジュールが必要みたいだけど、出来れば統合してもらえるとうれしいです!> @m_toguro さん これで長年の IME 問題は解決するんじゃないかと期待したい。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo w32-imm32-on-start-enablerの方は、メッセージフックの中から直接DispatchMessage() を呼び出すという非常にaggressiveな事をしていて、本当に動くかどうか?動いたとして副作用は無いか等の確信が持てなかったんです。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo .dllをload-pathからのければすぐ外せるのもダイナミックモジュールの利点なので、不具合ぽい時やだめそーだったらはずそーと思いまして。 僕チキン(´・ω・`)」 / Twitter
島鉄雄さんはTwitterを使っています: 「@m_toguro 今までの IME パッチだと w32fns.c の w32_createwindow() 内で、画像のようなアドホックなコードで回避してるようです。 多分安全だとは思いますが、若干気持ち悪いと言うかw 参考までに。 https://t.co/nPfLNOVTOq」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 最小化すると動き出すのは、MS-IMEがWM_TIMERを送ってきてて、最小化・最大化の時に、ShowWindow()の向こう側で、システムのメッセージポンプがちゃんとDispatchMessage()してるからなのですが、同じ問題に起因するのがATOKの確定アンドゥでこっちはフリーズしちゃいまして…。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 本体にパッチを当てれば治るのも確認してて、多分これが正攻法であるとは思います。 自分でつくっておいてなんですが、w32-imm32-on-start-enablerは、穴の開いた燃料タンクをぐるぐるまくガムテなのです… https://t.co/uED5j89odN」 / Twitter
精廬 幹人さんはTwitterを使っています: 「なんで、 w32fns.c のw32_msg_pump のお尻のあたりを ちょっと弄るといいと思うんだ。 https://t.co/w44eo2Y58B」 / Twitter
精廬 幹人さんはTwitterを使っています: 「ちな、ATOK の Ctrl-Backspace の確定アンドゥがプチフリーズするのも同じ原因の模様」 / Twitter
精廬 幹人さんはTwitterを使っています: 「MS-IME は起動時に 0x0113 = WM_TIMER を送信 ATOK は、 確定アンドゥ時にうちの環境では0xC046 これはRegisterWindowMessage() で登録されたメッセージ hwnd が NULL の状態で GetMessage() が返す。 ところまで確認したんだけど、どうしよっか。」 / Twitter

Choosing the right estimator — scikit-learn 0.23.1 documentation
機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning | Microsoft Docs
専門用語和訳プロジェクト「みんなのわやく」(機械学習・メディア処理) - Google スプレッドシート
機械学習*と公平性に関する声明 | 人工知能学会 倫理委員会
研究開発成果 - サイバーフィジカルセキュリティ研究センター - 産総研
2-2_データを説明する - 2-2_literacy_level_note.pdf

形態素解析→依存文法解析→直接構成鎖解析→談話構造解析

コーパス

国立国語研究所

nwc-toolkit

Web クローラー

Heritrix - Heritrix - IA Webteam Confluence
Heritrix - Home Page
internetarchive/heritrix3: Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
Heritrix - Wikipedia
Webクローラ「Heritrix」を使ってみる - Qiita
国立国会図書館-デジタルアーカイブシステム
Heritrix - masayua

HTML テキスト抽出(CETR)
HTML テキスト抽出(簡易)
Google Code Archive - Long-term storage for Google Code Project Hosting.
xen/nwc-toolkit: Automatically exported from code.google.com/p/nwc-toolkit
ウェブサービス - s-yata.jp
コーパス - s-yata.jp
日本語ウェブコーパス 2010
N-gram コーパス - 日本語ウェブコーパス 2010

UniDic

MeCab

MeCab: オリジナル辞書/コーパスからのパラメータ推定
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
taku910/mecab: Yet another Japanese morphological analyzer
mecab-ipadic-neologdがすごいという話 - kivantium活動日記
Pythonからmecab-ipadic-neologdを使う - Qiita
MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する - Qiita
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
MeCab - 日本語形態素解析システム
MeCab - Wikipedia
NMeCab でも mecab-ipadic-neologd を使ってみた - しばやん雑記
MeCabのライセンス変更事例 | オープンソース・ライセンスの談話室
きまぐれ日記: MeCabがiPhone,OSXに載っていると言うのは止めようと思う
新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた « LINE Engineers' Blog
NEologdさんのツイート: "mecab-ipadic-NEologd に"色々な不具合の修正をしたIPA辞書のみ"をインストールする機能をつけました📕 長い間、個人的に便利に使っていた機能です🔧 インストール時に-cオプションを付けるだけで利用可能です😄 #neologd"
neologd (NEologd)
ねこ先輩さんのツイート: "Mecabの動作確認するとき、私はいつも「吾輩は猫である」という文を入力するんですが、neologd入れたら文まるごと固有名詞になってしまって無事に動作確認できたようです。"
【Python】MeCabと極性辞書を使ったツイートの感情分析入門 - StatsBeginner: 初学者の統計学習ノート
Mecabに人名辞書を追加 - Qiita
mecab-skkserv MeCab を使ってかな漢字変換
日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
MeCab: 単語の追加方法
Odashiさんのツイート: "みんな一度は作って最終的に実用的な理由でMeCabに回帰する形態素解析器"
Taku Kudoさんのツイート: "MeCabはたいてい爆速ですねというフィードバックをいただくのだが、某所の某グループから遅すぎじゃボケと言われて、草。 世界は広い。"
【Python】テキストマイニングしてみた〜形態素解析〜 | 開発アプリブログ

Twitter

全角

UniDic広報担当さんのツイート: "web茶まめの、「解析前処理」の項目の「半角文字を全角に変換」のチェックボックスをONにして実行してみてください。 UniDicには、全角文字しか入ってないので、 半角文字はすべて未知語処理されてしまいます。 https://t.co/7eFH8AgK4K"
UniDic広報担当さんのツイート: "解析用UniDicに登録されている短単位はすべて全角です。 また、文字コードはUTF-8です。"
Taku Kudoさんのツイート: "@unidic NFKCにしませんか?"
UniDic広報担当さんのツイート: "@taku910 web茶まめを作っているのは私ではないのですが、今、開発者に依頼しておきました。"
UniDic広報担当さんのツイート: "あとは、解析用UniDicの表層形が全部NFKC化した文字列でも登録してあるかDBちゃんと見とかないと。"
UniDic広報担当さんのツイート: "こっちは、デフォルトでチェック入れて外せないようにしてあります。 https://t.co/6Hy2A40gui また、UniDicが全角を採用しているのは、BCCWJの文字列がすべて全角に統一されているからです。 https://t.co/ZZrCpMye4M"
UniDic広報担当さんのツイート: "そうか、国語研のコーパス、基本全角だからDBに半角エントリは作ってないのか。 これは、解析用の辞書のほうでの対応案件か。 半角カンマのcsvへの表層形登録は","でいいのかな。きっと。 #unidic3への課題 https://t.co/glgmg2ZBb3"

histric-1

UniDic広報担当さんのツイート: "OSDNのリポジトリはunidic2系の公式配布サイトでしたが、 内部の人から見ても怪しかったので、これまでの解析用UniDic配布サイトを統合した新サイトを作りました。 https://t.co/DZKztyaX7j https://t.co/tbd7D7ArUL"
高岡一馬さんのツイート: "「短単位は、漏れの少ない 用例検索を重視した設計(単位の長さ、可能性に基づく品詞体系、細かい語義までは考慮しない字面主義) となっているため、自然言語処理分野の統語解析や意味解析に向いていません。」 https://t.co/vw96DTbO3N"
UniDic広報担当さんのツイート: "皆さんご存知でしょうが、UniDicはすでにChaSenへの対応をやめています。 MeCabの解析用辞書のみ配布を行なっています。"
UniDic広報担当さんのツイート: "今からでも組み込もうかしらん。 https://t.co/w1w1Nvmb6q"
UniDic広報担当さんのツイート: "個人的に、UniDicは 「あ、UniDicって、いいな」 と思ってもらえる方がいて、 そういう人に使ってもらえたら、それだけでうれしいです。 https://t.co/lS1WYOaJLs"
UniDic広報担当さんのツイート: "※表3.2に掲げた語を選定した際の観点は、以下のとおりである。 (1)元の語形が一般にあまり使われることがない 【例】 テレビ(テレビジョン) ジム(ジムナジウム) https://t.co/GjpSEz7dhf"
UniDic広報担当さんのツイート: "BCCWJ短単位情報規定集第4版 p.34より。 これに従うなら、たしかに、デフレも表に載せていい気がする。 https://t.co/6hgYH507rJ"
UniDic広報担当さんのツイート: "ちょっと今度のUniDic会議で議題にしてみます。 https://t.co/7DdwcQUnUh"
藻(入院中:第6日)さんのツイート: "「コン」,「コミ」でコンディショナーやコミュニケーションということにはならないけど、「デフレ」,「スパイラル」は独立して通じるからなあ。"
UniDic広報担当さんのツイート: "単に、規定が古いだけの気がするんですけど。 https://t.co/MGVVffSMG8"
UniDic広報担当さんのツイート: "もともと、計算機のための規定ではなく、人間のための規定で、 国語研は、ほっとくと皆さん、マンパワーですべて解決する驚異の集団です。 https://t.co/n1ijXquTBR"
UniDic広報担当さんのツイート: "基本的に、コアデータを人手で作ってるときにDBに載っていない短単位を随時追加するという方針です。 コーパス作るのが、一番のお仕事なので。 そこらへんは、UniDicの公式ページの「UniDicとは」という項目を参照してください。 https://t.co/L2IpvspaSl"
Taku Kudoさんのツイート: "UniDic短単位の目的や意図は分かっているつもりだが、新しいという理由だけで盲目的に採用し、その目的におおよそ合致しない構文解析に使おうとしているところに違和感がある。UniDicの中の人もずっと言い続けていることだが。"
UniDic広報担当さんのツイート: "WEB+DB PRESSの100号読んでたら「国立国語研究所が公開している表記統合辞書」という文言があって、ナニソレ? と思って調べたら、ほんとにあった。 https://t.co/JTjNB1OpSg 国語研のトップページからこのページにはどうやってたどり着いたらいいのだろう?"
UniDic広報担当さんのツイート: "あれ? BCCWJ作るときに使ってたNum Trans と ChaOne 、いま何処? マニュアルしか見つからない……"
UniDic広報担当さんのツイート: "「ユニディック」です。 小さい「ッ」入ります。 https://t.co/8EHeitda0A"
UniDic広報担当さんのツイート: "UniDicの音韻論情報、あの謎記号の説明、どっかのマニュアルに書いてあったなあと思ったら、まさかこんなところに…… https://t.co/9s99tIFBF5 UniDic2のマニュアルにはもう載ってない…… しかし、なぜこの場所に?"
UNIDIC_manual.pdf

histric-2

UniDic広報担当さんのツイート: "UniDicあるある 解析用UniDic使ったMeCabの出力1行を、 まずタブでspliって、 次にタブの右側を半角カンマでsplit。 時々行数がおかしい。 タブの右側はちゃんとしたCSVなので。 ただのカンマ区切りではないことに注意。 アクセントとか。そこらへん。 https://t.co/BwAFivi4qE"
UniDic広報担当さんのツイート: "「行数」じゃない。「列数」だ。 (さすがに、あたまがぼーっとしてきたなあ) https://t.co/ReWrFg1mVb"
Toshinori Satoさんのツイート: "mecab-unidic-NEologd、ユーザーさん居たのか。。IPADIC版と比べて相対的に滅多にcloneされない状態なんですよね。実用的なサービスで使われててるなら今より改善できるけど、使用事例が伝わって来ないので現状維持以上はなかなかできない状態です😅"
UniDic広報担当さんのツイート: "UniDic2の論文で出てくるXMLから作るSQLiteのDB、 https://t.co/TyJ27uQk3P 立ち消えになってたかと思ったら、 Comainuのとこにそれっぽいものがあった。 https://t.co/0nXr2GCmjz"
UniDic広報担当さんのツイート: "「コーパスは、」がコーパスですらないとは…… 学生の皆さんへ どちらも「検索用のインターフェース」です。 少納言はBCCWJの文字列検索しかできませんが(ほとんどお試し用) 中納言(要アカウント申請)には、BCCWJ以外のコーパスも含まれており、形態論情報レベルでの検索が行えます https://t.co/rXo7fY3Zcl"
UniDic広報担当さんのツイート: "形態素解析(Chasenレベル)の説明で「東京都」の例あげて、「東/京都」と切るよりも「東京都」のほうが頻度高いから~ というのを見かけると、 「それ、内部では名詞-名詞の連接VS名詞になってて、表層の連接は見てないから、名詞単発のほうが強いだけ」と思って、読むのをやめる。 https://t.co/S9hTevggYe"
UniDic広報担当さんのツイート: "まさに、コンテキストの話なのに、そこにまったく触れずに、品詞連接のラティスで解決できるんです。みたいに書いてあるから。 「東/京都」が実在したら、どうするんだよって、前から思っていたので。 ほんとにあったの、すごくうれしい。 https://t.co/LrQlrn0Skw"
UniDic広報担当さんのツイート: "ちがった。「頻度高いから~」は問題ない。Unigramの頻度だから。 ただ、これを「連接を見てラティス作れば解決できます」というのが、許せないんだ。 https://t.co/LrQlrn0Skw"
UniDic広報担当さんのツイート: "あたかも表層形の連接まで考慮してあるように説明されているので。 https://t.co/NbLORCjwGD"
UniDic広報担当さんのツイート: "時間があれば、フルアノテーションして、学習に使いたい。 https://t.co/IMoHqPGCMS 時間が、あれば…… #unidic3への課題"
FairyMaCorpus/corpus/wikipedia/confusing-unidic at master · FairyDevicesRD/FairyMaCorpus
UniDic広報担当さんのツイート: "ちなみに、短単位は、「語」という主観的なものではありません。 コーパス内の単語ライクなものの数を測るための、ものさしの目盛りです。ものさしには主観が入ってはいけないので、誰が認定しても揺れないルールで設計されています。"
UniDic広報担当さんのツイート: "主観といい方は確かに言いすぎですね。 作業者1人1人の恣意性がなるべく入り込む余地を入れないように統制する というのが適切でしょうか。 まあ、何かしら、統制をとるルールと基準がないと、何を1個にするかが作業者間で揺れて、その個数を数えるための資源ができないので。 https://t.co/Eymb3jkw1K"
UniDic広報担当さんのツイート: "ちなみに、国語研はいまはコーパス作ってますが、もともとは数を数える方が主なお仕事でした。"
Taku Kudoさんのツイート: "UniDic が最小単位の結合規則を漢語と和語で変えているのは、何かの理由があってからなのだろうか。本当は最小単位にしたいけど、漢語の多くが1文字=1単語になるを嫌ったのだと推測できる。辞書に漢語か和語か書いてあって、それを素性に使うからそりゃ精度高くなるだろう。"

UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "現代書き言葉解析用UniDic:unidic-cwj-2.3.0と 現代話し言葉解析用UniDic:unidic-csj-2.3.0 を公開しました。 https://t.co/be456fHjQO"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0では、 入力として、従来の全角正規化ONLYから、全角正規化とNFKC正規化両方に対応しています。 また、Windows用GUIツールChaMameをパッケージングしています。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMameを使えば、黒い画面を使わずにMeCabの解析が行えます。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "また、解析用UniDicの解析結果末尾に付与されている語彙素IDと分類語彙表番号との対応表が公開されています。 https://t.co/EWkOHTN5xN"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "この対応表はChaMameにもパッケージングされているので、ChaMameを使うと、解析結果に分類語彙表番号を自動付与することも可能です。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMame単体はここからでもダウンロード可能です。 https://t.co/dzeCpdRfpr"
パッケージ ChaMame - ChaKi - OSDN
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "unidic-xxx-2.3.0は、日常会話コーパス開発促進に向け、発音形の精度を上げるために、新たにアクセントを素性に追加しています。 そのため、matrix.defが2.2.0よりも巨大になっていますので、ダウンロードの際はご注意ください。2Gほどあります。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "不要ならば、ダウンロード→解凍の後、matrix.defを消していただくことで、サイズを小さくできます。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0、matrixは大きくなりましたが、mecab-dict-genする前のmodelファイルはさらに小さくなりました。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "1603系の解析用UniDicの学習時に使用された設定ファイルが発掘されたので、1603系のzipに追加でパッケージングしました。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "UniDic-分類語彙表番号対応表の最新版はこちらからもダウンロード可能です。 https://t.co/Ls2QxZQZi1"
masayu-a/wlsp2unidic: Alignment table between `Word List by Semantic Principles (WLSP)' and UniDic Lemma ID.
akirakuboさんのツイート: "unidic-cwj-2.3.0をげっとしてfeature.defの変更点を確認 書字形出現形(orth)と読み(pron)の両方が登場するテンプレートは軒並み削除されてるっぽい アクセント関係のテンプレートが追加されているのは既報通り どの程度精度に変化があったのか気になる所"

「UniDic」国語研短単位自動解析用辞書
「UniDic」国語研短単位自動解析用辞書|UniDicとは
「UniDic」国語研短単位自動解析用辞書|用語集
「UniDic」国語研短単位自動解析用辞書|最新版ダウンロード
「UniDic」国語研短単位自動解析用辞書|商用利用について
UniDic プロジェクト日本語トップページ - OSDN
コーパス検索アプリケーション『中納言』
Web茶まめ
UniDic広報担当さんのツイート: "ちなみに、UniDicの短単位規定集を含め、BCCWJに関連する詳細な報告書はここにそろってます。 BCCWJを使う上で意外と重要な情報も意外とさらっと載っています。 https://t.co/yEkicS7UcD"
関連ドキュメント 現代日本語書き言葉均衡コーパス(BCCWJ)
概要 現代日本語書き言葉均衡コーパス(BCCWJ)
UniDic広報担当さんのツイート: "ここ1年くらい前から解析用UniDicの評価は、mecab-system-evalではなく、こっち↓を使ってます。 https://t.co/RGw73I02Ky"
形態素解析器性能評価システムMevAL
teru-oka-1933/meval: 形態素解析器性能評価システム MevAL
corpus.indd
MeCab で UniDic 辞書を使ってみる / 桃缶食べたい。
「UniDic」国語研短単位自動解析用辞書|FAQ
Microsoft Word - 2017031X_NLP2017_予稿集原稿_kondo.docx
A6-3.pdf

CaboCha

CaoboCha: Yet Another Japanese Dependency Structure Analyzer
taku910/cabocha: Yet Another Japanese Dependency Structure Analyzer
CaboChaで始める係り受け解析 - Qiita
CaboChaで係り受け解析をやってみる - Aqutras Members' Blog
MeCabとCaboChaとRMeCabでテキストマイニングの準備をする - DISTRICT 37
Python CaboChaを用いて係り受け構造を抽出する方法 | トライフィールズ
CaboCha(python)で辞書指定 - studylog/北の雲
UniDic広報担当さんのツイート: "ちなみに、CaboChaのUniDicモデルで付けられる「文節」は短単位ベースなので、国語研の規定する「文節」とはまた違ったものです。 (精度が低いのもそこが関係しています) 詳しくは、BCCWJ形態論規定集(上)を参照ください。 https://t.co/Ehqb2DvdES https://t.co/bDytdEgrGR"
corpus.indd
UniDic広報担当さんのツイート: "本当なら、短単位でなく、長単位を出発点として、係り受けのモデルを作ってもらいたいので。 https://t.co/Rxhm1LSC9R"

コーパス開発センター -Center for corpus development-
KOTONOHA: 国語研究所のコーパス開発計画 コーパス開発センター -Center for corpus development-
KOTONOHA: プロジェクト コーパス開発センター -Center for corpus development-
258億語の日本語コーパスをウェブで公開~国立国語研究所 -INTERNET Watch
国語研日本語ウェブコーパス (NWJC)
概要 国語研日本語ウェブコーパス(NWJC)

NEologd

neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic
neologd (NEologd)
新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた : LINE Engineering Blog
MeCabとNEologdのインストール方法(CentOS6) - Qiita
neologd使って形態素解析したい。できれば依存関係とかは丸投げで。 - Qiita
CentOS 7にmecab-ipadic-NEologdを入れて動かすまで - Qiita
B6-1.pdf
kagomeでNeologdを無理矢理つかう - 押してダメならふて寝しろ
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
「mecab-ipadic-NEologd」なら「ピコ」「太郎」もバッチリ「ピコ太郎」 - 一馬力のメモ帳
kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする | Web Scratch

形態素解析

KyTea

KyTea (京都テキスト解析ツールキット)
Graham Neubig - ソフトウェア
KyTea - the Kyoto Text Analysis Toolkit
neubig/kytea: The Kyoto Text Analysis Toolkit for word segmentation and pronunciation estimation, etc.
Zelchさんのツイート: "「辞書」のメンテナンスという意味で言うと、 KyTea デフォルトモデルは最もメンテナンスされているものの1つでしょう。 共同研究などを通じて、「辞書」ではなく文脈ありの「コーパス」が増え続けてる。 医科学、特許、Twitter、レシピ、将棋解説、ガーデニングと多岐にわたる。"

bigram

bigramとは バイグラム: - IT用語辞典バイナリ
統計的テキスト解析(4)~統計モデルとツール~
第5回 N-gramのしくみ:検索エンジンを作る|gihyo.jp … 技術評論社
束 (束論) - Wikipedia
日本語形態素解析エンジン・言語郎 | 形態素解析とは?

Darts-clone

プロジェクト - s-yata.jp
darts-clone/Introduction.md at master · s-yata/darts-clone

Twitter

Yuya UnnoさんはTwitterを使っています: 「これみて思ったが、効率的なFSTの実装ってどうするんだろう。double arrayの拡張で出来るんだろか。今時、辞書引き速度なんて気にしないのかな https://t.co/dJrBXdRhCs」 / Twitter
たけっぱさんはTwitterを使っています: 「形態素解析機では、入力テキストに対して最初にラティスを生成するのですが、そのために効率的に辞書データの持つ必要があります。 その実装としてFST, ダブル配列などがあるって感じですね。 janomeはpyconjp2015で発表があり資料がありました。 https://t.co/kUJSZxO5XY #rettypy」 / Twitter
Pyconjp2015 - Python で作って学ぶ形態素解析
たけっぱさんはTwitterを使っています: 「違うな、辞書に該当するエントリを見つける操作は有限オートマトンがありますが、その実装方法としていくつかバリエーションがあり Minimal Acyclic Finite-State Automata, trie木、ダブル配列などがある感じですね。」 / Twitter
たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: MeCabやjanome、kuromojiの形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。」 / Twitter
たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: (MeCabやjanome、kuromojiの)形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。 #rettypy」 / Twitter
ODA, YusukeさんはTwitterを使っています: 「@takegue KyTeaのような境界が確定するまで辞書を使わない方式もあるので「形態素解析器では」は主語が大きすぎ」 / Twitter
たけっぱさんはTwitterを使っています: 「@odashi_t 主語大きすぎました...」 / Twitter
takuya-aさんはTwitterを使っています: 「FSTによる辞書引きの実装のなかで、僕が知る限り最先端を行ってるのはLucene FST https://t.co/w4OItebepj だと思うけど、他にもいい実装があるかもしれない」 / Twitter
lucene-solr/lucene/core/src/java/org/apache/lucene/util/fst at master · apache/lucene-solr
takuya-aさんはTwitterを使っています: 「Lucene FSTについてはこの会で @moco_beta さんからいろいろ教えてもらえそう https://t.co/xYF898b6jp」 / Twitter
Lucene 版 #Kuromoji のコードを読む会(辞書ビルダー編) - connpass

@taku910

#nlp2018

Taku Kudoさんのツイート: "#nlp2018 形態素解析WSお疲れ様でした。解析器・辞書開発者の指針や想定ユーザを明らかにし、ユーザとのマッチングを取るという当初の目的は十分果たせたと思います。"
Taku Kudoさんのツイート: "#nlp2018 E2Eの出口が形態素解析になるというUniDic/BCCWJの見解が明らかになっただけでも収穫が大きい。人文系の研究を目的としているため。工学的な応用であれば、長単位を使ってほしいとのこと。"
Taku Kudoさんのツイート: "#nlp2018 ニューラルE2Eと基礎解析の関係について言いそびれたけど、結果を人が直接見たり、簡単なルールで出力を加工して結果とするのであれば、その解析は必要であろう。解析結果が別の機械学習手法の入力になってれば、jointすればいいので、「要らない」という方向性になってもおかしくない。"
Taku Kudoさんのツイート: "#nlp2018 全体的に、短単位→長単位の方向性が感じ取れた。招待講演にもあったけど、短単位は辞書構築が楽な反面リッチな情報を付与できない。例えば、読みが「吉田山(やま)」「筑波山(さん)」になるかは長単位として記述するしかなく、アノテーション→学習→まとめあげは無駄が多い。"
Taku Kudoさんのツイート: "#nlp2018 国語研長単位は、文節から内容語と機能語を取り出したものだが、定義的にはトップダウンに決まり短単位のまとめあげではないとのこと。実際、短単位品詞列から決定的に文節が決められないので(要機械学習)、本来別物と思ったほうがいい。"
Taku Kudoさんのツイート: "#nlp2018 招待講演にもあったが適切な長単位の定義は応用によって変わり、その応用での曖昧性が解消ができる最小単位が語の単位となる。NEologd は、読みを取ることが主目的であるため、有名人の名と姓はつなげて1語となる。この原則で作られていれば、解析結果が直接ゴールとなりえる。"
Taku Kudoさんのツイート: "#nlp2018 形態素解析で論文が書けるのは、精度や速度に関することで、こういう機能が付いたとか、新しい情報が出力できるといった内容では難しい。0.95が0.96になるのは評価されて 0が1になるのは評価されにくい現状はなんとかしたいが、WSでは後者にスポットライトが当たったのは良かった。"
Taku Kudoさんのツイート: "#nlp2018 「サブワード正則化: 複数のサブワード分割候補を用いたニューラル機械翻訳」という発表で優秀賞をいただきました。ありがとうございます。アイデアは驚異的に単純で、適用範囲が広いです。"
Taku Kudoさんのツイート: "#nlp2018 今回の話はニューラル言語処理のテキスト前処理+ID化を学習時にon-the-flyで行っています。静的処理に比べ、サンプリング、ノイズ付与、データ拡張等の柔軟性が上がります。今回の話は一般化できて、前処理がある確率分布としてモデル化できていれば、そこからサンプリングするだけです。"
Taku Kudoさんのツイート: "形態素解析ワークショップの発表資料へのリンクを掲載しました (公開承諾が得られたもののみ) 。よろしくお願いします。 https://t.co/WThWaNJDDt"
Taku Kudoさんのツイート: "形態素解析WSの UniDic の資料を掲載しました。UniDicを応用として使おうとしたときの疑問点がまとめられています。UniDic は、形態素解析をゴールとする人文系研究のための辞書ということが明確になったのは良かったです。https://t.co/WThWaNJDDt"
形態素解析の今とこれから

Wikipedia

Taku Kudoさんのツイート: "形態素解析のLatticeは、よくグラフとかDAGとして紹介されるけど、ある位置で開始する・終了するノード集合は完全二部グラフになるという便利な性質があるので、エッジをわざわざ管理する必要なく、ノードの出現位置だけ管理すれば大丈夫。グラフだからといって汎用データ構造使う必要ない。"
完全2部グラフ - Wikipedia
2部グラフ - Wikipedia
独立集合 - Wikipedia
グラフ彩色 - Wikipedia
マッチング (グラフ理論) - Wikipedia

histric

histric-1

Taku Kudoさんのツイート: "#nlp2017nmt subwordで出てきたBPEとwordpieceは基本的に同じです。sentencepieceはBPEに加え、言語モデルによる学習も実装しているのと、単語リストからではなく生文から学習することで単語分割がいりません。多言語処理がやりやすいです。"
Taku Kudoさんのツイート: "多言語処理をするときは、言語ごとに異なる前処理が必要だったのですが、多言語の生コーパスを混ぜて単一のSentencePieceモデルを学習するのが手っ取り早いです。言語ごとに処理を切り替える必要がなくなります。"
Taku Kudoさんのツイート: "自然言語処理の要素技術(単語分割・構文・意味解析)の応用先として機械翻訳があったけど、いまや立場が逆になっているような気がしている。すなわち、大量のパラレルデータとE2E学習が可能なNMTを使えば(例えば転移学習)、要素技術の精度が上がるのではないかと。"
Taku Kudoさんのツイート: "もともと生成(decode)向けにつくったSentencePieceですが、意外と Encode側でも高性能になるので、いよいよ解析タスク全般で通常の単語分割はいらないのではないかと思う。サブワードじゃなくても文字CNNでもよい。neologdは壊滅的にNNと相性良くない。"
Taku Kudoさんのツイート: "KyTeaをTrgで使った結果を見たらやたら「1508年〜15 18年」のような出力がやたらあって、よく調べたら、数値の分割の一貫性がないことに起因している(年がつくかで分割変わる)。"15 18" をdetokenizeするのは厄介で、現実的には空白入れるしかない。"
Taku Kudoさんのツイート: "NLPでの緻密な単語分割を人間がやっているとは思えないし、その道の専門家しか学習データ作れない実情を考えると、もっと大雑把で直感的な(教師なし)分割で良くて、緻密な分割はそこからの差分を「無理やり鍛えて適応する」と考えたほうが、実情を反映できそうな気がする。"
Taku Kudoさんのツイート: "BPEは分割手法が全く異なるので、kuromoji/mecabのモデルに変換できません。unigram だと、語彙テーブルの対数尤度に -1 かけて整数コストにし、未知語処理を切れば原理的には一緒になります。 https://t.co/lG0ZwGX8XY"
SentencePieceを形態素解析のように使えるAPIを公開した - Qiita
Taku Kudoさんのツイート: "DiscoGAN と CycleGAN アイデアは同じだと思うのだが、けっこうそう思っている人が多くて安心した。言語処理で使えるかは謎。可変長なので、元に戻したときの類似度の定義が難しい。"
Taku Kudoさんのツイート: "さもすべての自然言語処理に使えるような記述になってて注意が必要。特定言語の特定処理にしか使えない。言語・タスク非依存なのはNFKCぐらい… https://t.co/uNcIvduprw"
自然言語処理における前処理の種類とその威力 - Qiita
Taku Kudoさんのツイート: "実応用を考えるとすべての前処理は可逆変換であってほしい。情報を落としたり正規化するのは構わないが、元のテキストとの対応が復元できれば複数のNLPシステム間で結果統合がやりやすくなる。"
Taku Kudoさんのツイート: "SentencePiece の実験結果を足しました。(Src/Trg どちらかだけ等) KyTeaとSPが似た傾向を示していますが、SPは語彙サイズが 1/10で済みます。neologdとの組みあせが強いというのも面白いです。 https://t.co/v3glMTTOul"
google/sentencepiece

histric-2

Taku Kudoさんのツイート: "neologdと組み合わせると良いことは、長い単位で確実に分割できるところは分割しておいて、あとはデータ駆動でサブワード化するというお互いの長所が補完できるからだと思います。"
Taku Kudoさんのツイート: "sentencepieceは NFKC のサブセット(CCC並び替え以外)を実装しています。ICUを使って静的な正規化規則を作ります。実行時にはICUは必要ないです。 https://t.co/Q5EA1Uqweo"
Taku Kudoさんのツイート: "ICU経由で作ったNFKCルールはここにあります。独自正規化をしたいときは適当にいじって学習時に --normalization_rule_tsv で指定すると、モデルに正規化規則が埋め込まれます。 https://t.co/EnhDBkgbft"
Taku Kudoさんのツイート: "数年前に議論になったけど、短単位係り受けは形態論と統語論をごちゃまぜにしてて気持ち悪い。さらにUDは意味も扱おうとしてるので混乱。表層的な単語が文節相当になる言語は結構あるし、文節は特異な単位ではない。好きな形態素解析使えばいいし。 https://t.co/Lvk35I0lE9"
「語」とはなにか・再考 - murawaki の雑記 - rekkenグループ
Taku Kudoさんのツイート: "分散表現とは、単語がN次元で表現されるのではなく、N次元の実数ベクトル意味空間のランダムウォークから「単語相当」のシンボルがサンプリングされていると解釈するのが議論のとっかかり"
Taku Kudoさんのツイート: "実践的な内容という話なので、mmap の話とか入れてるけど、細かすぎてほんとうにいいのか謎。辞書等の大きいリソースをOS上でどう管理するかは、10年前は結構重要だったけど、今どきはどうなんだろう..."
Taku Kudoさんのツイート: "SentencePieceの語彙数が16384なのが気になる。 被覆率が99.95%になるよう語彙数を決めて(これが16000)、残りは unk になる。分割結果には<unk>シンボルが出てこないのが誤解の元か... https://t.co/Sh08fXSeze"
Small-NMT Task
Taku Kudoさんのツイート: "ちなみに、--character_coverage=1.0 とすれば、学習データの全ての文字が1語彙になります。ただし、CJKはゴミみたいな低頻度語が使われるのであまり現実的ではありません。99.95%の被覆率は、単語ベースにくらべれば圧倒的に高いですし。"
Taku Kudoさんのツイート: "重複あり(通常のカバレッジ)で98.59%は大きいです。spmの学習に使ったデータでのカバレッジですか? そうであれば、99.9%以上になるように最小語彙セットを作るので、何かがおかしいです。再現できるようなデータをいただければ調査します。 https://t.co/qw1Vk7QKzz"
Taku Kudoさんのツイート: "長男君の塾の国語の宿題に、品詞毎に単語を分類する問題があって、MeCabを使って解いたったら驚かれ、さらにこれを作ったのワシじゃといったら更に驚いてた。正確には辞書は作っていないけど…"
Taku Kudoさんのツイート: "sentencepiece の Python wrapper を足しました。pkg-config に依存しているので、sentencepiece の再インストールが必要です。あとは pip install でいけるはず。 https://t.co/muImH9AZhk"
sentencepiece/README.md at master · google/sentencepiece
Taku Kudoさんのツイート: "最大単語長さが極端に短い(4とか)設定の単語分割は、問題が極端に単純になるので軽くチートだと思う。完全に単語ラティス作れるし。"
帰国した情報系センター教員さんのツイート: "NLTKのword_tokenizeを使っていた箇所を、sentencepieceに置き換えたら2%精度が上がった(エラー率が50%下がった)。単語区切りって何なのかなあ‥‥"

histric-3

Taku Kudoさんのツイート: "JESC字幕コーパスでモデル作ってみたが、文脈を無視した文単位の評価なので、リファレンスより良い結果になっている。つまり、問題設定として成立していない。文脈にはみなさん興味ないのかな?"
Taku Kudoさんのツイート: "字幕みたいにノイズが多いコーパスは、学習がノロノロとしか進まず、イテレーション回せばまだ上がるかもしれない… みたいな事案が続いてる。 いまさらの気づきかもしれないが、綺麗なデータはすぐに収束する。"
Taku Kudoさんのツイート: "WMTの評価は、人手評価があるのでdetokenizeした結果を提出して、NIST tokenizerで分割・評価するのが通常だけど、最近は評価データを moses tokenizerで分割した結果をオラクルとして評価している事例が多い気がする。分割結果がオラクルだとするのは、C… https://t.co/vNMKlPltop"
Taku Kudoさんのツイート: "「コーパスと自然言語処理」のA氏担当(形態素解析)章を見たが、ザ・アカデミアという感じで私の本と方向性が違うし凄みを感じる。読者が違うからしょうがないにしても、私のは論文に書かれない実応用上役立つ知識集みたいな色合い。"
Taku Kudoさんのツイート: "例えば、形態素解析のラベル・長さバイアス問題は、それ以前の逐次実行手法が抱える問題であって、OSS含め利用可能な逐次実行形態素解析器がないことから普通の技術者が感じることはない。という判断で、私の本には書いていない。"
Taku Kudoさんのツイート: "MeCabの右文脈IDと左文脈IDがあって、実質同じIDなのに分ける必要があるのか? というのは、日本語の振る舞いとそれにどう工学的にアプローチしてきたか歴史的背景を説明する必要がある。"
Taku Kudoさんのツイート: "end-to-end のNLPやれるほどの十分な学習データがあるのは翻訳ぐらいしかないので,翻訳も少量のコーパスでうまくいくような方法論のほうが他分野へ応用がしやすいかも (単に少量のほうが実験が楽だという言いわけ)"
Taku Kudoさんのツイート: "未探索のハイパーパラメータがすごくいい結果を出すことが判明。 慌てて再実験。話の整合性もよくなるからいいとは思うが、結構センシティブな設定になるのが難。"
Taku Kudoさんのツイート: "本日発表したサブワード正則化のためのサンプリングAPIは、sentencepiece に組み込まれています。C++: https://t.co/Sjkn5Mf9id   Pythonのサンプル: https://t.co/wvVkUVS2uE"
Taku Kudoさんのツイート: "形態素解析WSで、工学的アカデミアと産業界の温度差を見た。工学は良くも悪くも精度が上がればいい立場。が、〇〇という語句が取り出せたとしても、後段処理が認識できなければ無意味。後段の知識と単語分割の知識と統一的に扱うようなやり方に産業界は向かっている (例 NeLogd)"
Taku Kudoさんのツイート: "後段の処理が機械学習ベースになってるのであれば、前にも言ったように分割を周辺化したりジョイントすればいいので、形態素解析はいらなくなる。"
Taku Kudoさんのツイート: "Adversarial Logit Pairing どうしてこんなんでうまくいくのか感が拭えない。"
Taku Kudoさんのツイート: "使う人少ないと思いますが、SentencePiece の unk/bos/eos/pad の ID を変更できるようになりました。https://t.co/qkIFgSqdgQ"
Taku Kudoさんのツイート: "mecab.h が酷い言われ方w Cインターフェイスと完全に対応とれる作りなんでそこんとこ忖度してほしい。 STLすら外に出ていないし、そもそも C++03 がターゲットなので unique_ptrない。どこでも動く最大公約数のライブラリだったら、Cだけでいいと思う。C++はおまけ。 https://t.co/MTZR4Ptu3w"
C++ラッパーを書く ~ C++の複雑怪奇な言語仕様を理解することによるメリット - Qiita
Taku Kudoさんのツイート: "RAII は分かるけど、イテレーターは糖衣でしかないので使う側がラップしてくれとしか言えない。むしろ ABI互換性が保証されない C++ で、複数のコンパイラ、DLLやシェアドライブラリまで考慮したヘッダを書くことにどれだけ神経をすり減らされることやら。で、結局Cに落ち着く。"
Taku Kudoさんのツイート: "SentencePiece 更新しました。ライブラリ内でのエラーは外に放出されるようになりました。Python は例外が飛んできます。 https://t.co/iMQl3eZLwJ"
Taku Kudoさんのツイート: "BLEUの評価時に 本体の前処理(単語分割)を使うなという話。以前は守られていたけど、NMTになってめちゃくちゃになった。 私も言い続けてきたけど、こうやってリファレンスがあるとありがたい。 https://t.co/KjQFbqr8vQ"
[1804.08771] A Call for Clarity in Reporting BLEU Scores

histric-4

Taku Kudoさんのツイート: "SentencePiece の Travis-CI ルールを更新。Linux は docker化、Macのテスト追加、python wrapperのテスト、wheel パッケージの作成 (アップロードはしない) などなど。https://t.co/6b25gqz57t"
Taku Kudoさんのツイート: "形態素解析の本を書いて、形態素と語をいっしょくたんに解析している現状をやめて、語の下位構造として形態素がある本来の形に、日本語もすべきだと強く思うようになった。"
Taku Kudoさんのツイート: "なんのリテラシーもないまま macOSをUnix代わりに使うのはプチ勘弁。 そもそも Linux 向けに作ってるものを、さも macOS で動いて当然みたいな態度を取られるとやる気なくす。Macサポートには、それなりの時間と金がかかるし、個人的に関わりたくない。我慢してるんです。"
Taku Kudoさんのツイート: "https://t.co/sX6nMqPzgv Universal Sentence Encode Lite で SentencePiece が使われています。SentencePiece のモデルファイルは、分割だけでなく、コンパイル済みのテキスト正規化ルールも内包する完全自己完結パッケージなので、再配布しても再現性が保証されます。"
Module google/universal-sentence-encoder-lite/1  |  TensorFlow
Taku Kudoさんのツイート: "spmのメモリアロケーション問題、伝家の宝刀 thread_local で誤魔化すか。負けた気分。tcmalloc にするだけで、最大40%ぐらい速くなる。"
Taku Kudoさんのツイート: "リソースの爆発を防ぐために、ある程度の上限を決めとくことはよくあるけど、そこを平気で超えるエクストリームユーザが少なからずいる。SentencePiece の語彙サイズを単語異なり数より大きくしたいとか。--split_by_whitespace=false で単語nグラムまで考慮できるけど、やりすぎな気が"
Taku Kudoさんのツイート: "subword-nmtのBPE分割がPythonでも比較的高速なのは、事前単語分割結果を前提として、単語単位で結果をキャッシュしているからのようだ。その前提が効かない日本語だとSentencePieceに比べて400倍ぐらい遅くなる。にしても、キャッシュの寿命を考えてないのはいかにも実験コードっぽい。"
Taku Kudoさんのツイート: "周りでもMBP離れが加速している。"
Taku Kudoさんのツイート: "サブワード=BPEという認識を無くしたい。要望があったので、語彙を制限する機能(subword-nmtにはある)を実装したけど、貪欲アルゴリズムであるがゆえ、ちょっとした拡張でも実装がめんどい。 https://t.co/HMTVCLPvRG"
Taku Kudoさんのツイート: "言語モデルで語彙を制限したければ、結局全探索するので該当するノードをラティスから取るだけでよい。BPEの場合は、将来どうなるかわからないので、処理の途中で止めるわけには行かず、いったん完全解を作って、マージした逆順に再分割する。"
Taku Kudoさんのツイート: "というか、この逆順の方法が正しいかどうかも謎。考えるのも無駄なので、深追いしない。"
Taku Kudoさんのツイート: "ちなみに、CJKの(教師なし)単語分割で、学習時にはがんばって語彙獲得をするけど、分割は最長一致という話をちらほら見る。これがうまくいくのは、アルファベット数が多くて解空間がスパースであるからだけど議論されることはあまりない。英語やDNAシーケンスでやると終わる。"
Taku Kudoさんのツイート: "さらに、BPEがうまくいくのは目的関数が劣モジュラだからで、劣モジュラではない尤度を目的関数にすると動かなくなる。が、CJKだと解空間がスパースなので尤度+貪欲法でもなんとなく動く。オリジナルのwordpiceモデルがCJKのみで尤度+貪欲法を使ってたのはこういう背景がある。"
Taku Kudoさんのツイート: "アルファベットの異なり数とか平均単語数の事前情報を無意識に仮定していることがあるので、言語非依存というときには注意が必要。"
Taku Kudoさんのツイート: "競プロ、Kaggle、トップカンファレンス、人材を評価する基準としては素晴らしいと思うけど、採用で本当に重要なのはどれかに偏らないように多様性を確保することだと思う。様々なバックグラウンドを持ったその道のプロが集まったチームのほうが経験的に楽しいし強い。NLPは性質上多様性は高いと思う。"
Taku Kudoさんのツイート: "社内で同様のリクエストがきたから想定内とは言え、エクストリームユーザが増えてきている。 https://t.co/hkFhjRZ8jH"
Does not recognize \n · Issue #101 · google/sentencepiece
Taku Kudoさんのツイート: "SPMは、デフォルトで<s>, </s> を特別視せず通常の文字列として扱います。内部トークンをリクエストに入れることで動作が変えられたり、これらがデコード時に外に漏れるというのは、(S|N)MTあるあるのバグです。SPMは、実験にも使えるようworkaroundがあります。詳細は以下。 https://t.co/WzQZ4mcSTC"
Understanding BOS/EOS symbols · Issue #102 · google/sentencepiece
Taku Kudoさんのツイート: "ユーザが入力できるコンテキストはXSSといった危険があるので、あらゆる状況で神経使わないといけないというのは普通のエンジニアの発想だが、どうも研究者にはピンとこないらしく、 <s> の話も適当なワークアラウンドで回避されることしばしば。住む世界が違うのか。"

histric-5

Taku Kudoさんのツイート: "TFとChainerのコードを並べると、たしかに前者の辛みは理解できるけど、機械学習プラットフォームとして目指す世界観を俯瞰すると、よくできてると思う。機会あったらどっかにまとめたい。"
Taku Kudoさんのツイート: "string_view (absl) にして入力はゼロコピーに (といっても、今までも独自StringPieceなのでパフォーマンスは変わらず)。 最上位のAPIに関しては極小 string_view もどきを作り、ここでもコピー発生しない。 https://t.co/87ifD4cs4Q"
Taku Kudoさんのツイート: "こっそり公開していたのですが、見つかったので... sentencepiece の tf ops を実装しています。生文を placeholder 経由で feed できるようになりますspm のモデルがグラフに埋め込まれるので、デプロイが楽になるかもです。https://t.co/2Ss9yIr7gV"
how to use sentecepiece tensorflow Op · Issue #125 · google/sentencepiece
Taku Kudoさんのツイート: "例の op を tf.contrib にもってくには、まず Windows 対応しないといけないし、そうなると cmake のほうが楽だし.. めんどい"
Taku Kudoさんのツイート: "発表あるのに現実逃避に cmake に移行中"
Taku Kudoさんのツイート: "メルボルン中にちまちまやっていた cmake 移行をマージしました。ついでに tcmalloc が利用可能のときはリンクするようにしました。言語やコーパスに依存しますが、10-40%ぐらい速くなります。 https://t.co/iMQl3eZLwJ"
Taku Kudoさんのツイート: "ACL終わったので…しばらく前に機械翻訳チームを離れ、別チームに移りました。ここ最近研究をやることになって運良くACL通ったのですが、やはり製品コードを触ってたいかなと。あと、研究として機械翻訳をやることは自分の興味とズレる。ACLもニッチな話で翻訳に応用したが正しいですし。"
Taku Kudoさんのツイート: "夜な夜な spm の windows 対応してたが、 dll の作成はほぼ諦め。手抜きして全 export を試みたが、protobuf 周りで未解決シンボル出まくり。やはり export するclass/関数を陽に定義せねば。そうなると設計も含めて結構変更が必要。改めて C++とdllは鬼門すぎる。"
Taku Kudoさんのツイート: "そもそも protobuf もデフォルトで静的リンクで、dll は「やりたきゃやれば」という立場。あと、dll 経由で protobuf をexposeするなと書いてある。つまり、dll 中にある protobuf message を main から使えない。 https://t.co/Flc7EBfaSt"
Taku Kudoさんのツイート: "ACL short paper は単に long の短い版じゃないよとちゃんと書いています。negative result もOKというのがわりと重要。ある意味多様性を担保してるのだと思っています。 https://t.co/Huxrk0QVGM"
Taku Kudoさんのツイート: "データの入手が容易だからしょうがないにしても、全体的に英語を前提としたNLPが増えている印象。怖いのは、英語の言語的特徴を陰にかつ無意識に仮定したモデルが増えると、なかなか辛いものがある。"
Taku Kudoさんのツイート: "TF hub 経由で elmo が使えるもよう。https://t.co/ZKeSVOxKhT"
Module google/elmo/2  |  TensorFlow Hub  |  TensorFlow
Taku Kudoさんのツイート: "多様性がないがしろにされる環境にいるとストレスで、さらにそれが無意識に起こっていることが残念だ、ってなことを某先生に言ったら、ことさら日本は多様性に対してコストがかかるから、意識しないと自然とそうなるよってことを言われ、妙に納得した。"
Taku Kudoさんのツイート: "現環境への破壊的操作満載のスクリプトでmac版 wheel を作っているのですが、手元で簡単に仮想環境が動かせない macOS でみなさんどうやってやりくりしているのでしょうか。実機なしで travis だけで開発している私は変かもしれないけど、それが普通であってほしい。 https://t.co/qdm1QWIhdi"
Taku Kudoさんのツイート: "自戒を込めて日本は、何かライブラリを書いた時に、コードの書きやすさ、気持ちよさ、見通しの良さといった主観的なことを前に出しすぎな気がする。さっさと仕事がしたい人にはどうでもよくて、何ができるか、何が違うのかという具体例を示さないと評価されにくい。"
Taku Kudoさんのツイート: "git tag 一発で、 travis/appveyor 上での linux, win, osx pip パッケージのビルド、テスト、デプロイが完結できるようになりました。組み合わせでもかなりある。数ヶ月前は、pip って何?って状態でしたが、一通り経験すると次が楽になりそうです。 https://t.co/jCxTkIUHvG"

histric-6

Taku Kudoさんのツイート: "文字が持つ密度が異なるので、漢字を入れて評価しないと言語ユニバーサルとは言いづらいかも。サブワードだと漢字圏の言語と英語の対訳をまぜて学習した場合、1文あたりのトークン数がだいたい同じになって、情報量的には同じなんだなということが実感できる。 https://t.co/7s6VrKUTdN"
[1808.09943] Revisiting Character-Based Neural Machine Translation with Capacity and Compression
Taku Kudoさんのツイート: "件の本の目次があります。その道のプロにはアタリマエのことしか書いていません。事前計算等の高速化の話は少し役に立つかも。 https://t.co/Y0UFcypcco"
Taku Kudoさんのツイート: "sentencepiece 遅すぎじゃという指摘を受けて、いろいろ修正中。LSTMに比べればダンチで速いのでそんなに頑張っていなかったけど、改めて世の中は広い。virtual call を止めたり、断片化が起きにくいようにまとめてメモリアロケーションするなど、普通の最適化で速くなりそげ。"
Taku Kudoさんのツイート: "本や論文の執筆のために Linux laptop を持ち歩いていたのですが、それから開放され、chromebook に戻ってきた。楽でよい。普段の仕事はこれだけでできるし。"
Taku Kudoさんのツイート: "conda 対応しろというリクエストが… むむむ"
Taku Kudoさんのツイート: "sentencepiece の normalizer に moses の再実装を追加したほうがよいのだろうか? 個人的/思想的には不本意ですが、ほぼほぼでファクトになってるのと、今の前世紀設計・実装は扱いにくいのではないかと。"
Taku Kudoさんのツイート: "長男くんに Python の fractions モジュールで有理数・分数計算を見せたら感動してた。次は sympy か"
Taku Kudoさんのツイート: "SentencePiece(unigram) が中国語評判分析でうまくいった話。事前分割が不必要等の意図通りの内容で嬉しい。これに限らず中国語でうまくいく話はよく聞く。中国語教師あり単語分割の進展をよそに、単純教師なしが良いというのは複雑。分割を目的にしてはいけないことの戒め https://t.co/S72B2grmlG"
Taku Kudoさんのツイート: "拙著の発売日です。これで夢の?印税生活"
Taku Kudoさんのツイート: "IBMモデル1的な教師なしで対応を取る手法は、汎用すぎてどこにいっても役に立っている。"
Taku Kudoさんのツイート: "件の本にも書きましたが、memory mapped file がサポートされてる言語だと、辞書中の様々な文字列情報をゼロコピーで扱えるので高速になります。JavaやPythonだとそのへんの苦労が想像できます。 https://t.co/5qPmSaLiAi"
Javaでつくる本格形態素解析器
Taku Kudoさんのツイート: "sentencepiece のissue がたまり気味。チーム離れてから完全副業状態なのでどうにもこうにも。"
Taku Kudoさんのツイート: "そもそも入力が単語列という話は、単語とは何かを考える人にとっては興味が薄いのです。これも英語至上主義の弊害かな..."
Taku Kudoさんのツイート: "単語とは何かを言うなら、文とは何かを考えずに文埋め込みを計算するのもよく分からない。話し言葉や古語には文がなく、書き言葉に導入された概念。主語省略は文を前提にした議論であって、英語と日本語の文相当のチャンクの定義のズレに注目したほうが面白いと思うが、私だけだろうな。"
Taku Kudoさんのツイート: "std::string 使えばC++で文字列処理楽だぜーといってたのはもはや過去の話に。NLPは内部で大量の文字列を扱うので、std::string_view にするかしないかでパフォーマンスに影響が。古き良きポインタ演算の世界へようこそ。コードの見た目も結構変わってきた。"
Taku Kudoさんのツイート: "mecab-unidic の中の人は、私以上に mecab を使いこなしているのは間違いないですが、開発当時の想定を遥かに超えて、現状では無駄が多いので、作り直したい気分ではある。"
Taku Kudoさんのツイート: "連接表が 715MByte というのはなんといいますか..."

histric-7

Taku Kudoさんのツイート: "absl::flat_hash_map が使えるようになってる。結構高速なのでおすすめ。https://t.co/d7EZPD0Hff"
abseil-cpp/flat_hash_map.h at master · abseil/abseil-cpp
Taku Kudoさんのツイート: "今書いてるコード flat_hash_map のルックアップが全体の70%ぐらいで、どこをどうやって高速化するか頭をかかえる。最適化を意識せずに書いたコードが普通に速かったのは嬉しい反面。"
Taku Kudoさんのツイート: "放置気味だったので、出発前に更新。tf 本体のバージョンをパッケージのバージョンに埋め込むようにした。ビルドもオフィシャル docker image 上で作るようにしたので、同じバージョンのオフィシャル tf pip パッケージであれば、ABI互換性は保たれるはず。 https://t.co/kEXgX05HCP"
tf-sentencepiece · PyPI
Taku Kudoさんのツイート: "ポスターデモ終了。BPEとどう違うのというのがFAQ。そうだよね。システム vs アルゴリズムの名前の違いなので紛らわしい。"
Taku Kudoさんのツイート: "ベンチマークに一喜一憂する弊害。SQuAD に限れば、機械は賢いパターンマッチャー/人間は範囲選択ミスばかりという分析もある。研究者はより純粋に「理解する」ことの本質をベンチマークを通じて知りたいのであって、人間を超える・超えないといった話ではない。 https://t.co/c65JvSZ2nr"
on-squad.key
Taku Kudoさんのツイート: "自然言語の encoder は、BERT 関連で急激に発展したけど、本丸は、decoder つまり、言語生成だと思っている。評価が難しいのが難点ですが。"
Taku Kudoさんのツイート: "#misreading sentencepieceについて補足。BPEは最長一致ではなく、学習時の文字結合ルールを同順番で再生することで行います。言語モデルの分割は、分割そのもののNLPっぽさや直接的な翻訳精度の向上が目的ではなく、スコアがある→複数分割/サンプリングできる→データ拡張して精度向上という流れです"
Taku Kudoさんのツイート: "#misreading BPEや言語モデルはデータ圧縮と関連があって、前者はテキスト全体のトークン数の最小化、後者はエントロピーの最小化をしています。LZとハフマン符号の違い。BPEは貪欲法ですが、目的関数が劣モジュラなので、あの方法でも理論的に厳密解との差が保証できます。"
Taku Kudoさんのツイート: "某MNLPで marian NMT の方に sentencepiece と sacreblue オシなので頑張ってねと告げられた。ただ protobuf の依存は嫌だから何とかせいとも言われた。いよいよ nanopb に移行か?"
Taku Kudoさんのツイート: "N→G に移った経験から言うと、Nのほうが研究テーマの裁量を含め圧倒的に自由だった。MeCabやれたし。純に自分の研究・開発したのなら、アカデミアだと助言された(そう思う)。つまり報酬低いからダメといった単純な話ではなく、仕事内容、裁量、自由度を含めて考える必要あり。"
Taku Kudoさんのツイート: "もちろん究極の自由は起業なんでしょうね。私はその能力がないので無理です。"
Taku Kudoさんのツイート: "メモリ4Gがバズってるみたいですが、手元の自宅普段使いマシンは、メモリ4G ARMv8 の chromebook 。特に困っていない。"
Taku Kudoさんのツイート: "marian nmt がサポートするようになって、実践的で有益なフィードバックをいただけるようになったのは幸いだが、それなりの作業量が必要だと思われる。"
Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 仕事増えた"
Information about protobuf · Issue #254 · google/sentencepiece
Taku Kudoさんのツイート: "BCCWJ/Unidic のこの手の話題は枚挙に暇がない。「仕事部屋」や「空き部屋」「山仕事」が1短単位というのは、原則を知っていればちゃんと理解できる。"
Taku Kudoさんのツイート: "BCCWJ/Unidic で、「かけそば」は1語、「かけうどん」は2語というもの、短単位認定基準を適用するとそうであるとしか言えない。「うどん」の語源は諸説あるみたいだが、Unidicでは漢語にしてる。"
Taku Kudoさんのツイート: "メジャーNMTに取り入れられてお星様増えたし、周辺がなんだか騒がしい。家も本業もいろいろ忙しく何もできてない。"
Taku Kudoさんのツイート: "PyPI のダウンロード統計が見れる。git clone (C++) よりも圧倒的に多い。https://t.co/o6AjvKfyk1"
PyPI Download Stats
Taku Kudoさんのツイート: "mecabのCRF学習は、2000年前半のメモリー4Gぐらいの環境でなんとか動くようキャッシュ等の工夫をめちゃくちゃしてたけど、今日日数十〜百Gのメモリーが使えるので、そもそも必要ないかもしれない。"
Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 protobuf への依存を無理やり解決した。当初のやり方とは違いますが。"
中川裕志さんのツイート: "@taku910 @mamoruk ダブル配列日本発は存じております。NLP解析系アルゴリズムに興味を持っている学生は見たことないですが、言語あるいは言語学そのものに興味を持っている学生は少しはいて、そういう人がアルゴリズムに入っていくという感じでしょう。"

histric-8

Taku Kudoさんのツイート: "NLPが他のML応用と少し異質なのは、データでなんとか学習可能な問題とは別に、知識がないとどうにも解けない問題がいっぱいあること。固有名詞の翻訳・読み推定が例。知識を学習データとして与えても学習される保証ないし、直接知識から出力させたいジレンマに陥る。"
Taku Kudoさんのツイート: "今やってること、あるNLPタスクの疑似学習データ作成に使えるのではないかと思えてきた。多分誰もやっていないはず。"
Taku Kudoさんのツイート: "sentencepiece (python) の使い方の網羅的な colab page を書いた。今回の出張の半分ぐらいはこれ関係。どうなるか謎なプロジェクトだったし、メインの仕事でもないけど、ここに来てユーザが増えている印象。 https://t.co/kYpTSAJkuR"
sentencepiece/sentencepiece_python_module_example.ipynb at master · google/sentencepiece
Taku Kudoさんのツイート: "mecab(単語分割)をsentencepieceの語彙獲得の制約のみに使うというやり方があります (OSS版では未実装だが検証済み) サブワードが形態素をそれなりに尊重するようになり、かつ実際の分割時にはmecabが必要ないメリットがあります。"
Taku Kudoさんのツイート: "sentencepieceはモデルの再現性と自己完結性にかなり気を使っていて、 --self_test_sample_size=1000とすると、学習データの一部とその時の分割結果をモデルファイルに埋め込み、モデルの読み込み時に整合性を自己診断する。学習データのリークを防ぐためにデフォルトはオフ。 https://t.co/LY9vxRi81m"
sentencepiece/sentencepiece_model.proto at master · google/sentencepiece
Taku Kudoさんのツイート: "tf ファミリーとの親和性強化のため、sentencepiece のビルド周りが不安定になっています。同僚さんが頑張ってくれていますが、そのうち落ち着くはずです。pip でダウンロードできるものは今のところ影響なしです。"
Taku Kudoさんのツイート: "SentencePieceに関する2つの論文も、BPEより良いという結論は出していないし、それが意図通り。… "
Yusuke Odaさんのツイート: "Wordpiece (BPE) と SentencePieceに性能上の差異はほとんどないという認識"
Taku Kudoさんのツイート: "未知語対策に、漢字をそれっぽい英語に1:1で可逆変換する方法ってないかな。意味と頻度を適度に保持すれば、そのままサブワードが動かしやすくなる。… "
Kosuke Tsujinoさんのツイート: "多言語sentencepieceモデルを学習したいとして、言語間で量を揃えて混合コーパスを作るだけでは十分でないということだ"
Taku Kudoさんのツイート: "またIBMモデルみたいなものを書いてしまった"
Taku Kudoさんのツイート: "少し認識が違います。CJKと英語を混ぜてサブワードを作っても、データ圧縮が基礎なってるので一文あたりのトークン数はあまり変わりません。つまり1サブワードあたりの情報量は均質です。問題は漢字の種類数の多さで、未知語完全になくすには全文字を入れることになり文字分割と変わらなくなります… https://t.co/jkrBuy8gyt"
Kosuke Tsujinoさんのツイート: "言語ごと等量にコーパスを混ぜるとロマンス系言語(実質的に英語含む)に共有されているラテン語系の語幹が勝ちがち、プラス、文字数の差を考えると西欧言語とCJKでものすごくサブワード粒度が不均等になるのだ…"
Taku KudoさんはTwitterを使っています: 「デフォルトを全角スペースにして半角スペースをopt-in するのが定石。逆にするから混乱する。こういうしょーもないところは頑張るところではない。」 / Twitter
Taku KudoさんはTwitterを使っています: 「BPE で subword regularization する話。自分の仕事が再現・継続されていることが何よりうれしい。」 / Twitter
Lena VoitaさんはTwitterを使っています: 「[1/3] BPE-dropout: our new paper by Ivan Provilkov and Dmitrii Emelianenko! https://t.co/9pnuK8qlss In training, we corrupt segmentation procedure of BPE to produce different segmentations of the same word. In inference, we use standard BPE and outperform BPE and sentencepiece. https://t.co/fA3pfHODzL」 / Twitter
[1910.13267] BPE-Dropout: Simple and Effective Subword Regularization
Taku KudoさんはTwitterを使っています: 「できません。任意の連結を認めると、語彙数がコントール不能になり、語彙数を固定するというサブワードの考え方に反します。強制的に分割することは可能です。」 / Twitter
vochicongさんはTwitterを使っています: 「@taku910 MeCabで分かち書きしてから、SentencePieceを適用しています。SPでトークンを更に分割することなく、連結だけ行うような動きをさせることはできますか。」 / Twitter
Taku KudoさんはTwitterを使っています: 「不自然と言われても、サブワードはそういうものとしか言えません。語彙数が固定されているので、限られたパイを取り合ってるだけです。」 / Twitter
vochicongさんはTwitterを使っています: 「現状、SPで「ソニー」が「ソ/ニー」に分割されてしまうのは不自然です。」 / Twitter

Taku KudoさんはTwitterを使っています: 「Subword regularization の追試論文その2? うまくいかないという声を時々聞きますが、元論文にもこの論文にもあるように、十分データがある+同一ドメインで評価しているとほとんど変わりません。小規模データor 別ドメインで有効です。 https://t.co/ZZ7lxz9QGY」 / Twitter
[1911.03109] Domain Robustness in Neural Machine Translation
Taku KudoさんはTwitterを使っています: 「「外国人参政権」を形態素解析の問題の難しさの例として使うのはいいけど、システム間の優劣に使うのはミスリード。学習データが足りないだけで、既存モデルでも扱える。形態素解析に限らず、モデルがだめなのかデータ不足なのか区別して議論してほしい。」 / Twitter
Taku KudoさんはTwitterを使っています 「mecabが速いと言われてますが、初期の形態素解析はどれもそれほど遅くなく、chasen も juman もせいぜい2-5倍遅い程度だったんです。突如として速い実装が出たんではなく、周りがどんどん遅くなっていった。」 / Twitter
Taku KudoさんはTwitterを使っています 「高速な形態素解析解析といえば「すもも」がありました。なんかのパッチ書いて送った気が... この時代は学部生だったので中身もよく分かってなく単なるユーザでした。ちなみに juman2.0 時代はTRIE使っていないので、フェアな比較にはならないです。 https://t.co/GYQ2n76ILR」 / Twitter
情報学広場:情報処理学会電子図書館
Taku KudoさんはTwitterを使っています 「性能には直接影響はないが、実際それが起きるとユーザが嫌がる事例ってのがIMEにはあって、評価を難しくしている。そういうのを潰すと性能が低下することもありジレンマ。」 / Twitter
Taku KudoさんはTwitterを使っています 「たとえばIMEで次の単語を予測する場合、予測が全部外れても無視すればいい話。でも予測した単語が完全に的外れだと印象がすこぶる悪い。正解データとの比較だけではこの悪さ具合が評価できない。」 / Twitter

Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
google/sentencepiece
Taku Kudo
タスクに合わせたトークナイザ、単語分割に関連したポエム - yasuhisa's blog
形態素解析をして単語を取り出せているつもり・・・か? - Qiita
Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita
Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
形態素解析
形態素解析器 Sudachi の辞書が手に入ったので Go で遊んでみた - 押してダメならふて寝しろ
Subword segmentaion と SentencePiece について - Qiita
高岡一馬さんのツイート: "SudachiとNWJCをつかった日本語単語分散表現を公開しました。Apacheライセンスなので商用利用も可能です。 https://t.co/lRkJvRt79V"
大規模コーパスと複数粒度分割による日本語単語分散表現
32ビットCygwin向けmecab-cygwin32 | yasuokaの日記 | スラド
日本語形態素解析エンジンnagisaは古典中国語(漢文)を学習できるのか | yasuokaの日記 | スラド
kagome v1.11.1 をリリースしました。あるいは sync.Pool にまつわるバグの修正 - 押してダメならふて寝しろ
ゼロから作った形態素解析器Taiyakiで学ぶ形態素解析 - The jonki
形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として

スクレイピング

匿名加工情報

高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編(保護法改正はどうなった その2)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編の2(保護法改正はどうなった その4)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・中編(保護法改正はどうなった その3)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・後編(保護法改正はどうなった その7)

クローリング除外

まとめのまとめ - Google 検索
NAVER まとめ[情報をデザインする。キュレーションプラットフォーム]
Twitter

ZMap

The ZMap Project
zmap/zmap: ZMap Internet Scanner
【論文メモ】ZMap: Fast Internet-Wide Scanning and its Security Applications (2013)

Anaconda

Python

Python

python/cpython: The Python programming language
Welcome to Python.org
概要 — Python 3.5.1 ドキュメント
12.6. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 3.5.1 ドキュメント
10. 完全な文法仕様 — Python 3.5.1 ドキュメント
Python 言語リファレンス — Python 3.5.1 ドキュメント
3.6.2 Documentation
pip 9.0.1 : Python Package Index
wheel 0.30.0a0 : Python Package Index
PyCharm
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
パッケージのインストール — Python Packaging User Guide ドキュメント
Installation — virtualenv 15.2.0.dev0 documentation
Pythonパッケージのドキュメントホスティングサービス「pydoc.io」が公開される | OSDN Magazine
Pydoc
「The Next Platform」で読むグローバルITトレンド(11):PythonはFPGAアクセラレーションの裾野を広げるか (1/3) - @IT
pipenv: 人間のためのPython開発ワークフロー — pipenv 8.1.9 ドキュメント
DebuggingWithGdb - Python Wiki
Python debugging configurations in Visual Studio Code

IDLE

25.5. IDLE — Python 3.6.1 ドキュメント
25.5. IDLE — Python 3.6.2 documentation
IDLE (Python) - Wikipedia
IDLE - Wikipedia
Python入門(1) IDLEを使う
Python入門(1) Python世界に入る
Pythonで学ぶ 基礎からのプログラミング入門 (2) プログラミングの環境を整えよう | マイナビニュース
【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
PythonのIDLEでデバッグを行う方法 | ガンマソフト株式会社
Python入門 - IDLEとPythonの基本的な使い方 - Python Works

pdb

27.3. pdb — Python デバッガ — Python 3.6.1 ドキュメント
27.3. pdb — The Python Debugger — Python 3.6.2 documentation
PythonデバッグTips - Qiita
【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ
Pythonで学ぶ 基礎からのプログラミング入門 (35) デバッグの手法について知ろう | マイナビニュース
Pythonにおける効率的なデバック方法入門 - MyEnigma
Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web

Lint

flake8

Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita
dreadatour/Flake8Lint: Sublime Text plugin for lint Python files
flake8 3.3.0 : Python Package Index
Flake8: Your Tool For Style Guide Enforcement — flake8 3.3.0 documentation
Sublime Text3でPython開発環境を整えるためにインストールしたパッケージと設定 | まめりうむ
よみさんのツイート: "flake8はmapとかfilter使っても怒られないからすき"
Vimメモ : flake8でPythonのコードをチェックする - もた日記
VimからFlake8を使うプラグイン - Qiita
Vim - Pythonのflake8やsyntasticで特定のエラーを無視する - ぼっち勉強会

pep8

はじめに — pep8-ja 1.0 ドキュメント
Python のコーディング規約 PEP8 に準拠する - Qiita
PEP 8 -- Style Guide for Python Code | Python.org
[Python] コーディング規約(PEP8)を学んで、Pythonらしいコードを書く - YoheiM .NET
mumumu/pep8-ja: PEP8 日本語版
pep8 - Python入門
Python で pep-8 の「E501 line too long」にしないためのコーディングテクニック | 技術的生存報告記
Pythonで学ぶ 基礎からのプログラミング入門 (36) Pythonのコーディング規約「PEP8」 | マイナビニュース
PEP8を読んでみよう
Vimメモ : vim-python-pep8-indentでインデントをPEP8に準拠させる - もた日記
vimでpythonのコーディングスタイルを自動でチェック&自動修正する - ton-tech-ton

pylint

Pylint - code analysis for Python | www.pylint.org
Pylintの使い方メモ - Qiita
Pythonの主要なLint(pep8, pylint, flake8)の設定方法まとめ - Qiita
Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - SideCI Blog
PyLint で Python コードの質をチェックする | CUBE SUGAR STORAGE
Python: pylint でバージョン 3.x 非互換のシンタックスを見つけ出す - CUBE SUGAR CONTAINER
[Python]pep8とpylintの設定ファイルを作成して一部の警告を非表示にする - dackdive's blog
pylint 1.6.5 : Python Package Index
【python】コードの品質管理について その2 pylint - simudaru's blog
[vim]Syntasticでpython用の設定をする - dackdive's blog

コード補完

Python用のvimの設定 - memorandum

ライブラリ

csvkit

csvkit 1.0.1 — csvkit 1.0.1 documentation
wireservice/csvkit: A suite of utilities for converting to and working with CSV, the king of tabular file formats.

Grumpy

本の虫: GoogleがGoによるPython実装、Grumpyを発表
Google Open Source Blog: Grumpy: Go running Python!
渋川よしきさんのツイート: "1スレッドだと性能で負けちゃうのか。ウェブサービスぐらいしか美味しい用途なさそう。 : Google Open Source Blog:Grumpy: Go running Python! https://t.co/2N5V88QLWb via @google"

Numba

Numba — Numba
Python高速化 Numba入門 その1 - ゆとりデータサイエンティストの諸々所感

ByteWeight

るくすさんのツイート: "byteweightとかいう謎のpythonモジュール出てきたので調べたら、David Brumley先生が作ったバイナリから関数を抽出するモジュールらしい。 https://t.co/1mnWNjoGTF"
るくすさんのツイート: "ああ USENIX Sec'14にちゃんと論文があるんだ BYTEWEIGHT: Learning to Recognize Functions in Binary Code https://t.co/oMD3wcuvW8"
るくすさんのツイート: "実際に作ったのはDavid Brumley先生じゃないかもしれない CMUの誰かだ"
ByteWeight
BYTEWEIGHT: Learning to Recognize Functions in Binary Code | USENIX

pandas

Python Data Analysis Library — pandas: Python Data Analysis Library
pandas.DataFrame — pandas 0.20.1 documentation
pandas-dev/pandas: Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
Pandas - Wikipedia
pandas (software) - Wikipedia
Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編 - Qiita
10分でPandasを学ぶ - Qiita
Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
Python pandas データのイテレーションと関数適用、pipe - StatsFragments

3.2. Sympy : Python での代数計算 — Scipy lecture notes
christiangoltz/shaape: Shaape is an ascii art to image converter designed to be used with asciidoc.
PyPIに悪意のあるパッケージがアップロードされていた | スラド
Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと

WSGI

Web Server Gateway Interface - Wikipedia
meinheld 0.6.1 : Python Package Index
Meinheld
mopemope/meinheld: meinheld is a high performance asynchronous WSGI Web Server (based on picoev)
meinheld + WebSocket + mongodb しようとした時エラーが出る - Qiita

Selenium

Pythonでスクレイピング(Selenium) - 自分基準
Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
Selenium でサポートされているプラットフォーム

MicroPython

MicroPython - Python for microcontrollers
micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
Micro Python で組み込み Python
micropythonを始めよう(ESP8266編) - かいしゃぐらし!
Overview — MicroPython 1.8.7 documentation
micropython/micropython-unicorn: MicroPython on Unicorn

Python AST

32.2. ast — 抽象構文木 — Python 3.5.2 ドキュメント
Python の ast モジュール入門 (抽象構文木を辿る) - Qiita
Python: ast (Abstract Syntax Tree: 抽象構文木) モジュールについて - CUBE SUGAR CONTAINER
Python とマクロ、インポートフックと抽象構文木 - forest book
Python の ast モジュール入門 (NodeVisitor を使う) - Qiita
Python: ast (Abstract Syntax Tree: 抽象構文木)... | CUBE SUGAR STORAGE
31.3 Python 抽象構文
Python/AST作成を読む - Code Reading Wiki
[Python] ast.literal_evalを使って文字列を評価する | aoshiman.org

最近の Python-dev

DSAS開発者の部屋:最近の Python-dev (2017-01)
DSAS開発者の部屋:最近の Python-dev (2017-02)
DSAS開発者の部屋:最近のPython-dev (2017-05)
DSAS開発者の部屋:最近のPython-dev(2017-06)
DSAS開発者の部屋:最近のPython-dev(2017-09)
DSAS開発者の部屋:最近のPython-dev(2018-01)

YAMAGUCHI::weblog

Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01 - YAMAGUCHI::weblog
Pythonの仮想環境構築 2017.01版 - YAMAGUCHI::weblog
wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog

methaneのブログ

Python を速くする取り組み - methaneのブログ
Python と Ruby と typing - methaneのブログ
Python 3.6 の(個人的に)注目の変更点 - methaneのブログ
Windows では2020年を待たずに Python 2.7 が使い物にならなくなっていく - methaneのブログ

blog

本の虫: Pythonのpymothoaが興味深い
python3.3からparseまわりでなんか変わったのかな - Gentoo metalog
pip 9.1 から msgpack が使われるようです - methaneのブログ
Python の正規表現で IGNORECASE するときは気をつけよう - methaneのブログ
Pythonのマルチスレッドで気を付けるべきこと | 凡人のブログ
pandas DataFrameを省メモリにpickleする - ABEJA Tech Blog
The History of Python.jp
AWS LambdaがPython3.6に対応したのでpyenvとpyenv-virtualenvで環境構築してみた | Developers.IO
PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
Pythonの環境構築を自分なりに整理してみる – Aki Ariga – Medium
Virtualenv vs. Pyenv - Sho Shimauchi | Tableau Public
Flask を使ったプロジェクトひな形
DSAS開発者の部屋:Pythonアプリの起動を高速化する
リスト内包のひみつ - atsuoishimoto's diary
PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記
Python 3でpopcountを計算する - にせねこメモ
はじめてのにき(2017-11-08)
はじめてのにき(2018-06-26)
【Google Colab】Python環境の使い方(無料でGPU付き) | アルゴリズム雑記
Pythonの順序付き辞書OrderedDictの使い方 | note.nkmk.me
JVM上で動くPython 3処理系「cafebabepy」の仕組みと実装 Pythonの深くて美しい言語仕様 - ログミーTech(テック)
cafebabepy PyCon JP 2018 - Speaker Deck
Pythonを経由してC++のオブジェクトを扱う方法 - FPGA開発日記

OSDN

「Python 3.6」がリリース | OSDN Magazine
「Python 3.5」リリース、非同期プログラミング機能の強化や型ヒントの記述機能を導入 | OSDN Magazine
Python向けのグラフィカルなシェル「IPython 5.3」リリース | OSDN Magazine
Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine
「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
Pythonパッケージ管理ツール「Pip 10」リリース | OSDN Magazine
QtのPythonバインディング「Qt for Python」、初の公式リリース | OSDN Magazine
「Python 3.7」リリース、型アノーテーションの強化などさまざまな機能が追加される | OSDN Magazine
Python考案者のGuido van Rossum氏がPythonに関する意思決定から引退することを表明 | OSDN Magazine
「Python 3.8」リリース、新たに代入式を導入 | OSDN Magazine
Pythonがリリーススケジュールを変更、「Python 3.9」より毎年10月にメジャーリリース公開 | OSDN Magazine

GitHub

SigThief

SigThief: PE signature tool | Firmware Security
secretsquirrel/SigThief: Stealing Signatures and Making One Invalid Signature at a Time

NumPy — NumPy
numpy/numpy: Numpy main repository
riolet/pol: Python one-liners: Awk-like one-liners for python
Taku Kudoさんのツイート: "長いことpypy上に名前だけが予約されていた CLIFが公開されていた。 https://t.co/FmVt0fGYwq C++のPythonラッパをお気楽に作るやつです。SWIGとちがって公開したい関数をoptinするところが良い。 #ifdef SWIG しなくてよい。"
google/clif: Wrapper generator foundation to wrap C++ for Python and other languages using LLVM.
google/skylark: Skylark in Go: the Skylark configuration language, implemented in Go
Overview — skylark 0.9.0 documentation
hit9/skylark: No longer maintained. A micro python orm for mysql and sqlite3.
mjpost/sacreBLEU: Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons

Wikipedia

IDLE (Python) - Wikipedia
オフサイドルール - Wikipedia

Qiita

Rubyist が pyenv を使うときに知っておいてほしいこと - Qiita
Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
Pythonの可視化ツールはHoloViewsが標準になるかもしれない - Qiita
Anaconda で Python 環境をインストールする - Qiita
リスト内包表記の活用と悪用 - Qiita
Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
pythonでローカルwebサーバを立ち上げる - Qiita
Pipenvでnpm-scriptsみたいにPipfileへコマンドを書く - Qiita

Twitter

その他

Hajime Moritaさんのツイート: "コンパイラやIDEががんばってくれない言語はライブラリ作る人が苦労するしかない気がする。しかしPythonはtype hintingいれてPyCharmをつかうとあら不思議、すっかりJavaみたいになります。JetBrainsやばい。彼らのIDEはぜんぶJava界の陰謀。"
Tsuyoshi Mishinaさんのツイート: "C++で実装したライブラリからCリンケージ関数をエクスポート→ctypesでラップに初挑戦。ネイティブコードの高速さとPythonの豊富なデータ解析機能の良いとこ取り。os.getpid()でカーネルのプロセスIDを取得すれば、VSのデバッガにアタッチも可能。これは強力です。 https://t.co/UW3AZyQlRn"
Manabu Terada@CMScomさんのツイート: "Pyenvはやめよう。Python標準の venv を使ったほうが良いよ。 #PyNyumon 参考はこちら https://t.co/Z9kKadEPNE"
INADA Naokiさんのツイート: "念のため言っておくと、pipenvはpipfileとvenvを組み合わせて便利にするツールで、pipfile(requirementsやlockの新フォーマット)はpypaが開発してます。 https://t.co/0w0yTr4tkm"
Kengo Sawatsuさんのツイート: "@shirouzu 僕も最初「えー結局win32をctypesシなくちゃいけないの?学習メンドクサ!」ってなりましたが、pywin32で殆ど呼び出せるので、そちらを検討したらどうでしょうか? https://t.co/m0rQg1v2rH win32file.GetDriveType("e:\")… https://t.co/W0p2WMX7jd"
win32com - PyWin32(Python for Windows extensions) - 愚鈍人
tomo🐧さんのツイート: "__matmul__ が Python 3.5 で導入されたのってあんまり有名じゃないのな https://t.co/I2qm7MlGcX"
What’s New In Python 3.5 — Python 3.6.4 ドキュメント
Atsuo Ishimotoさんのツイート: "よく勘違いしてる人がいるが、range()が返すのはイテレータでもジェネレータでもないから注意するんだ。… "
Kazuho Okuさんのツイート: "AST変わらなくても変数名変えたら動作変わる「可能性」はあるでしょ。例外のメッセージだって変わるわけだし。テストがめんどくさい場合の線引きとしては妥当だと思う / “20 万行超のコードベースをテストせずにリファクタリングリリー…” https://t.co/G6YswLHPFv"
Takeshi ITOHさんのツイート: "式を組み立ててevalするのも影響ありますね。… "

@fadis_

Fadisさんのツイート: "Python-3.7.0からdata classes(PEP 557)がサポートされる。dataclass指定付きで作成されたクラスは含まれているメンバとその初期値を列挙するだけで__init__と__repr__と各種比較演算と__hash__が暗黙に定義される。https://t.co/PNNYmOv8bd"
Fadisさんのツイート: "A-Zで分けて分散しない案件といえばこれを思い出すんだけど、今のpypiは、パッケージ名じゃなくて何かのハッシュでディレクトリ分けるようになってる https://t.co/4gv6Uu54z9"
Fadisさんのツイート: "Pythonに、式の中で右辺値に名前をつける文法が提案されていて、でも「その名前を=の左辺にもって来たら何が起こるんだ!!」ってなってPythonガチ勢達が溢れ出るカオスを抑え込むのに奔走してるっぽい"
Fadisさんのツイート: "PEP 572 -- Syntax for Statement-Local Name Bindings https://t.co/3ADdHHX4pT"
Fadisさんのツイート: "Python 3.7がリリースされた。Python 3.7ではpdbのimport無しでデバッガに落とせる組み込み関数breakpoint()、Cの構造体のように使われるクラスをより簡単に作れるようにするdataclass、コルーチンローカルな変数を作るContextVar等の機能が追加される https://t.co/eLOQq9dSRb"
Python Insider

@shirouzu

SHIROUZU(白水啓章)さんのツイート: "Python3でsymlinkかどうかの判定関数(is_symlink)は存在するが、Junctionかどうかの判定関数はない様子。 (さらにリパースポイント全般の種別を知る方法が知りたいところ) ctypes等でAPI呼び出しするしかないのかな?"
SHIROUZU(白水啓章)さんのツイート: "Windowsのstat_resultにはst_file_attributesメンバがあり、os.stat().st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT などとすれば、リパースポイントかどうかの判定が可能。 https://t.co/JeE4pE4N0k"
SHIROUZU(白水啓章)さんのツイート: "この方法だとJunction判定は可能だが、symlinkファイルは解決後のstat値となるため(Junctionではそうならない不思議)、そちらも判定したい場合、is_symlinkは別途使うか、os.lstat()を別途発行する必要あり。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、Python1.5xは共通鍵周りが無いのも困ったが、それ以上にunicodeどころかSJIS/EUCですら変換ライブラリが無かった。 で、kconvライブラリの利用が殆ど唯一の選択肢だったが、GPL縛りありという状態と。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "こんなPython1.xの歴史を経ていると、Python2.2-2.4辺りで入った、unicodeおよびcjkcodecs周りは非常な福音だった…が、Python3.xの文字列=UCS-4統一はそれやりすぎだろ感(笑) 寄せるなら、utf-8統一の方がうれしかったな…どうせIVSとかあって1つの器に1文字情報が入り切るわけでもないし。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CythonとPyPy比較をしているページをいくつか見てみたが、素のPythonのままだとPyPy優勢が多く、cdefや引数型指定を多用するとCythonが圧勝する例が多い印象。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "くだんのブログでは、「取り下げた修正(AST が変化する修正)」に「変数名の typo 修正」を入れているような。 Pythonだと、ローカル変数も変数名がバイトコードに残るわけで。… "
鯉江さんのツイート: "lexical scopeならローカル変数名の変更はほかの名前を隠してしまわないならテスト不要になるべきところASTダンプ単純比較だと擬陽性になるが、そもそもpythonはバイトコードが違ってしまうから影響がないとは言えないということでしょうか? ところでローカル変数名って例外に影響あるんでしょうか?… https://t.co/2QrdIjgX8I"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Pythonの場合、変数は変数名をキーとして、関数辞書→モジュール辞書→グローバル辞書、と実行時にフォールバックして探索しますよね。 従い名前が変わると挙動が変わるのは普通にありうる話で、ASTも(トポロジは変化せずとも)変数名を記述したリーフ内容が変わって当然かなと。… https://t.co/lNoUIwocwd"
Shirouzu Hiroaki(白水啓章)さんのツイート: "んなこたない。 ---- 「入出力のみを行うスレッド(ネットワークI/OやディスクI/Oなど)であれば、GILの競合を招く」 https://t.co/El8xAy3Xir"
なぜPythonはこんなにも遅いのか? | POSTD
Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワーク等の入出力がないなら、GILの競合を招く、が正解。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "syscall中はGILは外れていたはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名付きexeが SmartScreen にブロックされなくなったことを確認。 次回のリリースから、exeリリースに変更する予定。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「任意の整数列をn次方程式に変換する、というお題をnumpyで解いて、numpyの使い方を少し訓練…というか、ほぼ polyfit を呼ぶだけだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「内部でフーリエ級数使って解いているのかな?(ぜんぜん知らない)」 / Twitter
404 Blog Not Found:宴会ネタ - 揚げ足取り数列
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「普通に最小二乗法だった。 https://t.co/8JDhKYNc4k」 / Twitter
非線形最小二乗法 - Wikipedia

@shibu_jp

渋川よしきさんのツイート: "macユーザーがpyenvを使いたがるの、どうもHomebrewが複数バージョンのPythonをインストールできなくなって、それの回避でpyenvを使う流れっぽい。ダメなパッケージマネージャのしわ寄せをこっちに投げてくるな、という話っぽい。MacPorts使ってたから知らんかった"
渋川よしきさんのツイート: "Pythonは動的型付け言語だって言われるけど、引数の数とかのチェックとか厳しいし、JavaScriptと比べると硬い言語だなって思う。プログラミング言語の動的、静的ってデジタルじゃなくて、アナログ値だよね。"
渋川よしきさんのツイート: "例えば、Pythonでウェブサービス作っているとして、Djangoの使い方だけじゃなくて、HTTPの仕組みを知る(1つ下のレイヤー)と、メンテしやすいソフトウェア構造(1つ上のレイヤー)を知るのは大事だと思う。そうやって1つずつ広げるのは大事。"
渋川よしきさんのツイート: "Pythonの特殊メソッドの方式。ライブラリからすると、後方互換性が崩れないというのはすごい。… "
渋川よしきさんのツイート: "mypyで型をばっちりつけるPythonプログラミングをやってみているけど、pep8の文字数制限が3倍ぐらい厳しく感じる。"
渋川よしきさんのツイート: "Goのテスト哲学は「うん、なるほど」と思うのだけど、PythonやるとassertEqual便利って思ってしまう。"

@taku910

Taku Kudoさんのツイート: "python の sdist と wheel のパッケージングの挙動が違ってて死ねる。"
Taku Kudoさんのツイート: "Pythonの闇を見た。C++11/Windows/Python2.7という組み合わせは無理っぽい。 https://t.co/hZRXGXqmVX"
Taku Kudoさんのツイート: "manylinux にはホント苦労させられたけど (cmake のインストール、腐った pthread_once の自作など)、目的のためなら多少汚くてもゴリ押しするスタンスは評価しないと。互換性が壊れまくる物をリリースしたり、そもそもバイナリパッケージがない状況にくらべれば、ユーザに対するメリットは大きい。"
pypa/manylinux: Python wheels that work on any linux (almost)
Taku Kudoさんのツイート: "FYIですが、manylinux は docker 上で作るのが正解です。実際に使っているスクリプトがあるので参考になれば。travis 上でも動きます。 https://t.co/K7cCtyUtAT"
Taku Kudoさんのツイート: "CIしてんのというツッコミは置いといて、「ソースコードを変更する」にC拡張が含まれるとNGなような。普通にASTがいっしょで出力が異なるコード作れる。 https://t.co/HEASwoZf1C"
20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog

@ncaq

エヌユルさんのツイート: "リフレクションがあるから動作変わる可能性はあるのでは / “「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよ…” https://t.co/Z57ERS2o6b"
「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよねって記事なのに伝わってなくて笑った - bkiosのコメント / はてなブックマーク
エヌユルさんのツイート: "ASTのdiffがGitHubのpull requestにCI的に出てきたら有用っぽい / “20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog” https://t.co/8Cc76FS8uF"

The Python Graph Gallery – Visualizing data – with Python
Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき
Python.jp SlackからDiscordへ - atsuoishimoto's diary
Python.jp Discordサーバ - python.jp
Python 言語リファレンス — Python 3.6.5 ドキュメント
Python - pythonのvar++とvar=var+1で挙動が異なるのはなぜ(151179)|teratail
セイウチ演算子を導入した「Python 3.8.0」がリリース ~“Microsoft Store”からも入手可能 - 窓の杜

Jupyter

Project Jupyter | Home
Project Jupyter | Install
Installing Jupyter Notebook — Jupyter Documentation 4.1.1 alpha documentation

Qiita

データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
Jupyterインストール - Qiita
Jupyter Notebookでブログ書きたい - Qiita
Jupyter事始め - Qiita

Twitter

七誌さんのツイート: "プラットフォーム依存GUIを書きたくない→Web化?→ローカルだけで動かしたい→Electron?→配布物が大きくなるのでブラウザは既存のものを流用したい→Webサーバーとして動くローカルアプリ と考えて、Jupyter Notebookがこの形態だと気付いた。現実味はある。"
酔漢@ニャー将棋さんのツイート: "昼休みの間、Jupyterで遊んでいた。理系世界の勉強方法は確実に変わるぞ。 https://t.co/7psy5eAQ5s"
七誌さんのツイート: "以前、電卓アプリではなくPythonを電卓代わりにすれば、ログも記録できるというような説明をしていた。しかしIDLEだとちょっと説得力がなくて、ほとんど定着しなかった。Jupyter Notebookだったらもっと説得力があったのだろうけど、当時は存在を知らなかった…"
S.Asa♥さんのツイート: "データ可視化できるploty使うとJupyter上でオシャレグラフがすぐできる。チュートリアルを一通りやったけど、すごく直感的でわかりやすい。ラベルにLaTexも使えるようなので、物理計算の可視化とかにすごくよさげ! https://t.co/56vdUsgPRw https://t.co/R0RJ9wBgVx"
Plotly
CodeXP/新・どう書く.org管理人さんのツイート: "Jupyterの内部実装を追うのって結構勉強になるのでお勧め。traitletsを用いることによる柔軟性の高い起動方法や、1プロセスで同時に高負荷なセッションを捌けるTornadoのnon blocking I/Oの有難み、Zero MQによる軽量なキュー処理など。自前アプリへの組み込み方法も含めて、いつか発表したいなー。"
piqcyさんのツイート: "Jupyter Notebookからスクリプトを抽出してPython/R/Juliaファイルにする、さらにファイルを修正してJupyterに戻す、ということを可能にするツール。これで、Jupyter上のスクリプトを好きなエディタで編集して反映させることができる。 https://t.co/wWdtDkAkx6"
mwouts/jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts

私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD
Anaconda の Jupyter Notebook で ModuleNotFoundError が発生した場合のトラブルシュート | WEB ARCH LABO
ゼロからはじめるPython(2) Jupyterノートブックで気軽にPythonをこね回そう | マイナビニュース
AnacondaとJupyter NotebookでPythonの練習が捗った話 | フクロウのブログ|株式会社フクロウ|株式会社フクロウ
Windowsに「Jupyter Notebook」をインストールして手軽にPythonを使い始める方法
データ分析の必需品「Jupyter Notebook」の魅力とは - DeepAge
Jupyter Notebook を使ってみよう – Python でデータサイエンス
Jupyter Notebookを利用してお手軽分析環境構築 | DATUM STUDIO 株式会社
Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
Jupyter Notebook(IPython)のインストールと始め方 - TASK NOTES
Jupyter Notebookの拡張機能を使ってみる - はしくれエンジニアもどきのメモ
danielfrg/pelican-ipynb: Pelican plugin for blogging with Jupyter/IPython Notebooks
Jupyter (IPython Notebook) で書いたものをブログで共有したくて - ニートに片足突っ込んでいるブログ
オレオレJupyter運用法 ~常にJupyter Notebookを開きつつ任意のディレクトリをターミナルから開く · Wolftail Bounds
Colaboratory - Google 検索

Downloads | Anaconda
Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
「Python」ディストリビューション「Anaconda」に「Visual Studio Code」が追加 - 窓の杜
データ分析や機械学習にバリバリ使える上にブラウザで使用できて環境構築不要のPython実行環境「Google Colaboratory」 - GIGAZINE
Hello, Colaboratory - Colaboratory

pythonとseleniumを使ってウェブスクレイピングをしてみた - Qiita
Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
Pythonでsqlite - Qiita
Pythonスクレイピングメモ - Qiita
PythonとBeautiful Soupでスクレイピング - Qiita
PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
Pythonでスクレイピング(Selenium) - 自分基準
Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
Selenium でサポートされているプラットフォーム
スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説 | トップコート国際法律事務所
takuya-aさんのツイート: "なるほどー、アルゴリズム的にも面白いし、Wikipedia使ったデータ処理するときに役立ちそう / 1件のコメント https://t.co/H0NqHvoMBY “トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.” https://t.co/tAasAbblqA"
トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.
katsugeneration/ja-wiki-category: Japanese Wikipedia Category Data Mining Repository
Python統合開発環境「PyCharm 2019.2.1」リリース | OSDN Magazine

Wikipedia

コーパス - Wikipedia
コーパス言語学 - Wikipedia
言語資源 - Wikipedia
計算言語学 - Wikipedia
ツリーバンク - Wikipedia
自然言語処理 - Wikipedia
国立国語研究所 - Wikipedia

Qiita

さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita
さだまさし N-gram コーパスを用いてサジェスト機能を作ってみる - Qiita

Twitter

SentencePiece

takuya-aさんはTwitterを使っています: 「いまさらだけどSentencePieceの論文読んだ。ユニグラム言語モデルでエントロピー的に最適なサブワード集合を獲得するアルゴリズムがおもしろい。」 / Twitter
takuya-aさんはTwitterを使っています: 「1. 十分に大きい語彙集合を用意し、サブワードの最初の候補とする。コーパスに現れるすべての文字集合に加え、頻度の高い部分文字列をコーパスから計算する。後者はコーパスからSuffix Arrayを構築することで線形時間で計算できる。 2. EMアルゴリズムでサブワード分割を最適化(続く)」 / Twitter
takuya-aさんはTwitterを使っています: 「3. 各サブワードに対して、それを抜いたときに下がる尤度の量を計算 4. それらをソートして、下位n%の語彙をサブワードから削除(ただし1字のものは残す) 5. 2-4を与えられた語彙数になるまで繰り返す」 / Twitter
takuya-aさんはTwitterを使っています: 「論文へのリンクはこちら https://t.co/C0fTDqGcXa」 / Twitter
[1804.10959] Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates
Taku KudoさんはTwitterを使っています 「tensorflow-text が sentencepiece を公式にとりこんでくれたので、tensorflow 2.2.0を最後に tf_sentencepiece を廃止できそう😀 https://t.co/s5fvnUbwWs」 / Twitter
Taku KudoさんはTwitterを使っています 「tf.text sentencepiece のAPIは eager 動作に特化して、こういっちゃ見も蓋もないが sentencepiece の Python wrapper だけで再実装できる? TF1時代の計算グラフのノードの一部としてのAPIであれば TF ops の意味があったけど、そもそもTF1古いからいらないのだろう。」 / Twitter
Taku KudoさんはTwitterを使っています 「結局一日仕事。tf.2.2.0 対応させて、新しいリリース出してて、issue数を半減。https://t.co/YoKd2xwFh0」 / Twitter
Issues · google/sentencepiece
Taku KudoさんはTwitterを使っています 「sentencepiece の byte_fallback は、未知文字を UTF-8 byte sequence にバラす大技で、未知語が完全になくなります。意外とうまくいくようで、NMTで使うとレアな文字(絵文字など)はコピーするといった動作が学習されるようです。」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepiece が iterable object から直接学習できるようになったので、https://t.co/NQ2XO5LQ7v との親和性が格段に上がったはず。適当なサンプルコードをそのうち書きます」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepieceに機能追加要求がぼちぼちくるけど、その機能がなぜ必要なのかを書いてほしいし、聞くことにしている。大抵の場合、既存機能+αで workaround できるし、ディスカッションを通じて万人に有益かどうか判断してからでも遅くない。mecabもそんな感じであまり機能過多にはなってない。」 / Twitter

Taku Kudoさんのツイート: "https://t.co/C38UPC5Kz1 大規模な字幕翻訳コーパス (おそらく OpenSubttile?) せっかくなので、文脈情報がほしい。対話と翻訳をからめた研究が進むかも。"
JESC
asciianさんのツイート: "青空文庫全体のデータがGitHubからダウンロード可能になっている!これはテキストマイニングとかで最高なのではないだろうか。https://t.co/mtXrY4WKwL"
aozorabunko/aozorabunko
UniDic広報担当さんのツイート: "実は、この世には、https://t.co/v7HHtrgm3A というツールがございまして…… https://t.co/09Jl2PZvsK https://t.co/XjJBLaEgpU"
ChaKi プロジェクト日本語トップページ - OSDN
Taku Kudoさんのツイート: "日本語日常会話コーパス届いた (個人契約)  ちょろっと見たがこれは凄い。ボキャ貧ですまぬ。"
hiroshiさんはTwitterを使っています: 「Sudachi辞書に同期した同義語辞書がリリースされています。17,051グループ・46,000語が収められています。 https://t.co/RWOApQHKFp https://t.co/sx5WJk7ziC」 / Twitter
SudachiDict/synonyms.md at develop · WorksApplications/SudachiDict
SudachiDict/synonyms.txt at develop · WorksApplications/SudachiDict
hiroshiさんはTwitterを使っています: 「リリースおめでとうございます㊗️ 自然言語処理はもちろん検索用同義語辞書としても利用価値の高い、商用利用可能な貴重な言語資源ですね。形態素辞書と同期して同義語辞書が今後も拡張整備されていくならば、SudachiはElasticsearchをはじめ多くの検索エンジンの標準日本語NLPになっていくでしょう🎊🇯🇵」 / Twitter
Sorami HisamotoさんはTwitterを使っています: 「ワークス徳島NLPから、 同義語辞書をリリースしました 🎉 https://t.co/RS1Mt7WPWe 専門家による高品質な言語資源です。Sudachi辞書と同様にApache 2.0。 現在1.7万グループ、4.6万語収録。語彙辞書と同様、継続的に拡充していく予定です!Elasticsearchへの接続も開発中。 https://t.co/btG8mmgyuZ」 / Twitter
hiroshiさんはTwitterを使っています: 「まずは文化庁公式見解を読んでおくのが良いと思います。 https://t.co/IrlSgDp64P 文化庁「著作権法の一部を改正する法律(平成30年改正)について(解説)」 著作物に表現された思想又は感情の享受を目的としない利用(新法第30条の4関係) https://t.co/0tzkN96zER」 / Twitter
r1406693_11.pdf
Yuta Nakamura 🌧️🐠🐠🐠さんはTwitterを使っています: 「著作物からのコーパスや訓練済み△△の作成・公開をするにあたって,NLPerの皆さんは法的な問題をどこで相談しているんだろう」 / Twitter
hiroshiさんはTwitterを使っています: 「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合(以下「非享受目的」という。)には,その必要と認められる限度において,利用することができることとした。」 / Twitter
hiroshiさんはTwitterを使っています: 「同条は,上に述べたように実質的に通常権利者の対価回収機会を損なわないものの,形式的には権利侵害となってしまう一定の行為を広く権利制限の対象とする趣旨で新たに規定を整備するものである。」 / Twitter
hiroshiさんはTwitterを使っています: 「こちらの法律事務所の記事に具体的な解説があります。 https://t.co/zSTAx7ckn5 「著作物の本来的利用には該当せず、権利者の利益を通常害さないと評価できる行為類型」「モデル生成を行う他人のために学習用データセットを作成して不特定多数の第三者に販売したりWEB上で公開する行為」等々記載あり〼」 / Twitter
進化する機械学習パラダイス ~改正著作権法が日本のAI開発をさらに加速する~ | STORIA法律事務所
じょじょんきさんはTwitterを使っています: 「Webクロールベースの870万の日英ペア文のコーパスを公開|[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus https://t.co/7icfPmN0YV」 / Twitter
[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus
hiroshiさんはTwitterを使っています 「日本語の学習済みWord Embeddingの比較評価をしている記事があるけど、複合辞と文節の区別がないのもしかり、評価方法も客観的でなくて残念。ワークス徳島研の論文に学ぶことは多くあるはず。」 / Twitter

テキスト解析:ルビ振り - Yahoo!デベロッパーネットワーク
新辞林 - 言語と知能
Googleが自然言語処理の弱点「言い換え」を克服するデータセットを公開 - GIGAZINE

Universal Dependencies

Universal Dependencies

Universal Dependencies
日本語係り受け解析エンジンとしてのGiNZA・StanfordNLP・UDPipe | yasuokaの日記 | スラド
Universal Dependenciesにおける「二重主語」の問題 | yasuokaの日記 | スラド
Universal Dependencies 2.4がリリース | yasuokaの日記 | スラド
Universal Dependencies と類型論 - murawaki の雑記
「語」とはなにか・再考 - murawaki の雑記
研究紹介
松田寛 - 短単位品詞の用法曖昧性解決と依存関係ラベリングの同時学習
CiNii 論文 -  日本語Universal Dependenciesに基づく構文解析の検証 (言語理解とコミュニケーション)
CiNii 論文 -  日本語Universal Dependenciesに基づく構文解析の検証 (思考と言語)
Universal Dependencies 日本語コーパス
P5-8.pdf
E3-4.pdf
im2017.pdf
「毎日、友だちといっしょに校庭を走る。」の「毎日、」は、どこに係っているのか | yasuokaの日記 | スラド
「象は鼻が長い」の「象は」は、どこに係っているのか | yasuokaの日記 | スラド
UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
Universal Dependencies 2.5がリリース | yasuokaの日記 | スラド
Universal DependenciesとStanford Typed Dependenciesと矢印の向き | yasuokaの日記 | スラド
日本語Universal Dependenciesにおける名詞句の並列はconjの夢を見るか | yasuokaの日記 | スラド
Universal Dependencies 日本語コーパス
形態素解析モジュールfugashiが「軽量版UniDic」を伴ってリリース | yasuokaの日記 | スラド
『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をCamphr-KNPで解いてみる | yasuokaの日記 | スラド
日本語Universal Dependenciesで二文節間の「係り受け」をエミュレートするには | yasuokaの日記 | スラド
UD_Japanese-GSD (v2.6向けdev)プレリリースに関して | yasuokaの日記 | スラド
Universal Dependencies 2.6がリリース | yasuokaの日記 | スラド
「申し訳ないが私は興味ない」の「ない」は同じなのか違うのか | yasuokaの日記 | スラド
「近いとしても」と「親としても」では単語間の係り受け構造は異なるのか | yasuokaの日記 | スラド

spaCy と GiNZA

hiroshiさんはTwitterを使っています: 「本日のUniversal Dependencies Symposium@国立国語研究所での発表資料です。 「GiNZAで始める日本語依存構造解析〜CaboCha, UDPipe, Stanford NLPとの比較」 https://t.co/T3mwQN6Lep」 / Twitter
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
リクルートのAI研究機関、国立国語研究所との共同研究成果を用いた日本語の自然言語処理ライブラリ「GiNZA」を公開 | Recruit - リクルートグループ
NLP2019 松田寛 - GiNZA
[“GiNZA - Japanese NLP Library”] | [“Universal Dependenciesに基づくオープンソース日本語NLPライブラリ”]
megagonlabs/ginza: A Japanese NLP Library using spaCy as framework based on Universal Dependencies
hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZAとそのベースとなるspaCyについての秀逸な解説です。Text Classificationまで詳細に説明されています。spaCyの内部構造を知る上でとても貴重な情報源だと思います。 オージス総研 はじめての自然言語処理 - 第4回 spaCy/GiNZA を用いた自然言語処理 https://t.co/uY4Yq9bnib」 / Twitter
はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場
spaCyと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZAで読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZA v2.0.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZA v2.2.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
hiroshiさんはTwitterを使っています: 「今後ginzaコマンドに並列実行オプションを追加するときには、形態素解析レイヤだけの高速動作モードも追加しようかと。使う側はとにかくシンプルな記述で最大速度が得られれば満足だと思うので。」 / Twitter
hiroshiさんはTwitterを使っています: 「GiNZAは依存構造(or係り受け)解析器ですが、形態素解析器と勘違いされがちなので、GiNZAと同時にインストールされる高速な形態素解析器を、 $ sudachipy で実行するようREADMEで案内しようと思います。」 / Twitter
多言語解析ツールspaCy 2.2.2がリリース | yasuokaの日記 | スラド
GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZA v3.0.0 (Benitoite)をリリースしました。https://t.co/CDumSLJb6o pip install ginza でインストールが完了。 形態素解析専用のginzameコマンドを追加。 UD_Japanese-BCCWJ+GSK2014-Aでparser+nerをマルチタスク学習することで精度もかなり改善しています。 ぜひお試しを!」 / Twitter
hiroshiさんはTwitterを使っています: 「pipenvを含む一部の環境で形態素辞書が読み込めない問題に対処したGiNZA v3.1.0をリリースしました。 pip install -U ginza で最新版に更新し、ginzaコマンドを実行した際に ValueError: cannot mmap an empty file のエラー表示で異常終了する場合は、 ginza -i で形態素辞書を初期化してください。 https://t.co/lDzSoEASgb」 / Twitter
GiNZA v3.1.0で読む「ライトの兄弟オスカーはコミックブック作家だ。」 | yasuokaの日記 | スラド
ginzaとnetworkxを使って係り受けパスで文をインデクシング - ナード戦隊データマン
係り受けパスによるインデクシングを日英に一般化 - ナード戦隊データマン
何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話 - Qiita
hiroshiさんはTwitterを使っています 「GiNZA v3で強化された固有表現抽出をマスキングに応用した記事です。独自コーパスでしっかり定性評価されています。spaCyのCNNモデルは追加学習も可能です。一度コーパスをGiNZAで解析してENEタグを付与し、それらと競合しない新たな抽出対象をタグ付けしたコーパスでNERを追加学習するのがよいかと。 https://t.co/S5UQs3FDAQ」 / Twitter
株式会社AI ShiftさんはTwitterを使っています 「*TECH BLOG更新* 固有表現抽出を用いて個人情報のマスキングができるかを検証した記事の続編です。今回はGiNZAを用いた検証を行いました。 https://t.co/nqvMDXeOnx」 / Twitter
GiNZAによるテキストデータからの個人情報の抽出 | 株式会社AI Shift
hiroshiさんはTwitterを使っています 「GiNZA v3の固有表現抽出はENE(関根の拡張固有表現階層)体系で学習しています。 https://t.co/H9HuzZHCBH https://t.co/Fk1DhaWAOa そしてpipelineの後段でENEからspaCy標準のOntoNoted5固有表現ラベルを独自に拡張した体系に変換しています。 追加学習時はENE体系を考慮したタグ付けを行ってください。」 / Twitter
関根の拡張固有表現階層 -7.1.1-
liat-aip.sakura.ne.jp/ene/ene8/definition_jp/html/enetree.html
spaCy上の係り受け可視化ツールdeplacy | yasuokaの日記 | スラド
CamphrがKNPの係り受け解析をサポート | yasuokaの日記 | スラド
「吾輩はここで始めて人間というものを見た」の文節係り受けはどうなっているか | yasuokaの日記 | スラド
『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をGiNZAで解いてみる | yasuokaの日記 | スラド

Stanza(StanfordNLP)

Masato Hagiwara (萩原正人)さんのツイート: "スタンフォード大のNLPグループから、ニューラルで分かち書き、品詞タグ付け、係り受け解析ができる Python ネイティブのライブラリが登場。Universal Dependencies 準拠、53言語に対応。前処理の新たなスタンダードになりそう。https://t.co/Qu9fzztkNH"
StanfordNLP | StanfordNLP
「令和」の係り受け解析エンジン(仮)としてのStanfordNLP | yasuokaの日記 | スラド
StanfordNLPで読む『吾輩は猫である』 | yasuokaの日記 | スラド
CoNLL-U Format
64ビットCygwinにStanfordNLPをインストール | yasuokaの日記 | スラド
piqcyさんはTwitterを使っています 「stanfordnlpが進化したStanzaが公開。spaCyのように自然言語の各種処理(単語分割・依存構造解析・固有表現認識etc)をパイプラインで実行可能。PyTorchで構築されたニューラルベースのモデルで解析を行う。多言語対応がうれしい(日本語含む66言語)。ライセンスはApache2だが内包するCoreNLPはGPLで注意 https://t.co/OAawRDkhpE」 / Twitter
piqcyさんはTwitterを使っています 「なおspaCyからStanzaを利用することも可能 https://t.co/3OHYIIJKym」 / Twitter
多言語文法解析ツールStanzaリリース | yasuokaの日記 | スラド
Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
Re: Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
UD-Kanbun・spacy-stanza・spacy-udpipeの自動文切り機能をOFFにするには | yasuokaの日記 | スラド
「New York」と「Hà Nội」と「新大阪」は1語なのか2語なのか | yasuokaの日記 | スラド

UDPipe

「令和」の係り受け解析エンジン(仮)としてのUDPipe | yasuokaの日記 | スラド
UDPipe APIのpython3ラッパー | yasuokaの日記 | スラド
Web茶まめとUDPipe APIの両方にアクセスできるpythonラッパー | yasuokaの日記 | スラド
Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析 | yasuokaの日記 | スラド
Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析の改良 | yasuokaの日記 | スラド
多言語文法解析ツールとしてのspacy-udpipe | yasuokaの日記 | スラド

unidic2ud

現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud | yasuokaの日記 | スラド
unidic2udと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータ | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータと本物のCaboChaとの違い | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータをWindowsで動かすには | yasuokaの日記 | スラド
UniDic2UDによる単語間の係り受けと二文節間の係り受け | yasuokaの日記 | スラド
日本語における単語間の係り受け解析 | yasuokaの日記 | スラド
多言語係り受け解析ツールとしてのUniDic2UD | yasuokaの日記 | スラド
UniDic2UDにおける品詞間の対応 | yasuokaの日記 | スラド
UniDic2UDとGiNZAで読む「難儀な難儀は難儀する」 | yasuokaの日記 | スラド
「港の見える丘」の「港」は「見える」の主語なのか | yasuokaの日記 | スラド
日本語の言語処理における「単語」長の問題 | yasuokaの日記 | スラド
動詞の連用形による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
接続助詞による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド

NLP-Cube

「令和」の係り受け解析エンジン(仮)としてのNLP-Cube | yasuokaの日記 | スラド
日本語係り受け解析エンジンとしてのNLP-Cube | yasuokaの日記 | スラド
NLP-Cubeで読む『吾輩は猫である』 | yasuokaの日記 | スラド
64ビットCygwinにNLP-Cubeをインストール | yasuokaの日記 | スラド

COTOHA API

COTOHA APIのUniversal Dependencies向けpythonラッパー | yasuokaの日記 | スラド
COTOHA APIのUniversal Dependencies向けpython3ラッパー | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受けをCOTOHA APIで解析する | yasuokaの日記 | スラド
COTOHA API

Google ColaboratoryでCamphr-Udifyを使うには | yasuokaの日記 | スラド
Google ColaboratoryでCamphr-Udifyの結果を可視化するには | yasuokaの日記 | スラド
CygwinにSciPyをインストール | yasuokaの日記 | スラド

Graphviz

望遠鏡は「望遠」「鏡」なのか「望」「遠鏡」なのか | yasuokaの日記 | スラド
「望遠鏡で泳いでいる彼女を見た」の係り受け関係 | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphvizで可視化する | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphviz 2.38で可視化する | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
Re: 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
Re:「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド

照応解析

リーディングスキルテストは、何の「係り受け」をテストしているのか | yasuokaの日記 | スラド
D5-2.pdf
照応解析 - Wikipedia
_pdf
ono_bthesis.pdf
照応・照応解析まとめ|直接照応・間接照応・外界照応・ゼロ照応 - アズメディア|広告とメディアを考える(@_danboooo_ )
照応解析
省略・照応解析
ゼロ照応解析について - あしたからがんばる ―椀屋本舗
CiNii 論文 -  外界照応および著者・読者表現を考慮した日本語ゼロ照応解析
https://ipsj.ixsq.nii.ac.jp

談話構造解析

談話構造解析 DIA
奥村研究室ホームページ
P3-15.pdf
F6-2.pdf
談話構造 | Nishida Lab
自然言語処理18_31
_pdf
談話構造理解(だんわこうぞうりかい)とは - コトバンク
#3211. 統語と談話構造
Open Resources - 東北大学 乾・鈴木研究室 / Communication Science Lab, Tohoku University
コロナ社「文脈解析」本のレビュー - Qiita
公開ツール - NAIST Computational Linguistics
太田 博三 - 「コロナ社」「文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ 10)... | Facebook

述語項構造解析

英語形態論
述語項構造シソーラス (岡山大学竹内研)
自然言語処理21_333
B4-5.pdf
E1-1.pdf
日本語文章に対する 述語項構造アノテーション仕様の考察
述語項構造解析 | Yuta Hayashibe
nlp13.pdf
10-6-B3-4.pdf
述語項構造シソーラス | Takeuchi Lab
述語項構造のシソーラス分類と意味役割の設計について
D4-3.pdf
JCLWorkshop_No.7_18.pdf
JCLWorkshop_No6_06.pdf
述語項構造解析のための格フレーム辞書構築の検討 - 長岡技術科学大学 自然言語処理研究室
研究会 - BCCWJへの述語項構造シソーラスの付与による意味役割の検討
CiNii 論文 -  述語項構造シソーラスによる述語と名詞の構造化
takeuchivthai.dvi

スラド

Montague形式意味論とМельчук依存文法は、どちらが漢文の自動解析に向いているか | yasuokaの日記 | スラド
Kyoto University Research Information Repository: 漢文の依存文法解析と返り点の関係について
AIを用いた漢文の文法解析 | yasuokaの日記 | スラド
Kyoto University Research Information Repository: 古典中国語(漢文)の形態素解析とその応用
Kyoto University Research Information Repository: 四書を学んだMeCab+UDPipeはセンター試験の漢文を読めるのか
Kyoto University Research Information Repository: Universal Dependenciesの拡張にもとづく古典中国語(漢文)の直接構成鎖解析の試み
udkanbun · PyPI
UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
「駆け抜ける」と「走り切る」は複合動詞なのか動詞連続なのか | yasuokaの日記 | スラド
「着たくない服は着ない」の「ない」はcliticかaffixか | yasuokaの日記 | スラド
「知を致すは物に格るに在り」の「に」はcliticかaffixか | yasuokaの日記 | スラド
「うなぎを浜松に食べに行く」は係り受け解析できるのか | yasuokaの日記 | スラド
東ロボは何を係り受け解析していたのか | yasuokaの日記 | スラド
多言語係り受け解析ツールとしてのCamphr-Udify | yasuokaの日記 | スラド
64ビットCygwin向けAllenNLPインストーラ仮公開 | yasuokaの日記 | スラド
WSL上のLinuxにKNPをインストールする | yasuokaの日記 | スラド

Wikipedia

構成素 - Wikipedia
カテナ (言語学) - Wikipedia
依存文法 - Wikipedia
ルシアン・テニエール - Wikipedia
統語論 - Wikipedia
補語 - Wikipedia

Twitter

Sorami HisamotoさんはTwitterを使っています 「ワークス徳島NLPでは日本語単語ベクトル「chiVe(チャイブ)」も公開しています! 本日 v1.1 をリリース。 国立国語研との共同研究、100億語規模コーパス「NWJC」、形態素解析器「Sudachi」の複数分割単位を併用、word2vec (Skip-gram) で学習。 https://t.co/Uf1Y0OgIZW #NLP2020sponsor #NLP2020」 / Twitter
WorksApplications/chiVe: Japanese word embedding with Sudachi and NWJC
Taishi IkedaさんはTwitterを使っています 「形態素解析器を比較するためのライブラリを公開しました! https://t.co/rvpebKewMw 日本語コーパスのダウンローダーと前処理機能を搭載しており、数行のコードで処理速度の比較、単語分割の比較、後段タスクでの精度比較が行えます。 またDockerでは、環境構築なしに9種類の解析器を比較できます! https://t.co/DhmbflEVqe」 / Twitter
taishi-i/toiro: A comparison tool of Japanese tokenizers

情報幾何学

最小二乗法

1916-07.pdf

2020年抱負 | κeenのHappy Hacκing Blog
幾何を使った統計のはなし
情報幾何学1: 確率分布とリーマン多様体 - 初級Mathマニアの寝言
情報幾何入門
_pdf
DVIOUT
matsuzoe_201710hokudai-handout.pdf
takano.pdf
toukei12.dvi
情報幾何の勉強。機械学習の数理的研究。 - 日記マン
infogeo.dvi - infogeo-sice.pdf
11_KJ00005768851.pdf
book_0403.pdf
「情報幾何」に入門するための資料PDF。解説論文と機械学習への応用の紹介 - 主に言語とシステム開発に関して
「情報幾何」で深層学習の謎を解く新しい機械学習手法を創り出す - NII SEEDs / 国立情報学研究所
情報幾何への入門と応用

ニューラルネットワーク

パーセプトロン

その他

第17回 パーセプトロンを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社
第15回 分類問題ことはじめ:機械学習 はじめよう|gihyo.jp … 技術評論社
ニューラルネットワークとパーセプトロン - Sideswipe
ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(前編) | コンピュータサイエンス | POSTD
ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(後編) | コンピュータサイエンス | POSTD
はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
七誌さんのツイート: "パーセプトロンでXORが実装できない理由を、真理値表を2次元にマッピングして一次関数の直線で区切れないためと説明された。区切るためには曲線が必要で、その曲線がフェルマー曲線や楕円曲線に似ていると思っていた。あ、だからフェルマー予想の証明に楕円関数論が絡むのか!と今頃気付いた…"
七誌さんのツイート: "楕円関数論の重要性がじわじわ来ている。改めて竹内先生の緒言が身に染みる! https://t.co/99YRij5404"
パーセプトロンの概観とディープラーニングへ - HELLO CYBERNETICS
パーセプトロン - Pythonと機械学習
コベクトルで考えるパーセプトロン - Qiita
実は難しい自然言語処理。画像認識の活用も始まる

コンパイル

入門 Keras (2) パーセプトロンとロジスティック回帰 | 株式会社インフィニットループ技術ブログ
Kerasでディープラーニングに入門する(MNISTの手書き数字問題を単層パーセプトロンで解く) - Qiita
OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita
パーセプトロンってなんだろう? - きしだのはてな
パーセプトロンとサポートベクターマシン - きしだのはてな
ニューラルネットワーク - プログラムに組込み可能なライブラリ
第16回 最適化のための勾配法:機械学習 はじめよう|gihyo.jp … 技術評論社
keras_tutorial
MXNet チュートリアル : 手書き数字認識 – MNIST – PyTorch
Caffe2によるディープラーニングの基礎と実践 rev 1.1
多層パーセプトロン (Multilayer perceptron, MLP)をExcelで理解する - Qiita

ネットワーク

パーセプトロンとニューラルネットワークの違い - kakts-log
パーセプトロンとは? - Qiita
ニューラルネットワークと深層学習
多層パーセプトロン - Wikipedia
パーセプトロン - Wikipedia
機械学習 - パーセプトロンはニューラルネットワークなのか?|teratail
パーセプトロン ニューラル ネットワーク - MATLAB & Simulink - MathWorks 日本
パーセプトロンとニューラルネットワーク(1) - 人工知能・ロボティクス・and so on 工学系ブログ
ニューラルネットワークとは?人工知能の基本を初心…|Udemy メディア
ニューラルネットワークが持つ欠陥「破滅的忘却」を回避するアルゴリズムをDeepMindが開発した論文を読んだ - Qiita
Deep Forest :Deep Neural Networkの代替へ向けて - Qiita
C++ヘッダだけでDeep Learning、tiny-dnnの紹介 - Qiita
Fadisさんのツイート: "最近、ディープラーニングを扱う記事のニューラルネットワークのイメージ図が謎の3層全結合だったら、記事が古いのではないかと疑う事を覚えた"

可視化

多層パーセプトロンの動きを可視化する - StatsFragments
Python: 単純パーセプトロンを実装してみる | CUBE SUGAR STORAGE
D3.jsでパーセプトロンを可視化した - くじらにっき++
多層パーセプトロンの動きを可視化する - StatsFragments : GoogleやFacebookが注目するディープラーニング(深層学習)についてまとめてみた - NAVER まとめ
perceptronの可視化 - Qiita
プログラマーが効果的な可視化を作成する (前編) - Qiita
プログラマーが効果的な可視化を作成する (中編) - Qiita
プログラマーが効果的な可視化を作成する(後編 Part 1): 基本原則 - Qiita
プログラマーが効果的な可視化を作成する(後編 Part 2): 学習ガイド - Qiita
高次元データの次元削減および2次元プロット手法 - Qiita
探索的データ解析における正しい可視化手法の選び方と描き方 - Qiita
情報理論を視覚的に理解する (1/4) : | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (2/4) | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (3/4) | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (4/4) | コンピュータサイエンス | POSTD

時系列

パーセプトロン
Journal of Chemical Software Vol.4 No.2, p.57 (1997)
階層型のネットワーク
ニューラルネットワークの考え方 | Logics of Blue
18-1-10.dvi
売買判定システム修正版2

ONNX

AWS、Facebook、Microsoftの3社、AIモデルのオープンフォーマット「ONNX」を正式リリース:異なるディープラーニングフレームワーク間でAIモデルを移行できる - @IT
ディープラーニングフレームワーク間で共通のモデル表現が可能に:MicrosoftとFacebook、AIモデルの相互運用性を実現する共同プロジェクト「ONNX」を発表 - @IT
AWS、MicrosoftやFacebookなどが推すAIフォーマット「ONNX」をサポート:ディープラーニングモデルのオープンフォーマットのエコシステムが拡大 - @IT
AIモデルの相互運用性プロジェクト「ONNX 1.0」 | OSDN Magazine
ONNX のモデル出力と、ONNX を使った推論をやってみた - Fixstars Tech Blog /proc/cpuinfo
ONNX
Open Neural Network Exchange
shinichiro hamajiさんのツイート: "ONNX、ループとかないと思ってたけどいつのまにか生えてるやん https://t.co/LTSE4GsztY"
Yuta Kashinoさんのツイート: "How Facebook scales AI https://t.co/pJJIRPqRYC FaceBook社内の機械学習インフラ.PyTorchで学習した後にONNX経由でCaffe2によるプロダクション環境での推論実行が実現できているそうです.… https://t.co/zAz0yUkmh3"
PreferredNetworksJPさんのツイート: "【発表】学習済みDNNモデルを #ONNX 形式から読み込んで動作させる推論専用ライブラリMenoh(メノウ)を公開! #Chainer で学習したモデルを #Python 以外の言語で実装したアプリケーションに瞬時にデプロイすることができます。 https://t.co/xXjPh0JViE"
pfnet-research/menoh
Taku Kudoさんのツイート: "ONNX ということは、Define-by-Run が標榜する真の動的モデルの実行は難しいのではないのかな... TFのようにインファレンスを Python から切り離してヘテロ環境で実行したいのなら、どのみち静的なグラフが必要で、そのへんのトレードオフはなかなか解けないですね。"
Taku Kudoさんのツイート: "Define-by-Run, Define-and-Run より、Model as code, Model as data といったほうが、インファレンスの立場からの違いがはっきりすると思う。"
はじめてのにき(2018-07-01)
米Microsoft、機械学習向け推論エンジン「ONNX Runtime」をオープンソースで公開 | OSDN Magazine
ONNX はチューリング完全だよ、という話 - 兼雑記
Noriyuki OHKAWAさんのツイート: "onnx関係者 "All names MUST adhere to C identifier syntax rules." て文を誰も読めないんじゃないかと疑ってる."
Microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
shinichiro hamajiさんのツイート: "OpenVINO サポート、実装やり直して今の2つ目で、何がうざいって ONNX => dldtモデル部分が Python で書かれてることで、僕は system(3) でやるのが結局一番と判断したけど https://t.co/lEsjvPu4r0 onnxruntime は Python.h 使って頑張ったぽい https://t.co/AtHXMwHQN1"
shinichiro hamajiさんのツイート: "Intel みずから onnxruntime に関わってくれたおかげで、それなりに ONNX サポートキープしてくれそう……?という期待ができるのかな。。まあ TF/Caffe 優先ではあるのだろうけど"
shinichiro hamajiさんのツイート: "また三日坊主になってる。GSoCのやたら優秀な方に、 continue/break/return を実装していただいた https://t.co/TaBIzzVK5l ONNXに落とす(キツい)、グラフに変換する時に頑張る(キツい)、などを検討した後に、AST-to-ASTで消しさればいいんじゃない?という話になって、綺麗にまとまって良かった"
Canonicalizer Unittests, and Break Canonicalization. by Rishav1 · Pull Request #352 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "つまり任意の Python AST を continue/break/return の無い Python AST に等価変換する感じ"
shinichiro hamajiさんはTwitterを使っています: 「Practical developers 読んでて、むしろ value_info が必須でないことが ONNX で良いと判断した理由の一つだったなあと。 shape 必須な時は static shape なグラフなので、単に onnx.shape_inference.infer_shapes すれば(バグってなければ) value_info は全て判明するはずだし」 / Twitter
Noriyuki OHKAWAさんはTwitterを使っています: 「@shinh exchange formatなのに利用側に(shape inferのための)runtimeを要求するのが嫌だと思ったんですよね.python同士でしかやりとりしないなら別にいいんですけど」 / Twitter
shinichiro hamajiさんはTwitterを使っています: 「@notogawa たしかに、C++/Python以外から使いにくくなってprotoの利点ちょっと殺しちゃってると言われればそうかもですね」 / Twitter
shinichiro hamajiさんはTwitterを使っています: 「また三日坊主になってる。最近だとONNX workshop行って、Python listをSequenceで扱うopを足して、というのが進んでたので、それは一年前通った道……と偉そうにこういうの多分いるよ、て共有したり https://t.co/IY5s5qLISa PR にコメント書いたり、提案通り実装したりした https://t.co/RXbPUDByyO」 / Twitter
ONNX with Python list/loop in chainer-compiler - Google スライド
Add standard ONNX sequence ops by shinh · Pull Request #665 · pfnet-research/chainer-compiler

NNEF

青子守歌さんのツイート: "ニューラルネットワークのデータ表現形式の標準規格が策定された https://t.co/Q1QgLb3lgL この間のミーティングで言われてたやつこれか"
Neural Network Exchange Format (NNEF) - Neural Network Exchange Format (NNEF)
Fadisさんのツイート: "OpenGL等の標準化で知られるクロノスグループ、異なるニューラルネットワークフレームワーク間でニューラルネットワークの学習済みモデルをやり取りするためのフォーマットNNEF 1.0を公開 https://t.co/jYTWfdtz4u"
Khronos Announces NNEF 1.0 Standard For Neural Networks - Phoronix
ニューラルネットワークツールと推論エンジンの相互運用のためのプロジェクト「NNEF」が仕様を公開 | OSDN Magazine
ニューラルネットの共通フォーマット対決! NNEF vs ONNX - Fixstars Tech Blog /proc/cpuinfo

MLIR

FadisさんはTwitterを使っています 「LLVMがMLIRをSPIR-Vにコンパイル出来るようになったらしい。MLIRは計算グラフを表現する中間言語で、TensorFlowが最適化の為のターゲット非依存の表現として生み出した。既にCUDAに落とす実装があったが、これでNVIDIA以外のGPUでもVulkanが動けばMLIRを実行できるようになる https://t.co/Wd195YHV2R」 / Twitter
LLVM Adds MLIR-Vulkan-Runner To Run MLIR On Vulkan-Enabled GPUs - Phoronix
FadisさんはTwitterを使っています 「ただし時々実行できないCUDA PTXを吐き出す…(白目」 / Twitter
Fadisさんのツイート: "MLIR: LLVM IRにすると失われる情報を利用した最適化の為に言語固有の中間言語で最適化を行う言語が増えていて、機械学習フレームワークもそうしたいけど沢山のフレームワークが個別にこの実装をするの無駄だから共通の実装を作ろうぜ、とTensor Flowの人が作った中間言語 https://t.co/BZEXUi6HhI"
MLIR Is A New IR For Machine Learning That Might Become Part Of LLVM - Phoronix
Makoto Kato ︎︎さんのツイート: "いや、Tensorflowじゃなくて、LLVM作った人だから、彼。"
ドッグさんはTwitterを使っています 「MLIR 中間言語の設計の紹介論文が Chris 筆頭著者で出てる | 'MLIR: A Compiler Infrastructure for the End of Moore's Law' https://t.co/F7DGu2NeU9」 / Twitter
[2002.11054] MLIR: A Compiler Infrastructure for the End of Moore's Law

chainer-compiler

転職してからやってること - 兼雑記
はじめてのにき(2018-07-01)
はじめてのにき(2019-03-22)
Chainer-compiler - Google スライド
shinichiro hamajiさんのツイート: "自分が適当に書いたコードにコメントもらうのは、こわくもあり、とても面白くもあって良かった。当たり前だけど、自分が苦労したからといって人にとって面白いとは限らず、自分が忘れてるからといって人の目に止まらないとは限らないもんだなあと思った #chainer_compiler_reading"
shinichiro hamajiさんのツイート: "前者はループまわりは本当に色々苦労したけど終わってみると割と普通、というのと、後者は方針途中でかえた残骸が残ってたshape inferenceが妙に注目されて @kuenishi さんが最近おっしゃってた「まともなソフトウェアはデッドコードは消す」という教えをね…ちゃんと実践しないと。。"
shinichiro hamajiさんのツイート: "せっかく open なので chainer-compiler についてなんかかいていこうかなと。 https://t.co/Zy0eHiXjfM は Chainer のバージョンを上げてて、 ChainerX の新しい op を使うためなので重要。でもこれすると python から使った時の ABI 大混乱を避けづらくて、このへんポリシー決めてなかいとなあ"
Bump up chainer version by shinh · Pull Request #272 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "歴史的事情のある XCVM はわかりにくいので、 ChainerX VM を略して、リポジトリの中では ChxVM と呼ばれることとなりました https://t.co/YJEUU4kjxk"
Rename XCVM to ChainerX VM by shinh · Pull Request #277 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "自分のじゃないのを書くと、 Shape を ChxVM の型にするやつ https://t.co/ivh69nYj8T Shape を Array で動的に持ってたので、 ch2o/elichika で出力した ONNX とか Shape だらけで、なんというか結構大変なオーバヘッドになってるので、いろいろとなんとかなると嬉しい"
Specialize GeItem from shape variable by take-cheeze · Pull Request #305 · pfnet-research/chainer-compiler
chainer-compilerのその後 - Google スライド
動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development

GPT

小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「AI分野でめちゃくちゃ盛り上がってる「GPT-3」を使った事例が15個まとまってる。 GPT-3の衝撃 https://t.co/oR4P1mjq0D 「GPT-3の方法はこれまでのDeep Learning研究の観点からみるとかなり特殊です.むしろ新しいプログラミングパラダイムと見るべきかもしれません.」」 / Twitter
GPT-3の衝撃 - ディープラーニングブログ
超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium
超高精度な言語モデル「GPT-3」は本当に「人間そのもの」な会話ができるのか実験した結果は? - GIGAZINE
自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか? - GIGAZINE
OpenAIが超高精度な言語モデル「GPT-3」用いたAIモデルをAPIとして利用可能に、Wikipediaの内容を「質問」で検索するデモムービーも - GIGAZINE
AIによる自動文章作成ツールがあまりにも高精度のテキストを簡単に作り出してしまうため開発陣から「危険過ぎる」と問題視される - GIGAZINE
「あまりにも危険過ぎる」と危険視された文章生成ツール「GPT-2」の技術で画像を自動で生成することに成功 - GIGAZINE
OpenAIが1,750億のパラメーターを持つGPT-3 AI言語モデルを発表
須山敦志 Suyama AtsushiさんはTwitterを使っています 「理解に基づいて文書を生成するのではなく,大量の学習データから「コピペ」しているかのよう. GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about https://t.co/SxSG54nl2Z」 / Twitter
GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about | MIT Technology Review
須山敦志 Suyama AtsushiさんはTwitterを使っています 「何はともあれ,適当にウェブの記事を切り貼りしてレポート課題を出す学生たちの「仕事」は,事実上AIによって奪われたわけですね.」 / Twitter
20200926
文章生成AI「GPT-3」がRedditで1週間誰にも気付かれず人間と会話していたことが判明 - GIGAZINE

blog

AIブーム終焉の意味するところ|Ryota Kanai|note
20200418
高校数学を使って誤差逆伝播を”再発見”できるAutoML-zero - akira - Medium
日本ディープラーニング協会におけるRNN (Recurrent Neural Network) | yasuokaの日記 | スラド
ClPyが製品候補版になり、ほぼ全ての主要機能が動作するようになりました - Fixstars Tech Blog /proc/cpuinfo
ClPyの論文が公開されました - Fixstars Tech Blog /proc/cpuinfo
ClPy meets libTooling (1): Ultima - Fixstars Tech Blog /proc/cpuinfo
LINE、NAVERと共同で、世界初、日本語に特化した超巨大言語モデルを開発 新規開発不要で、対話や翻訳などさまざまな日本語AIの生成を可能に | ニュース | LINE株式会社

PC Watch

【後藤弘茂のWeekly海外ニュース】NVIDIAのAmpereで対応した新技術「プルーニング」 - PC Watch
【後藤弘茂のWeekly海外ニュース】第3世代のディープラーニングプロセッサはモデル圧縮技術が鍵 - PC Watch
【後藤弘茂のWeekly海外ニュース】NVIDIA Ampereにおけるプルーニング対応の特徴 - PC Watch
【後藤弘茂のWeekly海外ニュース】人間の脳から産まれたディープラーニングのプルーニング - PC Watch
NTT、分散配置されたデータから安定したディープラーニングが可能な技術 - PC Watch

日経クロステック

AIにおける「次元の呪い」解決へ、富士通研が機械学習の最有力学会で発表 | 日経クロステック(xTECH)
Apple注目の1ビット深層学習、超省電力で「スマホに常時AI」 | 日経クロステック(xTECH)

GIGAZINE

Googleのエンジニアが人間がコーディングを行うよりも高速で自己進化するAI「AutoML-Zero」を発表 - GIGAZINE
ディープラーニングの手法「CNN」の画像識別処理がアニメーションで理解できる「CNN Explainer」 - GIGAZINE
Facebookが英語を経由せずに100個の言語を直接翻訳できる新しい機械翻訳システムを開発 - GIGAZINE
初めてニューラルネットワークによる量子化学計算を実現したシステムがオープンソース化 - GIGAZINE
機械学習の「Q学習」にベイズ推定を取り入れると一体何が起こるのか? - GIGAZINE
Appleの「M1」搭載Macに最適化されたAI向けライブラリ「TensorFlow」の最新バージョンがリリースされる - GIGAZINE

infoQ

OpenAIがニューラルネットワークを理解するためのビジュアライゼーションツールであるMicroscopeを紹介
Googleが新しい高性能TensorFlowランタイムをオープンソース化
自然言語処理とゲノミクス処理を進化させるGoogleのBigBirdモデル
スタンフォードNLPグループがStanzaをリリース:Python NLPツールキット
TensorFlow 2.3ではパイプラインのボトルネックを削減し、前処理を改善
Facebookがタンパク質配列を処理するAIモデルをリリース
ExBERT、NLPモデルで学習された表現を探索するためのツール
99.9%少ないパラメータでGPT-3パフォーマンスを上回るAIのトレーニング方法
Facebookは機械学習プライバシーライブラリのOpacusをオープンソース化

スライド

tvm_intro.pdf - Speaker Deck
Intel Nervana Graph Compilerとは?
TensorFlow XLAは、 中で何をやっているのか?
DLHacksさんはTwitterを使っています 「質問応答タスクでモデルが何を学習しているのかを調べるために複数のデータセットに対して各種ablationを行った結果,モデルはショートカットを学習しているだけで文章や質問の理解をしていないことを示唆する結果が得られた. https://t.co/mS1RYMIIMG」 / Twitter
[DL輪読会]What do Models Learn from Question Answering Datasets?
確率的推論と行動選択
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)

Qiita

ニューラルネットワーク、多様体、トポロジー - Qiita
出きたてホヤホヤ!最新オプティマイザー「AdaBelief」を解説! - Qiita

Twitter

モグラ叩き問題

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「出てきた問題を一つ一つfixする」ってやっていくと気がつかないうちにどんどんオーバーフィットしていくこともML特有の難しさですね。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「普通のIT開発では、人が書いたコードのリリース時に仕様通りのふるまいかを検証すればよい。一方MLシステムでは、かき集めた新データでMLモデルを再学習するたびにシステムのふるまいが変わるし検証も難しい。「誰もそれをテストしてないのである!」が起きるのがML Opsの怖さ。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはモグラ叩き問題と呼んだ方が良いかもしれない。見つかった予測ミスを修正しようとしてモデルや前処理のどこかをいじると、他の場所で新しいほころびが出てきてしまう。この新しいほころびが手持ちのデータ外(=本番環境や未来)であると絶対に気が付かない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これを防ぐには、「その修正が合理的かどうか?」に関して熟考する必要があります。「なんかわからないけど特徴量XがY~Zの範囲の値を取ると予測値が暴れるみたいなのでここは処理を分けて予測精度を保ちます」みたいな変な修正をやっていると事態は悪化するだけです。」 / Twitter

説明

Seitaro ShinagawaさんはTwitterを使っています 「ニューラルネット界の怖い人に襲われないためのdeep learningの説明 「人の脳を模倣した」→×調子に乗り過ぎています。まず襲われます。 「人の脳の神経回路を模倣した」→×まだ調子に乗り過ぎています。人目が多いところでは襲われます。 「脳の神経回路の仕組みに学んだ」→〇無難な表現です。」 / Twitter
Seitaro ShinagawaさんはTwitterを使っています 「脳の神経細胞のモデルから直接インスパイアされたのかと言われると、最初はヤリイカの巨大軸索だしなあという気持ちがあるので、「神経細胞が行う情報伝達の仕組みに学んだ」とかにした方がより適切と思いますが、私は大人なので空気を読んで「脳」は残しました。空気を読んだんです襲わないでください」 / Twitter
Katsuhito Sudoh (ja)さんはTwitterを使っています 「@sei_shinagawa ただの関数近似の一種ですが何か?という説明をしてたりします」 / Twitter
Seitaro ShinagawaさんはTwitterを使っています 「@katsuhitosudoh deep learningの端的な説明は私もそうしていますね。敢えて「脳の~」とか「人の~」とかみたいな言い回しをしたいなら上記のようにするかなということです。まあ私個人としてはこういう言い回しは嫌いじゃないです」 / Twitter
FadisさんはTwitterを使っています 「最初にこれを考えたヤツはニューロンから着想を得たかもしれないが、学習できるようにネットワークの進行方向を定めた段階で既に模倣もへったくれも無い別モンなんだよな」 / Twitter
ジョニーさんはTwitterを使っています 「ディープラーニングはブラックボックスなので、不具合があってもなぜ判断を誤ったのか分からなくて嫌がられることがありました。どこかの化学メーカーでも精度は良いけど説明力がないので、ディープラーニングじゃなくて結局線形回帰使った話を聞きました。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「データ解析の専門会社が日系製造業に深層学習ベースの異常検知システムを納入する際、いざ量産導入でテストとちょっと違う画像を投入しシステム破綻しクレーム、がしばしばあるそう。私は画像屋さんと工場両方の言い分がわかるつもりだが、そもそもDLって製造業に向いてない気が個人的にはしている。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「工場では「当面この製品ずっと作りますよ」と言いつつ半年後に設計変更して画像の感じが大幅変化なんてザラ。"設備"は短くても5年償却、即ち5年は初期の性能を維持すること前提。そういう意味で「汎用性」に乏しくなりがちの深層学習ベースシステムは製造業の商習慣に会ってないと思っている。」 / Twitter
A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu 再度学習させることは難しいんでしょうか?」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@ATOM01074529 もちろん画像解析の正論としては「画像が変わったのなら新しく学習しなさい」です。ただ工場としては「寝ぼけたこと言ってんじゃねえぞ!不良画像集めるのどんだけ苦労したと思ってんだ?これから製造するモノの不良画像なんてあるわけねえだろ!過去の画像だけで何とかしろ金払ってんだぞ」です。」 / Twitter
A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu あ。 そりゃ、不良品の画像はないですね。(恥ずかしい) 教師なし学習とか?(←機械学習何も知らない。) そもそも外観でわかる不良の割合って大したことない気もします。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@tako2539 工場はとくに、何か問題が起きたら即対策立案!放置はあり得ない、という文化ですので「ミス率0.1%だがミスの理由不明」よりも「ミス率5%だがミスの理由が明確」のほうが基本的に好まれますね。あとは「いざ困ったら自分達で微調整効く」も好まれます。」 / Twitter
ジョニーさんはTwitterを使っています 「@dr_vegepamyu 工場は問題起きたら再発防止策立案しますから、説明力があるモデルの方が好まれそうですよね。 私は一時期金融業界にいたんですが、金融でも問題があったら金融庁やお客さんに説明することが求められますし、説明力あるモデルが求められてました。DLも提案しましたが却下されましたね。」 / Twitter

histric-1

Fadisさんのツイート: "どうやらディープラーニング屋さんはネットワークを定義したDSLに沿って計算を行うフレームワークの実装はDSLのインタプリタの開発に他ならない事に気が付いてしまったらしく、ネットワーク定義を食べてLLVM IRを吐くコンパイラフロントエンドの開発が加熱しているらしい"
Fadisさんのツイート: "DLVM: LLVM IRに落とす事ができ、ニューラルネットワークに欲しい演算と型を備えたLLVM IRより高レベルの中間言語 https://t.co/WN9Ijyka92"
The DLVM Compiler Infrastructure for Deep Learning Systems
shunsuke_sasakiさんのツイート: "DLVMは作者がメンテナンスを止めちゃいました。”The authors of this project are no longer maintaining DLVM, but instead developing Swift for TensorFlow”… "
Fadisさんのツイート: "Glow: ネットワークのグラフを入力として、グラフの最適化を行なった物をLLVM IRに変換して、LLVMにターゲット固有のSIMD命令の利用や命令スケジューリングをさせる機械学習コンパイラ https://t.co/MoW4SWm9tB"
pytorch/glow: Compiler for Neural Network hardware accelerators
はじめてのにき(2018-11-11)
Aug. 2017
Intel® Nervana™ Graph: A Universal Tensor JIT Compiler
shinichiro hamajiさんのツイート: "Relayというか、グラフIRに対する関数型言語IRの優位性というのがさっぱりわからなくて、PythonベースのフロントエンドDSLで、ループを常に再帰で書いてあれば、unrollするか否かの選択を、デコレータへの引数などの方法で伝えられる、ということが思い当たった"
shinichiro hamajiさんのツイート: "ただ関数型スタイルでモデル書くのか……?という疑問と、別にRelayにそういうコードは無いというか普通にループしてるというか、 https://t.co/sMM9CKREcX にあるDSLすら実体ない気がするんだよなあ、ということで、よくわからん。このRelay PDFは論文というよりdesign docみたいなものな気がするし謎"
Relay: A New IR for Machine Learning Frameworks
TensorSpace.jsがニューラルネットワークの3D可視化フレームワークを提供
Fadisさんのツイート: "ニューラルネットワークの計算グラフを図にしたヤツ、「TensorBoardが生成するヤツ」よりもっと中立な規格ってあるんだろうか"
MLIR: A new intermediate representation and compiler framework
Mapping Spiking Neural Networks onto a Manycore Neuromorphic Architecture
takeoさんはTwitterを使っています: 「深層学習コンパイラやバックエンドの研究開発ツラすぎてこの分野の進化が止まりかねないという話 Machine Learning Systems are Stuck in a Rut https://t.co/arPRuTA1oV」 / Twitter
Machine Learning Systems are Stuck in a Rut
ソースコード解析職人さんはTwitterを使っています: 「@bonotake 昨日、読みました。 なかなか、得るものが多かったです。」 / Twitter
takeoさんはTwitterを使っています: 「@Vengineer この論文は割とネガティブな論調で書いてますが、でもコンパイラやってる人はみんなおんなじことを多少なりとも思ったことあるんじゃないかなぁって思います」 / Twitter
ソースコード解析職人さんはTwitterを使っています: 「@bonotake 画像処理を長年やっていたので、 データの並びはいつも気になるポイントでした。」 / Twitter
takeoさんはTwitterを使っています: 「@Vengineer 弊社でも割と議論の的になります」 / Twitter
FadisさんはTwitterを使っています: 「MLIRを吐くFortranフロントエンドFCのソースコードが公開された話。MLIRはTensorFlowが生み出したLLVM IRよりも高級な表現を維持する中間言語で、LLVM IR含むいくつかのターゲットに落とすことができる。LLVMには既にFortranフロントエンドf18があるが、それとは別 https://t.co/j2eTH7obI0」 / Twitter
The MLIR-Targeting "FC" LLVM Fortran Compiler Is Now Open-Source - Phoronix

histric-2

Daisuke OkanoharaさんはTwitterを使っています 「Enokiは複数プラットフォーム向け自動ベクトル化、微分化を備えたライブラリであり、define-by-runとコンパイル型の中間といえ、レンダリングのような数十万行程度の規模のコードを対象にできる。またテンソルだけでなくより複雑な入れ子データ構造も扱える https://t.co/yOqINrqovT」 / Twitter
FadisさんはTwitterを使っています 「これ、きちんと性能が出るように作ると大変面倒くさいし、性能気にせず素直に実装すれば一瞬で完成する。CNNってやってる計算自体は複雑じゃないんだよ」 / Twitter
がっちょ( ¨̮ )さんはTwitterを使っています 「畳み込みニューラルネットワーク(CNN)って0から自分で実装することって可能ですかね……? (実装期間は長くても4か月が目安) (むやみにやろうとするととても深い谷に落ちそうで怖い)」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「ディープラーニングは(規則はあるのだが)人間に理解できる低次元空間では中々規則が見えて来ないような問題で、かつ頑張って低次元への近似を行っても返って情報を損なうようなときに、よもや人間の理解がボトルネックなのだと認めて、データ突っ込んでアウトプットだけ見るのに適した方法。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「人間の脳を模擬してますとか、説明性を付与できます、とか半分デタラメだと思う。前者は、当初はそういう意図だったというのはあるかも。後者は、説明できるんだとしたら、それはニューラルネットワークの話ではなくて、そのデータがやっぱり低次元で十分だった、という話だと思われる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「deep learningが長足の進歩を遂げてるとは言え、K値とかオバマの顔写真復元とかの騒ぎのようにモデルなき予測の危険性は明らかだし、機械学習を補助として使うことは増えても、プログラマの仕事は、すぐには、なくならないんだろうなーって思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今から業界に入る人の引退までその状態が続くかわからんけど、いっそ、さっさとコンピュータになんでもまかせて、みんな遊んで(趣味に打ち込んで)過ごせる時代が来たらいいなと思う」 / Twitter
./note008.html
高卒工員プログラマーさんはTwitterを使っています 「困った時のニュートン法 まあ最小値付近の微分係数の扱いが微妙なんで 微分係数(の大きさ)がスレッショルドを切ったら微小変位法に切り替えるけどな」 / Twitter
FadisさんはTwitterを使っています 「ニューラルネットワークを使った機械学習というのは、どういう関係かもわからない関数をとりあえず何でも近似できるニューラルネットワークで置いて、最適化問題にして解いてしまえという物なので、効率の良い学習の為の工夫は多くの場合関数の形は分かっているが係数が不明な最適化問題に転用が効く」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「ニューラルネットワークは人間の脳を模したもの」とか言っても何も問題はないですね。所詮モデルなんだしどう思おうが勝手です。むしろuniversal approximation theoremみたいな実用とは無縁な定理を持ち出してどんな予測にも使っちゃう傾向の方が問題です。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「同時に、「ニューラルネットは人間の脳を模しており、人間のように学習や予測ができる」みたいな言説が独り歩きして各地であることないこと語られてしまっている現状もあるので、専門家としてその点に釘を刺しておくのは重要です。いずれにしても「モデルはモデル」という割り切りが重要。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓現実の複雑なタスクに対して具体的な要求仕様を定義し、実現可能な技術に落とし込むというプロセスにおいて、ディープラーニングはまったく実用的ではありません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「なので、煩雑な現実を避けて、それらしいサブタスクを設定してデモを魅せるというのが多くの企業がやっていることですが、残念ながら実応用へのボトルネックの解消には繋がっていないのが現状でしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「4年前ですが、この区別は未だに浸透していない感があります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「人の知能を模倣するための科学と、より一般的な予測・判断の科学とは、目指す方向がそもそも違っていることを今一度強調しておきたいところです。自分は企業のエンジニアとして後者の発展をより望んでいます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「近い将来に人と同程度の人工知能が実現して、今の職業をそっくりそのまま置き換える」みたいなストーリーは起きません。」 / Twitter
'Yuki’ KamitaniさんはTwitterを使っています 「深層ニューラルネットワーク(DNN)とヒトの脳との階層的な類似性を測る指標を作ったら、最近の「高性能」DNNは、あまりヒトの脳に似ておらず、物体認識精度と脳との階層的類似度の間には負の相関があった、という話。AlexNetやVGGがめっちゃ強い https://t.co/qEbuYw0WAk」 / Twitter
Kazunori SatoさんはTwitterを使っています 「AIというより、「人の手に負えない膨大な条件の組み合わせからいい感じの答えをざっくり見つけるアルゴリズム」として見れば、MLって単純に強力すぎるツール。映画マトリックスのように、世の中の様々な課題が高次元空間内の微分可能な関数として見えれば、従来のITとは全然違うんだなと感じられる。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「一般的なIT開発とは問題の解き方が全然違うから、何か異質なものとして「AI」って名前を付けて、想定用途を制限したり過剰に期待したり幻滅したりして納得したい人が多いのだろう。でも実態は計算パラダイムに過ぎず、使うCPUもソフトもごく普通。とても便利だけどクセのある新しいパラダイム。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「甘利先生の講演を聞いてる。 内容も研究スタンスも面白い。 そういえば機械学習の理論・数式を追うだけでなく、ピンと来ない時は、その意味するところを低次元に落とし込んで、実感的に捉えられるようにする工夫とか、甘利先生クラスでもこういう作業するのね、とか。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「自然言語文法は例外だらけなのに自然に感じるのは、法則に見えてホントは慣れで学習しているからで、慣れとはニューラルネットの重み付けそのものと。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「理系発見の多くも、先に結論を発見して、その後に論理性・無矛盾を完成させるパターン多い。 これも同様のニューラルネット構造が一因かな? (あと無意識が解を考え、意識が気づく構造も一因そうだが) 棋士も、先に良い手を思い付いてから、それが正しいかを確認する方向が多いという話も。」 / Twitter
1T0TさんはTwitterを使っています 「2功8罪 https://t.co/Nc2Fb2bruh」 / Twitter
1T0TさんはTwitterを使っています 「↑てっきり黒は全部罪かと思ったらそうとも言い切れないな」 / Twitter
UmeponさんはTwitterを使っています 「変数と同数のパラメータを用意すれば、パラメータを上手くチューニングすることでどんな問題も解けるようになるっ!」 / Twitter
UmeponさんはTwitterを使っています 「真面目な話、手動で弄る必要のあるパラメータが増え出したら「本質的な問題を棚上げにしてるんじゃないか?」という危機感を持ち遡ってアプローチから見直した方が良い。」 / Twitter

Kentaro FukuchiさんはTwitterを使っています 「ミュラー・リヤー錯視やポッゲンドルフ錯視が「ぼかし」によって説明できるかもしれないという杉原先生の説明は、畳み込み処理との関係を考えると非常に面白い。 https://t.co/h78r5prRFo https://t.co/NekyJgHBdm」 / Twitter
Kokichi Sugihara's Homepage (Japanese)
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的な感触としてディープラーニングは、一部の特定の応用領域を除き、ビジネス面では完全に終わっています。」 / Twitter
Yuta KashinoさんはTwitterを使っています 「(´-`).。oO( 誰も言わないのでつぶやいておきますが,DNN等のAIのビジネス適用,やはりブライアン・アーサーの言う基本技術のいくつかが未だ欠けていて,ほとんどの領域で人が期待する性能が全然達成できず,適用範囲があまりに狭すぎますよね….世の中も気づいてきたので,しばらくすると… )」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「とりあえず「大量にデータを食わせてハイパラチューニングすれば何とかなる」というパラダイムは応用領域では捨てた方が良さそう。その代わり、計算効率化やモデリングに関する知見などは、分解すれば良い部品はたくさんあります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「DNNを使って自動化したい」っていう話、一定のリテラシがある界隈では本当に聞かなくなった(かわりにAIが良く用語として使われてますが)。このあたりは研究よりビジネスの方が判断が冷たいというか飽きが早いというか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん人手を介さず自動的に精度の高い予測ができる技術だとか、そういうものは未来永劫重要なテーマではありますが、現状でそれは到底実現されていないですしされる見込みもないので、この辺を売り文句にしてビジネス提案するのは虚構に近いです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「要は、issueとsolutionの対応付けが、研究とビジネスとでぐちゃぐちゃになってしまっている。研究領域のissueから生じたsolutionを、そのままビジネスのsolutionとして使ってはいけない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「曲線フィッティングな深層学習が活躍できそうな領域に関しては、Andrew Ng先生の短い説明がありますね。 &gt;If a typical person can do a mental task with less than one second of thought, we can probably automate it using AI either now or in the near future. https://t.co/25bng87NuU」 / Twitter
Andrew Ng: What AI Can and Can’t Do
Ken McAlinnさんはTwitterを使っています 「深層学習が廃れることはなく、どんどんなにが得手不得手なのかがわかっていくんだと思うんですよね。個人的には人間が得意なこと(画像認識、運転、言語)は得手で人間が不得意なこと(経済予測、ビジネス意思決定)が不得手っていう区別になんとなく納得しています。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データが豊富に存在するある特定の課題を、深層学習なり強化学習なり最適化なりベイズなりドメイン知識なりを徹底的に組み合わせて解きにいく、はまだまだありそう。逆に、汎用お手軽予測ツールとしての深層学習の使い道はなくなりました。」 / Twitter

世界初!教師データなしで高次元データの特徴を正確に獲得できるAI技術を開発 : 富士通
20190529_xSiG_public
リザーバコンピューティング - Google 検索
masa-su/pixyz: A library for developing deep generative models in a more concise, intuitive and extendable way
Machine Learning Systems are Stuck in a Rut | Proceedings of the Workshop on Hot Topics in Operating Systems
C4ML
富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
MIT Tech Review: グーグルが発見した、機械学習が現実世界で使い物にならない理由

エキスパートシステム

エキスパートシステム - Wikipedia
人工知能「エキスパートシステム」とは?実用例で簡…|Udemy メディア
【図解】コレ1枚でわかる人工知能の3つのアプローチ:ITソリューション塾:オルタナティブ・ブログ
ディープラーニングと機械学習は何が違う?それぞれの特徴を解説|発注成功のための知識が身に付く【発注ラウンジ】
機械学習モジュール群を組み合わせて、最適なソリューションを提供するPKSHA Technology |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
ディープラーニングとエキスパートシステム(ルールベースAI)の使い分け方 |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
AIとシミュレーションを組み合わせ、データに乏しい状況でも意思決定を可能に
「<オージス総研をとりまく>人工知能技術の過去と現在(1)」 | 株式会社オージス総研
AIブームを支える「機械学習」~AIの現実的な始め方とは?~ | アシスト
n4200000.pdf
知識表現(ちしきひょうげん) - ITmedia エンタープライズ
知識表現

数値計算

その他

20200314
カハンの加算アルゴリズム - Wikipedia
spitbol/spitbol: SPITBOL x64 provides raw power and speed for non-numeric computation on the x86_64 architecture
SoftFP Library
LibBF Library
ferreiradaselva/mathc: C math library for 2D and 3D programming
OSQP solver documentation — OSQP 0.2.1 documentation
oxfordcontrol/osqp: The Operator Splitting QP Solver
log_(0.99)(0.01 / x)をx=0から200でプロット - Wolfram|Alpha
Wolfram|Alpha 日本語版:計算知能
インテル MKL | 数値演算・統計関数ライブラリー | XLsoft Intel
Mathematics for programmers (early draft)
Google、社内で利用するプライバシーに配慮した統計ツールをオープンソースで公開 | OSDN Magazine
金融市場トレーダーの行動法則をボルツマン方程式で解明 | 東工大ニュース | 東京工業大学
状態空間モデルの推定方法の分類 | Logics of Blue
UTokyo OCWx
FDTDで電磁界解析 - Qiita
微分方程式と差分方程式(漸化式)
擬似逆行列 - Wikipedia
Moore–Penrose inverse - Wikipedia
Roger Penrose - Wikipedia
イジング模型の定義 - MathWills
Jones on modulus without division
入門テキスト「測度と積分」 - Mathpedia
Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.
Point Cloud Library (PCL)
bin coordinates - Google 検索
JavaScriptの数値計算はどれくらい正確なのか

数理最適化

Fixstars Tech Blog /proc/cpuinfo

整数型 と Newton法 - Fixstars Tech Blog /proc/cpuinfo
収束加速法の紹介 - Fixstars Tech Blog /proc/cpuinfo
東芝シミュレーテッド分岐マシン (SBM) による最大カット問題のベンチマーク - Fixstars Tech Blog /proc/cpuinfo
「DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
「CuthillMckee法によるOpenFOAMのDIC前処理に関するスレッド並列化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
シミュレーテッド分岐マシン(SBM)で巡回セールスマン問題を解く - Fixstars Tech Blog /proc/cpuinfo

データをアクションにつなげる技術「数理最適化」とは? | DOORS
数理最適化による問題解決の実践的なアプローチ
【連載】ブレインパッドの数理最適化ブログ(目次) - Platinum Data Blog by BrainPad
第1回:最近学んだ数理最適化の定式化のチップスたち 【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第2回:ナップサック問題を色々な方法で解いてみた【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第3回:はじめての配送計画の列生成法【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第4回:在庫問題と配送問題をドッキング!大規模最適化時代で何が変わる!?【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第5回:なぜデータサイエンティストが数理最適化を行うのか【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
井山梃子歴史館さんはTwitterを使っています 「「実社会におけるあらゆる問題は、守らなければならない制約条件のもとで、何らかの評価指標を最小化あるいは最大化する制約付き最適化問題として定式化することができます。」 すき」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/v5L3opFuTw」 / Twitter
【プレスリリース】制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- | 日本の研究.com
ТагсановさんはTwitterを使っています 「異分野横断しててカッコいいなと思う一方で、論文ざっと読んでみるとグレブナー基底の計算が途中で必要みたいで、現実的な問題設定に対してどれだけまともに使えるのかは気になるところではある https://t.co/GmKGFMeEzB」 / Twitter
京都大学さんはTwitterを使っています 「制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- https://t.co/RH6Fb8BHRf」 / Twitter
制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- — 京都大学
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「問題は,計算機を増やすことで高速化される効果は最善でも線形であるのに対し,組み合わせは指数関数で増えることですね。」 / Twitter
UmeponさんはTwitterを使っています 「バイバインを使えば、どんな組合せ最適化問題も線形時間で解ける計算機って作れるのかな?同じ物がコピーされるだけだから難しいか。」 / Twitter

Eigen

Eigen
Eigen3 survey
C++行列計算ライブラリEigen入門 - Qiita
ベクトル/行列演算の定番ライブラリEigen - Qiita
C++の行列ライブラリ Eigenの紹介 | Preferred Networks Research & Development
C++線形代数ライブラリEigenの注意点 - Regen Techlog
pdf-eigennote.pdf
でらうま倶楽部 : Eigen - C++で使える線形代数ライブラリ
081791add.pdf
Code_Tips/Eigen.md at master · Shusei-E/Code_Tips

Karatsuba

κeenさんのツイート: "karatsuba、アルゴリズムオーダー的には速いけど実測はかなり桁数上がんないと意味ないみたいなこと聞いた"
Keiさんのツイート: "真面目にKaratsubaが筆算より速くなるビット数を探ってみたら、(32ビットで)1600より上、1800-1900以上で確実くらいだった。Wikipediaの320-640より大分上である。"
Masaki⊣Haraさんのツイート: "あまり把握してないけど、Karatsuba除算とかもあるらしいんだよな https://t.co/XKunRC5Yvw"
2 Karatsuba系列のアルゴリズム
κeenさんのツイート: "karatsubaのkaratsubaってなんなんですか?唐鍔?"
κeenさんのツイート: "人名なの…"
高梨陣平さんはTwitterを使っています: 「任意の桁数の数値の乗算を求める高速なアルゴリズム、Karatsuba Algorithm。最近、改善されたとか。HNで発見に至る歴史が紹介されている。またPythonのlong integerでも採用されている。 https://t.co/l8ApGtfj3j」 / Twitter
Hacker News 100さんはTwitterを使っています: 「Karatsuba Algorithm https://t.co/7V5hdwVZVv (https://t.co/6lwcKHQDzL)」 / Twitter
Karatsuba algorithm - Wikipedia
Karatsuba Algorithm | Hacker News

小清水さんとコンピューター数学

FMA (Fused Multiply-Add) について色んな観点でまとめてみた - 小清水さんとコンピューター数学
逆数の近似命令と精度補正について (その1) - 小清水さんとコンピューター数学
丸め誤差界の Hello World 的定理 -- Sterbenz の定理 - 小清水さんとコンピューター数学
計算環境の精度を当てる ― 解説編 ― - 小清水さんとコンピューター数学
計算環境の精度を当てる ― Intel CPU と Excel への応用 ― - 小清水さんとコンピューター数学
expm1 や pow などの 指数・対数函数 への考察 - 小清水さんとコンピューター数学
素数大富豪だけじゃなく HEX もやろう! ― 紹介編― - 小清水さんとコンピューター数学
Newton法でつながるコンピューターと数学の隙間 - 小清水さんとコンピューター数学
Excelでおかしな計算結果になった問題の正解値を求める - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (3) ―たった1度の型変換― - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (2) ― 三角函数を定義通りに ― - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (1) - 小清水さんとコンピューター数学
浮動小数点の丸めの方向と性質 (1) - 小清水さんとコンピューター数学
下書き - 小清水さんとコンピューター数学

行列

linear2017.pdf

自動微分・微分可能プログラミング・逆問題

『微分可能プログラミング』はどこから来たのか - bonotakeの日記
自動微分 - Wikipedia
自動微分を実装して理解する(前編) - Qiita
ボトムアップ型自動微分の実験 - kivantium活動日記
FadisさんはTwitterを使っています: 「なんとなくだけど、この4年程で「とりあえずニューラルネットワークにぶち込んでみた」系論文が減って、入れ替わりで「微分可能にすればこの式だって出力から未知の入力がわかるよね」系論文が増えた。optimizerが使える対象は何もニューラルネットワークだけじゃないもんな」 / Twitter
FadisさんはTwitterを使っています: 「コンピュータグラフィックスのレンダリングの過程を全て微分可能にすると、出力から入力を求めるのは最適化問題になり、結果の画像からマテリアルやメッシュを推定できるようになる。つまりイメージからレンダリング素材が作れるようになるから、今既存のレンダリング手法の微分が試みられている」 / Twitter
FadisさんはTwitterを使っています: 「逆レンダリングによって描かれている物の形状を求めたい場合、メッシュでは事前にトポロジが分かっている必要があるためうまくいかない。そこでポイントクラウドをレンダリングした事にして、そのレンダリング過程を微分して逆レンダリングした、という論文 https://t.co/ePByceofWt」 / Twitter
igl | Interactive Geometry Lab | ETH Zurich | Differentiable Surface Splatting for Point-based Geometry Processing
FadisさんはTwitterを使っています: 「ポイントは、全てのレンダリング方向から見えない(多様体の内側にある)点はどれだけ反復しても最適化の対象にならないため、そのような点は最寄りの表面まで押し出す点と、点群が偏るのを防ぐために1サイクル毎にポイントクラウドの密度を平滑化する点」 / Twitter
FadisさんはTwitterを使っています 「@Linda_pp そいつの最高にクールな所は、自動微分でレンダリングを逆回し出来るところ(レンダリング結果に近くなる入力を探索できる)」 / Twitter
piqcyさんはTwitterを使っています 「ピクセル(RGB)レベルの密なMap構築を行うDense SLAMについて、SLAMの構築プロセスをすべて微分可能にし勾配法による最適化を可能にした研究。フレーム間のマッチング・Map推定・グローバル最適化をそれぞれ微分可能な計算に置き換えている。」 / Twitter
Krishna MurthyさんはTwitterを使っています 「Today we release gradslam - automagically differentiable SLAM. Run dense 3D reconstruction in @PyTorch! And, it's fully differentiable :) Co-led w/ @S_Saryazdi, ably supported by @mautkiungli @duckietown_coo Webage: https://t.co/vxVDedldRY Paper: https://t.co/cN3tjc9e11 https://t.co/oV5np9CCjm」 / Twitter
About | gradslam
[1910.10672] gradSLAM: Automagically differentiable SLAM

線形連立微分方程式の行列形の解法

Shinji KonoさんはTwitterを使っています 「極線の証明は二次の等式を微分するだけなので難しくない。接線なんだから微分するのは当然だし。直接計算するのもたいしたことはないが、知ってると楽。 https://t.co/6it6mrwqNM」 / Twitter
美しい図形の性質(極線、二次曲線) まさかそこを通るなんて・・・ | 東大に文理両方で合格した男が綴る、受験の戦略
Shinji KonoさんはTwitterを使っています 「この手の「わけもわからず微分」系は便利。偏微分とかラグランジュの未定係数法とか知らないのは残念だよな。それ抜きで物理を理解できるとかあり得ない。エネルギー抜きで物理を理解するようなものでしょ。高校生でそれをやらないなんて。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ファインマン先生も「微分方程式はexp xをかけて積分」すれば良いとか言ってたし。それがなんなのかがわかるのは、線形連立微分方程式の行列形の解法を見てからだな。 y = d/dt x + a y = exp a x のd/dt が行列になるだけ。行列乗とかが出てきてしまうが。」 / Twitter

超離散化

1216-23.pdf
�������������� (�������������) - B41_006.pdf
03-Surikagaku-478-35-preprint.pdf
sample.dvi - 57_1015.pdf
超離散化について - Qiita
144446913.pdf
Article_No_03.pdf
abst.dvi - 8-003.pdf

統計モデル

正規分布と冪分布 - 増井俊之
冪乗則 - Wikipedia
スティーヴンスのべき法則 - Wikipedia
確率分布 - Wikipedia
パレート分布 - Wikipedia
Zeta distribution - Wikipedia
ジップの法則 - Wikipedia
mr-csceさんはTwitterを使っています 「進化計算など評価関数を何回も呼ぶ必要がありその評価関数が重いとき,その評価関数をの出力を予測するモデルを作り,そのモデルの出力を評価として使用するようなのをsurrogate modelingというらしい.前に某氏が評価関数重いしモデル作ろうと言ったときはマ?と思ったが一般的なテクニックだったのか」 / Twitter

レヴィ–プロホロフ計量

Ryoma Sin'yaさんはTwitterを使っています 「Lévy–Prokhorov metric 知らんかった. https://t.co/OB9rnr1fx5」 / Twitter
Lévy–Prokhorov metric - Wikipedia
レヴィ–プロホロフ計量 - Wikipedia

KL 情報量

カルバック・ライブラー情報量 - Wikipedia
相互情報量 - Wikipedia
KL情報量を概念的に理解する - PlayGround
正規分布間のKLダイバージェンス - Qiita
生成モデルで語られる Kullback-Leibler を理解する - Qiita
Kullback-Leibler
Kullback-Leibler
自己情報量、エントロピー、KL情報量、交差エントロピーと尤度関数 - sambaiz-net
research_mle
41.pdf
エントロピーからKLダイバージェンスまでの話 - HELLO CYBERNETICS
7c_12.dvi
www.cfme.chiba-u.jp
KL情報量
カルバック・ライブラ擬距離
InfoTheory05_4.dvi
情報理論の基礎~情報量の定義から相対エントロピー、相互情報量まで~ | Logics of Blue
エントロピーからKLダイバージェンスを理解する | マサムネの部屋
黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 KL情報量で確率分布間の違いを測ることについて普通の理解の仕方が普及していない感じがする。Kullback-Leibler情報量を「距離」の概念で理解しようとするのは的を外している。 Sanovの定理より、KL情報量は確率分布pの独立試行で確率分布qをシミュレートしたときの予測誤差とみなせます。続く」 / Twitter
エントロピー、カルバック・ライブラー情報量、最尤推定法 - 初級Mathマニアの寝言

Scalable Probabilistic Approximation

20200222
New Algorithm Allows PCs to Challenge HPC in Weather Forecasting
Low-cost scalable discretization, prediction, and feature selection for complex systems | Science Advances

ディオファントス方程式

宇宙物理たんbot@VTuber活動1周年!!さんのツイート: "(「62円切手または82円切手を買え」という指示だとして、)62円切手整数枚と82円切手整数枚で1000円分の組み合わせを作れという問題はみんな大好きディオファントス方程式 62x + 82y = 1000 ですわ。この方程式はマイナスの枚数を認めない限り「解なし」ですのよ。 https://t.co/4ekzM3KGUm"
大木 一真|モジカクしごとさんのツイート: "(伝え方が完全に悪かったのだけど、)インターンの大学生に1,000円分の切手を買ってきてとお願いしたら、1,000円切手1枚を渡された……。 聞いたら、そもそも切手を買ったことなんて今までなかったそう。これが令和……。… "
Hideyuki Tanakaさんのツイート: "ディオファントス方程式ってよく知らなかったけど、拡張gcdのことだったのか(´・_・`)"
Hideyuki Tanakaさんのツイート: "ディオファントス方程式調べてみたけど、任意の整数係数の方程式を指すらしいからこの形の方程式をそういうのは一般的過ぎると思いました(小並感)"
Hideyuki Tanakaさんのツイート: ">2変数2次方程式a x2 + b y + c = 0 の整数解の存在判定問題はNP完全問題であることが証明されている。(→計算複雑性理論 はぇぇこの時点でそうなのか(´・_・`)"

計算量

PDF

ad09-01.pdf
ad11-02.pdf
2.ho
アルゴリズムと データ構造
Microsoft PowerPoint - alg1.ppt [互換モード]
Microsoft Word - keisankigairon.ch4a.110420.doc
第2回 アルゴリズムと計算量
最大充足化問題に対する近似アルゴリズム
uchanさんはTwitterを使っています 「P=NPという結論を導く証明が書いてあるらしいPDFをチラ見しただけで,僕はその内容を理解できる自信がないです。最大独立集合問題に詳しい人に判断をゆだねます… https://t.co/HHXz3Chx15」 / Twitter
(PDF) Extract maximum independent set using eigenvalue relation
SDB-ex1_sample.pdf

Qiita

[初心者向け] プログラムの計算量を求める方法 - Qiita
計算量オーダーについて - Qiita
計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita

Wikipedia

ランダウの記号 - Wikipedia
計算複雑性理論 - Wikipedia
組合せ最適化 - Wikipedia
近似アルゴリズム - Wikipedia
線型計画法 - Wikipedia
線型計画問題 - Wikipedia
整数計画問題 - Wikipedia
グレブナー基底 - Wikipedia
代数方程式 - Wikipedia

Twitter

chokudai(高橋 直大)さんのツイート: "競技プログラミングの弱点は、「最悪計算量しか意識しない習慣がつく」ことで、これしかやってないのは割と危険。最悪計算量を意識するのは当然大切なんだけど、平均計算量、というか平均計算時間も結構大切。マラソンマッチ出るとむしろそっちを意識するのよね。"
chokudai(高橋 直大)さんのツイート: "ソートだったり二分探索だったりしてると「logなんて所詮定数倍みたいなもんだよねー!」って気分になるけど、平衡二分木とかだと「logはおもい・・・logはおもい・・・」って感じになる"
chokudai(高橋 直大)さんのツイート: "二分探索は中に処理そこそこ書くからlog感普通にある気がしてきた。"
Fadisさんのツイート: "計算量で有利なアルゴリズムを選択する時、そこには「データがキャッシュに乗り切らないくらい多い」という前提がある。数十、数百程度のデータを操作する場合「計算量を抑える為に複雑なデータ構造を採用する」より「線形時間を要するけどキャッシュに全部乗る」方法の方が速いという事がしばしばある"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最悪計算量と平均計算量をグラフにして、挟まれた部分を塗った時、最悪計算量が上界(=領域の上限)、平均計算量が下界、という言い方をするらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "dict(hashmap)検索が O(n) になる確率、qsortが O(n^2) になる確率。 これらの確率は0と考えてプログラミングすることが多い。 事実上0と見做す確率の閾値はどのあたりだろう…ハードウェア由来の問題を起こす確率に比べて充分小さい、あたりは最低条件な気はする。"
John Carlos Baezさんのツイート: "WOW! A new paper claims to have found a more efficient algorithm for multiplying large numbers. It supposedly runs in O(n log n) time - this had never been achieved before. One catch: it only works on numbers with at least this many digits: (cont)… https://t.co/jknld8INnm"
7594591200220899443さんのツイート: "nlognの掛け算ついに発見されたのか"
7594591200220899443さんのツイート: "(但2^(2^4096))よりでかい必要があり)"
7594591200220899443さんのツイート: "計算量の議論をする時にインフォーマルには「nが小さい時のいくらかの例外を除いて」みたいな言い方をするわけだけど、そのnが既知宇宙の全原子数よりもでかいというのは「いくらかの例外」っていうニュアンスで語るのは結構すごい(厳密にやるときは極限をとるからまあ、あまり問題にならないが)"
著者近影さんはTwitterを使っています 「計算量とかを気にするのって、明らかにプロファイル取って遅いとわかる場合か、可読性を失わない範囲である程度素朴に読める形のときとかだけど、時々計算量が〜みたいな不適当に最適化したがる会社とか人見るたびに適当にみんな計算量って言いたいんだな…みたいな気持ちになる」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b 計算量で最適化するのは愚だが、プロファイルとって遅いときに計算量を気にするかは時と場合による(多くの場合原因は計算量ではなく、I/O かオーバーヘッドの場合が多いのが経験則で、計算量改善すると遅くなる場合が多い)」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b 計算量は日頃から気にした方がいいというのは正解だと思うが、計算量だけを気にするのは良くない(計算量は結構指標にならない)というのが個人的な意見」 / Twitter
著者近影さんはTwitterを使っています 「@Mizunashi_Mana まぁそうなんだよな 結局、見方が偏った人種がプログラム書いてる中にそこそこの割合、規模感でいるんだなぁとか色々見て考えてて」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b いや単にこれは経験の問題だと思ってる。普通大学では計算量という指標しか習わないし、カバレッジやプロファイルの取り方とか習わないので」 / Twitter
著者近影さんはTwitterを使っています 「@Mizunashi_Mana む、言われれば確かに」 / Twitter
κeenさんはTwitterを使っています 「NP完全な問題、今のところ計算量がO(2^n)な解法しかないから基本は避けるんだけど、それはそれとして計算量がO(2^n)なコード書いたことないから一回くらいは書いとかなきゃって思ってる」 / Twitter
™お嬢様さんはTwitterを使っています 「O notation, 個人的には "f(n) in O(n)" とか "O(n) \subset O(n^2)" とかにしたいんだけど,分野の慣習が "f(n) = O(n)" とか "O(n) = O(n^2)" なので,できるだけ数式にしない方向の "f(n) is O(n)" や "O(n) is O(n^2)" で回避しようとしてます…….」 / Twitter
画力・博士号さんはTwitterを使っています 「( f∈O(n ↦ n) あたりになってほしいなあという気持ちがある)」 / Twitter
Yasunori OhtoさんはTwitterを使っています 「P=NP論文の証明と擬似コードを改稿しました。日本語版です。読んでコメント頂ければ幸いです。 https://t.co/c09I6ayOYk」 / Twitter
(PDF) Polynomial-time Extraction of the Maximum Clique Using Eigenvalue Relation

空間計算量とは|領域計算量|space complexity : 意味/定義 - IT用語辞典
時間計算量とは|time complexity : 意味/定義 - IT用語辞典
一週間で身につくアルゴリズムとデータ構造|応用編第1日目:アルゴリズムと計算量
Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章 計算量
計算量とBig-O記法 - 素人がプログラミングを勉強していたブログ
計算量のはなし - 赤い黒歴史を蓄積する
計算量
第74回 計算量の数学 計算量とは :はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社
オーダー記法の定義と大雑把な意味 | 高校数学の美しい物語
アルゴリズムで天地の差: 計算の手間
計算量 | Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章
アルゴリズムを評価する計算量について - bambinya's blog
» 開発新卒に捧ぐ、基本のアルゴリズムと計算量 TECHSCORE BLOG
組合せ最適化入門:線形計画から整数計画まで
20190511
「量子理論の副産物に過ぎなかった」──東芝の「量子コンピュータより速いアルゴリズム」誕生秘話 (1/5) - ITmedia NEWS
「世界最速・最大規模」──東芝、量子コンピュータより高速に組み合わせ最適化問題を計算するアルゴリズムを開発 - ITmedia NEWS
東芝 研究開発センター:研究開発ライブラリ 世界最速・最大規模の組合せ最適化を可能にする画期的なアルゴリズムの開発について-物流・創薬など社会課題を短時間で解決するサービスプラットフォームの構築に向けて-
Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems | Science Advances
計算複雑性を勉強するときに参照する本のメモ - 誰にも見えないブログ
PとNPについて - Yabu.log
NP問題における決定問題とはなにか - Yabu.log
NPクラスのNondeterministic polynominal algorithmについて - Yabu.log
Microsoft PowerPoint - ComputationTheory2
How to tackle hard combinatorial optimization problems arising in real applications? - Speaker Deck
時間計算量 - Google 検索
空間計算量 - Google 検索

固定小数点数

固定小数点数 - Wikipedia
Fixed-point arithmetic - Wikipedia
hdLab : 第10回「固定小数点の演算」(201302) ~ 21世紀のシステムLSI設計を支援する プロダクト&サービス
固定小数点演算について
固定小数
固定小数点とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
固定小数点型【変数の型】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
固定小数点数とは - IT用語辞典 Weblio辞書
固定小数点数
固定小数点と浮動小数点 - DSP入門(ディジタル信号処理入門)
固定小数点演算(こていしょうすうてんえんざん)とは - コトバンク
固定小数点数(コテイショウスウテンスウ)とは - コトバンク
固定小数点形式(こていしょうすうてんけいしき)とは - コトバンク

グレイコード

グレイコード - Wikipedia
Gray code - Wikipedia
グレイコードと実数
グレイコードを生成するだけの小話 - Qiita
グレイコードの特長は、何ですか? - 製品に関するFAQ | オムロン制御機器
グレイコード | ITと社会用語辞典 | IT用語辞典 | 日立ソリューションズ
グレイコード ‐ 通信用語の基礎知識
グレイコード バイナリ変換CGI
グレイコード
グレイコードとは (グレイコードとは) [単語記事] - ニコニコ大百科
グレイコードカウンタ

PC Watch

Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正 - PC Watch
NTTデータと広島大、組合せ最適化問題をGPUで高速解決する技術 ~GeForce RTX 2080 Ti×4で秒間1兆の探索が可能に - PC Watch

infoQ

AlphaFoldアルゴリズムがCOVID-19タンパク質構造を予測

POSTD

数値最適化のインタラクティブ・チュートリアル | プログラミング | POSTD
ハミング符号 : データの誤り検知/訂正をインタラクティブに学ぶ | コンピュータサイエンス | POSTD

スライド

NumPy闇入門
マルコフ連鎖モンテカルロ法入門-1
関数データ解析の概要とその方法

blog

二重振り子の精度保証付き数値計算 - kashiの日記
x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama|note
整数の平方根(切り捨て) | g200kg Music & Software
対数関数の超越性 - 記号の世界ゟ
解ける線形微分方程式の話 - 記号の世界ゟ
多元数について8枚のスライドでまとめてみたら | ポップラーン
確率分布をさわれるShinyアプリ「確率分布Viewer」に新機能を追加しました! - Dimension Planet Adventure 最終章 最終話『栄光なる未来』
整数の割り算を掛け算に変換 (3) - 七誌の開発日記
行列式という名前の由来ってどこからなのよ? - 備忘録
5次方程式の解の公式をガチで求めよう|きいねく|note
【TV出演】NHK(Eテレ)「テストの花道」~もどりま表の活用例他(数学って面白い!) - 永野裕之のBlog
「群」って何なの?「同一視」から始める群論 - アジマティクス
50年来の信号処理に関する謎が解かれる、逆高速フーリエ変換がついに一般化 | fabcross
なぜ相関係数rの範囲が-1≦r≦1か | おいしい数学
三角関数はなぜ重要か - 増井俊之
高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - CADDi Tech Blog

Qiita

線形代数を学ぶ理由 - Qiita
モンテカルロ法における境界条件の扱いについて - Qiita
数値計算の研究をしている学生が&quot;数値計算に潜むとんでもないリスク&quot;について話してみる - Qiita
Potts模型のモンテカルロシミュレーションコード - Qiita
高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - Qiita
離散フーリエ変換(DFT)の仕組みを完全に理解する - Qiita
numpy そっくりなヘッダオンリー C++ ライブラリ NumCpp - Qiita
ロボ太さんはTwitterを使っています 「見たら「ん?」となるエラーバーのグラフの話の記事を書きました。こんなグラフを見かけたら「ん?」と思いましょう。ちなみに振動を含む緩和過程でエラーバーを過剰推定するのは僕が実際に経験したことです。 https://t.co/xsqKusgERN https://t.co/oz7FAW0q62」 / Twitter
見たら「ん?」となるエラーバーのグラフ - Qiita
hrk先生さんはTwitterを使っています 「@kaityo256 @k_nitadori 悲しいことに、このようなグラフは論文査読や、査読を通ったはずの論文誌でも良く見かけます。さらには、エラーバーはSDと書いてあるのに上下非対称のものもあります。」 / Twitter
ロボ太さんはTwitterを使っています 「先のQiita記事、「指数関数に振動が乗っているとノイズと区別がつきにくい」というのがわかりにくかったみたいですね。このグラフ、Data Aが指数関数+正弦波で、Data Bが指数関数+ノイズです。観測間隔が周波数より長いと両者の区別がつきづらいのがわかります。 https://t.co/8WfkNuTacP」 / Twitter
ロボ太さんはTwitterを使っています 「これ、フーリエ変換すれば変なピークが立つので振動に気付くわけですが、そもそも「振動が乗っている」可能性に思い至らないとフーリエ変換しようとはしないでしょう。その場合でも、ちゃんとエラーバーをつければData Aではエラーバーが大きすぎるので「何かおかしい」と気づくことができるわけです。」 / Twitter
ロボ太さんはTwitterを使っています 「うーん、振動が乗ったデータのエラーバーの話、「データ間の相関」が本質で、「サンプリング周波数が大事だよね(標本化定理)」という話が本質ではないんですよ。例えばこの二つのデータ、片方はランダムで、片方はパイこね変換ですが、似たような感じに見えますよね(続く) https://t.co/7IxA2w9mNb」 / Twitter
ロボ太さんはTwitterを使っています 「で、それぞれ100個ずつ平均して分散もとめてエラーバーつけると、Data Aはまぁ普通かな、という感じだけど、Data Bは「ん?」と思うじゃないですか。実際、Data Aは100個中69個が平均にエラーバーがかかっててるのに対して、Data Bは48個で、「ん?」と思うわけです。 https://t.co/JtvCt6NCAb」 / Twitter
ロボ太さんはTwitterを使っています 「「見たら「ん?」となるエラーバーのグラフ」の記事に、パイこね変換の例を追加しました。この記事のテーマは「エラーバーからデータ間の相関に気づく」ことであり、「サンプリング周波数が大事だ(標本化定理)」ということではありません。 https://t.co/fd39kqmSv8」 / Twitter
超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討 - Qiita
FDTDで電磁界解析 - Qiita

Twitter

連立一次方程式・誤差

電子計算機の沼さんはTwitterを使っています 「でもコンテナに行列ファイル突っ込むだけで連立一次方程式とか固有値が解けると答え合わせが楽になるんだ 自分でソルバを書いたときにコンテナに突っ込むだけでEigenなりLisなりが呼ばれて,簡単に答えを出してくれるとパッと比較しやすい」 / Twitter
ひもになりたいにゃんにゃんさんはTwitterを使っています 「@Hishinuma_t 連立一次方程式の答え合わせは元の方程式に代入して確かめるんじゃダメなんですか?」 / Twitter
kashiさんはTwitterを使っています 「@Oo_nyannyan_oO @Hishinuma_t 元の方程式に代入したらぴったり0になるけど、実はめっちゃ誤差が入ってる、なんてこともないわけではないです。 https://t.co/Viy4qApkoB」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@mkashi @Oo_nyannyan_oO すごい例ですねw まぁそれにアルゴリズム間違っててうっかり収束してるけど他の問題では解けないとかもあるあるかなあと」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「@Hishinuma_t @mkashi @Oo_nyannyan_oO #Julia言語 なるほど A = [ 64919121 -159018721 41869520.5 -102558961 ] のとき inv(A) * A = [ 1.0 2.0 0.0 1.0 ] となって、第1列だけ偶然うまく行っているんですね。ちなみに A * inv(A) = [ 0.0 2.0 -1.0 2.0 ] こちらは全然ダメ。 https://t.co/dQnvwBmT82 https://t.co/hyqSuah3VQ」 / Twitter
kashiさんはTwitterを使っています 「@genkuroki @Hishinuma_t @Oo_nyannyan_oO この例題に関してはいろいろな見方があると思いますが、当然真の残差は0でなくて、残差の計算にも誤差が入って0になってしまうところが面白いです。あと、行列aの全成分を有理数にするにはRational.(a)と書けばいいんですね。勉強になります。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter

ルベーグ積分

Shinji KonoさんはTwitterを使っています 「ルベーグ積分っていうけど、ある意味普通の面積の計算で、測度論が入るとわけわかに。そこでは集合論は必須。そこで一階述語論理を出したのは歴史的な悪手で、高階直観論理が正解だった。で、それは圏論と同じだから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「岩波の現代数学概論は、それを中途半端にやった感じだな。」 / Twitter

histric-1

FFFumihiro MMMatsuiさんのツイート: "三角関数の件、単純に角度を突っ込んだら円の上での縦or横を返す関数っていう、それだけで色々な場面で便利な事は伝わりそうな気がするけど、不要論が出まくるのは、なんか加法定理とか倍角公式とかあたりが「あの謎の呪文の空欄を埋める科目が三角関数ってジャンル」的なイメージが根付いちゃうのかな"
FFFumihiro MMMatsuiさんのツイート: "それはまあ原因は不要論自体よりも、三角関数のテストで高得点をとろうと思うと三角関数とは何かを掴むのに時間をかけるより「三角関数=加法定理や倍角公式のコンボ技の構成要素」として暗記する方が有利になってしまうっていう、なんかそういうレギュレーションの抜け穴みたいなのに起因する気がする"
FFFumihiro MMMatsuiさんのツイート: "それでまああのコンボは「三角関数とは何か」みたいな基礎とは関係なくて、教科書で基礎的な扱いで習うけど本来はたぶん結構応用的なものな気がするし、確かに進路によってはその後一生使わないだろうし、「三角関数ってなんかあの謎コンボ覚えさせられるけど一生使わないやつでしょ」ってなるのかもな"
FFFumihiro MMMatsuiさんのツイート: "高校課程までの数学はわりと全般的に暗記ゲーの方が強くなっちゃう面あるよなあ。かといってテストを全部証明問題にするわけにもいかないだろうし現実的には中々どうしようもないんだろうな"
FFFumihiro MMMatsuiさんのツイート: "僕は定期テストとか存在しなかったから実際の感覚はよく知らんけど(なので偉そうに思ってる事言うとちょっと後ろめたさある) それでも数学は結構暗記してた部分(実際に三角関数関連とか)あるし高校課程までの数学で暗記というチート技が割と効いてしまうのはまあ本来はあれなんだろうなって気する"
FFFumihiro MMMatsuiさんのツイート: "たぶん僕は平均よりは高校数学の範囲の内容を実際に使う場面が色々あって利益を享受したほうかなあと感じるけど、それでもなんか心の中で数学の一部に対して漠然と苦手意識みたいなのが残ってる箇所はちらほらあって、それはたぶん当時に暗記に頼って押し切った事がある箇所なのかなという感じはしてる"
FFFumihiro MMMatsuiさんのツイート: "一方で数学って好きな人はとことん好きだよね。初対面で「〇〇論はお好きですか?では〇〇論は?」みたいな質問から始まって数十分くらい〇〇論についてマシンガントークが始まる事とかたまにあって、たぶん数学が超好きな人達の間ではそれで会話が始まるパターンもそんな珍しくないのかなと思ってる。"
FFFumihiro MMMatsuiさんのツイート: "しかし今書いてて気づいたけど僕もなんか会話の切り出し方がそういう系って指摘された事が昔あったしぜんぜん他人の事言えないかもしれない。コミュ力ェ…だし"
FFFumihiro MMMatsuiさんのツイート: "もちろん〇〇論とかから切り出すって意味ではなくて"
Fadisさんのツイート: "三角関数の必要性云々は、悩んでいるなら「コンピュータグラフィクスでもやって3秒で燃え尽きてきてください」ってだけの話なんだけど、同時に非線形関数である三角関数をいかに計算から排除するかはコンピュータグラフィクス屋が全力で知恵を絞る部分でもある"
Sheileさんのツイート: "sin/cosが無いと円を描く弾が撃てないし、atanが無いと自機狙い弾が撃てない。それに対数ができないとスコアシステムに困るし、行列ができないと3Dゲーム作るのに困る。英語ができないと新しい技術の取り込みや、DirectXのエラーを調べるのに困る。ゲーム作りたい人は、数学と英語やっときましょう。"
島鉄雄さんのツイート: "三角関数どころかガンマ関数もゲームで間接的に使われてる。 クォータニオンの Slerp の実装には acos が必要だけど、これのテイラー展開をウルフラムさんに聞くと、ポッホハンマー記号なるものが出て来て、それの計算にガンマ関数が使われてた。 面白そうな関数だけど、これ以外の使い道を知らないw… https://t.co/k6HmmOWMQC"
mはげさんのツイート: "30年前の名著「数値計算の常識」を読んでたらBASICで0.01を10000回足したら100.003になるとか書いてあった。まあ昔のPCなんてそんなものかなと思いながら、Visual Studio 2017で試してみたら同じ結果だったw… https://t.co/f1ZQXlojRv"
渋川よしきさんのツイート: "昔のの数値計算と同じ浮動小数点数の計算をやって、同じように計算誤差が出るぞってやつ、ある意味コンピューターサイエンスの教育の敗北では・・・という気がしないでもない(そういえば、GoならわかるシステムプログラミングでIEEE754は扱おうか考えてやめたんだった)。"
c1815(内閣調査室 技官)さんはTwitterを使っています: 「工学的に虚数の存在意義はオイラーの公式により三角関数を指数関数で表記できる事で、電気工学で広く使われる有用な道具です。「虚数の実現が厳しい」とか訳がわかりません。貴方もその存在の恩恵を受けています。 https://t.co/4PKz0q2HEj」 / Twitter
部品(本田翼)さんはTwitterを使っています: 「1960年代に発表されたフーリエ変換アルゴリズムの一般化であるCZ変換に対して、逆フーリエ変換の一般化アルゴリズムは未解決だった。それが50年かけてついに発見された|・ω・`)フムフム https://t.co/QzDtngRKFh」 / Twitter
Engineers solve 50-year-old puzzle in signal processing
応用数学たん(旧ファイナンスたん)さんはTwitterを使っています: 「ブラックショールズ方程式は解析解が出ているので、超高次元の偏微分方程式を数値計算するアルゴリズムの実験にも使われているのです。 確率解析学、数理ファイナンス、機械学習、数値解析 ☆3」 / Twitter
三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「「ループを使わずに1から100を順に出力するコードは書けますか」という質問に、凄腕たちがプログラム的な技巧を凝らした答えをする中、MSのデータサイエンティストが「1000/(999^2)を300桁まで計算すると答えが0.01002003…099100になるよ」とサラッと答えてて、どんな脳の使い方したら思い付くのそれ https://t.co/Ng3dv4ZS4K」 / Twitter
三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「元スレッド https://t.co/donuG6acMg その他の回答も含めて和訳してくれてる人 https://t.co/s0cMrfhD0s どんな頭の使い方したか類推してる人 https://t.co/xaR4sXBe5L」 / Twitter
How to print 1 to 100 in C++ without a loop, goto or recursion - Quora
ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora
「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita

histric-2

社会人でもOSを作りたいさんはTwitterを使っています: 「学生「マクローリン展開なんて,何の役に立つんですか?計算機で一瞬でsinを計算できるじゃないですか」 ???「sinの計算を実装できるようになる。計算速度と精度のバランスを自分で設計したりできるぞ」 (Newlibのsinの実装を読んだ感想)」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@uchan_nos 近似計算するなら別に定義域全体で収束する必要ないから収束遅いマクローリン展開なんて役に立たないじゃないですかー(煽り返し」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「Newlibのsinの実装を読むと,sin(x)のxが非常に小さいときはsin(x)~xという近似を使って,それ以外はマクローリン展開で計算してるぽい。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「数学詳しい人に教えて欲しいのですが,Newlibに出てくるこの近似って妥当なんですか? sin(x+y) = sin(x) + sin'(x')*y ~ sin(x) + (1-x*x/2)*y sin(x+y) = sin(x) + sin'(x')*y までは分かる。(これも厳密には近似なんだけど,まあ納得) ~ sin(x) + (1-x*x/2)*yが分からない。」 / Twitter
ねっけつさんはTwitterを使っています: 「@uchan_nos こんにちは。TLで今見かけただけですが、sin'(x) = cos(x) のマクローリン展開を1次の項で打ち切ったものではないでしょうか。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@nekketsuuu なるほど。1/2がどこから来るかなと思ったんですが計算してみたら確かにそうなりました。yが十分小さければいい近似になりそうです。」 / Twitter
ねっけつさんはTwitterを使っています: 「@uchan_nos (すいません1次じゃなくて2次でした)」 / Twitter
Nakatani ShuyoさんはTwitterを使っています: 「@uchan_nos sin の微分 cos を同様に展開してます」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「マクローリン展開じゃなくてテイラー展開だった」 / Twitter
kashiさんはTwitterを使っています: 「この本に、Newton法が解に収束せずに無限ループに陥る例を扱った章があって、「不安定周期解ではあるが丸め誤差のせいで安定的にその周期解に留まる」という事例が紹介されてた。 https://t.co/QlSD1JeVAd」 / Twitter
米津 アンさんはTwitterを使っています: 「矢崎成俊 著『実験数学読本』 色んな数学モデルを寄せ集めた本です。本書を読めば、わたしたちの身の回りからよりたくさんの数学を見出せるようになれるでしょう。扱っている数学は大学1年レベルですが、高校生が読んでも「数学の力ってすげー!」を堪能できる内容だと思います😆 #今日の一冊 https://t.co/huYujiZNNw」 / Twitter
kashiさんはTwitterを使っています: 「で、そもそもNewton法で解に収束せずに周期解に陥るとき、ほんとに不安定なのか、という興味を持ってあれこれいじってたら、こんな例を見つけた。方程式x^3-x+1.5=0に対するNewton法で初期値を1.5018719167693075...とすると、安定な3周期解になる模様。 https://t.co/bItfhPISsu」 / Twitter
kashiさんはTwitterを使っています: 「Newton法の反復が周期的になる例は教科書によく載っているけどたいてい不安定で、実際には解に収束するか無限に発散するかどちらかだ、みたいなのをどこかで見た気がしてて(妄想かも)、そうでもなくて周期解に陥ってしまう場合も普通にあるんだなあと思った、という話。」 / Twitter
kashiさんはTwitterを使っています: 「Newton法の反復の安定周期解って面白い発見じゃね?と思って調べてみたら先行研究があって、方程式が多項式で全ての解が実なら安定周期解は存在しない、複素解を持つ場合は普通に存在する、とのこと。 https://t.co/BaDetPVw2T」 / Twitter
S0002-9947-1986-0849472-6.pdf
FadisさんはTwitterを使っています: 「確かに微分可能な関数しか使っていない 確かに自動微分の結果で最急降下法にかけると解に収束する この微分を手で求めろという問題が試験に出たら単位を取れる自信がない みたいなのがゴリゴリまわってるのを眺めてる。計算機ばんざい」 / Twitter
だよもんフレンズは転職したいさんはTwitterを使っています: 「@math153arclight Python以前に、そもそもintel PCで計算してたら意味無い。カハン教授のparanoiaテストでバグるのがまだ直ってない、と言うか直す気無くてitanium使え、って言ってる。MIPSやSPARC, HP Precisionアーキを使おう!」 / Twitter
ロボ太さんはTwitterを使っています: 「数値計算をするときには、まず解析解がわかる系を計算して、答えが一致するか確認するといいですよ(数値解と解析解が微妙にずれてるグラフを見ながら)」 / Twitter
FadisさんはTwitterを使っています: 「第1種ベッセル関数を誤差逆伝播するのに何とかしてこれを微分できないかな、と思ったんだけど台形公式でバラして微分すると動くけど死ぬほど遅いヤツが出来て、テイラー展開で近似して微分すると次数上げても誤差が大きくて困ってた所に神のような論文を見つけてしまった https://t.co/dookUeJZp6」 / Twitter
The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors | SpringerLink
FadisさんはTwitterを使っています: 「次数を上げて行くとx=0近傍の吹っ飛んでる部分がだんだん広がって行くんだけど、10次でもこれだけ食いついてくる https://t.co/5Z6xpSHAzj」 / Twitter
FadisさんはTwitterを使っています: 「というかベッセル関数ってn-2次とn-1次の計算済みの値を使ってn次の値を高速に計算できるんだな…。このため0次と1次の場合だけ気合いで近似すれば任意のnについてn次の場合の近似が出来たことになる」 / Twitter
いぐにすさんさんはTwitterを使っています: 「@fadis_ n-1とn+1とかもあったようなと思ってググった https://t.co/HRgJXUNipD」 / Twitter
ベッセル関数(円柱関数)の公式あれこれ - 倭算数理研究所
FadisさんはTwitterを使っています: 「@ignis_fatuus 微分公式あるやん… (圧倒的数学ちから不足)」 / Twitter
いぐにすさんさんはTwitterを使っています: 「@fadis_ まあこれ数学ちからというより知ってるかどうかだから..」 / Twitter
FadisさんはTwitterを使っています: 「お前解析的に微分求まるのかよぅ…。めっちゃ頑張ってまともな速度で数値微分する方法探してたのに https://t.co/KKL1Raw2TH」 / Twitter
s.komataさんはTwitterを使っています: 「ハレー法は、ニュートン法の精密化(の一つ)である。それにしても、ここにもひょっこり顔を出すシュヴァルツ微分 https://t.co/K4HufevbIi」 / Twitter
Halley's Method -- from Wolfram MathWorld

histric-3

FadisさんはTwitterを使っています 「物理ベースな3Dグラフィクスでは全てのマイクロファセットについての積分が式について来て、反射ならマイクロファセットは完全鏡面反射する事にして出来るディラックのデルタ関数をぶつけて積分を潰せるけど、拡散はこの手が使えないからリアルタイムレンダリングで使うにはうまい近似が必要になる」 / Twitter
ゆうなさんはTwitterを使っています 「今日ほど内積の偉大さを知った日はない。 内積は基底変換、内積はフーリエ展開、内積はカーネル、… #数学デーinN高」 / Twitter
てぴ✨数学が大好きさんはTwitterを使っています 「@kawauSOgood リーマン幾何学をやるといいかもです(*´∀`)」 / Twitter
FadisさんはTwitterを使っています 「幾何においては、内積が「cos求めたのと等価な計算を時間がかかる三角関数の計算を陽に行わずにできる」という性質があまりにも便利なのであった」 / Twitter
小清水さんさんのツイート: "いつか紹介しようと思っている、定数との掛け算方法についての論文。三角函数の周期性で x - n * pi/4 みたいな計算で誤差がたまらないようにするために、いろんなところで使われている手法: https://t.co/QSHxyXWpYB"
MultFmacArith.pdf
FadisさんはTwitterを使っています: 「解析的に解けない理由は思い当たらないけど解くのが辛そうな方程式をとりあえずMathematica Onlineに突っ込んで、ノートが沈黙するのを眺めて、やっぱり解くのはやめよう、となる作業」 / Twitter
Teppei KuritaさんはTwitterを使っています 「Mitsuba2の微分可能レンダリングの簡単な例。目的となるレンダリング画像への誤差を最小化するようにシーンパラメータ(反射率等)を勾配法(SGD)等で最適化できる。左の壁は赤色が真値なのだが、適当な値で反射率を初期化しても最終的に真値に収束する。PyTorchとの統合可能。 https://t.co/xRCyO7hawW https://t.co/rniWlyVuol」 / Twitter
Differentiable rendering — mitsuba2 0.1.dev0 documentation
Kazuho OkuさんはTwitterを使っています 「@shirouzu 指数関数なので、新規を積分した累積の低は同じになるので、それを片対数グラフにプロットすると、同じ傾きになるかと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho 確かにその通りですね…指数は微分しても同じでした(笑) (ただこの調子だと、 (重症+死亡者) / 感染者、の比率は低下していくということで良いのですかね)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho いや1.1倍で同じなら、1.1^n day倍になるだけなので、比率は変わらないですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「直接の知人を1ホップって言おうと主張するの、確立された技術用語に別の定義を持ち込もうとしているという点で、爆発的な指数関数的増加を「指数関数的増加」に言い換えるの同等に非科学的な主張じゃないのかな cf. https://t.co/vZqfEWqV89」 / Twitter
ホップ (ネットワーク) - Wikipedia
monochromeさんはTwitterを使っています 「@miura1729 @uint256_t modって被非除数と除数の符号によって4パターンぐらいあって、しかも言語によってバラバラですよね。RubyとRust (LLVM) も違っていてハマった覚えが」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @uint256_t modも割り算もバラバラですよね。その点、Common Lispは全部用意する(3パターン)という男らしさ」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @s_isshiki1969 @uint256_t Schemeは6パターン網羅 (やりすぎ?) https://t.co/Ai69oiwjR6」 / Twitter
SRFI 141: Integer division
Masaki HaraさんはTwitterを使っています 「・割って掛けたらきっかり元に戻ってほしい→有理数ライブラリでいけます ・ルートして2乗したらきっかり元に戻ってほしい→代数的数ライブラリでいけます ・logしてexpしたらきっかり元に戻ってほしい→ちゃんとやるのは無理です」 / Twitter
Miura HidekiさんはTwitterを使っています 「ReduceやMathmaticaみたいな処理にすれば多分できる」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 記号処理というか項書換え系というか... 近似値が欲しいと言われるまで数値にしない :)」 / Twitter
tkrさんはTwitterを使っています 「行列積、転置行列作ってメモリアクセス局所的にするだけで計算時間半分になった メモリキャッシュ意識したらそんな変わるんか…」 / Twitter
電子計算機の沼さんはTwitterを使っています 「numpyだのscipyだのJuliaだのMatlabだのにBLASのラッパーみたいなI/Fの微妙に違うものが量産されたのは完璧にHPCの敗北で,もっと下のレイヤでHPCが主体となって早くBLASを作り直せば多種多様な異母兄弟みたいなのが生まれずに済んだんじゃないかと最近強く思う」 / Twitter
電子計算機の沼さんはTwitterを使っています 「あんなFortranで書かれた型縛りが強すぎるものを2020年にもなって後生大事にいろんな言語で使うためにみんなでラッパー書いて使おうっていうのが間違っている」 / Twitter

Shinji KonoさんはTwitterを使っています 「まあ、色々意見はあるが 微分方程式はexp xをかけて積分 だけで院試はだいぶ違う。未定係数の問題を出したところは知らん。畳み込み積はみた。あれは知らんと解けん。知らないのはダメだとは思うけど。」 / Twitter
FadisさんはTwitterを使っています 「積分を「解析的に解けるラッキーな関数の解析的な積分の方法を覚える」ところから学び始めるの自体が、あまり筋の良いシナリオではないんだよな」 / Twitter
horiemさんはTwitterを使っています 「格子法って有限要素法とかも含まれるのか (グリッドの差分法だけを指す言葉かと思ってた)」 / Twitter
てらモス♋️さんはTwitterを使っています 「差分法もデルタ関数でガラーキン近似してるだけなので実質スペクトル法(?)」 / Twitter
てらモス♋️さんはTwitterを使っています 「分野にも計算機にも寄らない共通の数値計算の基礎なんて微積と関数解析くらいしか無いよな(´・ω・`)」 / Twitter
ど ね ( 。 •̀ _ •́ 。 ) ( 群 )さんはTwitterを使っています 「これを利用して多項式の積をFFT使って高速に計算する方法があった気がしますね(畳み込みの Fourier 変換はそれぞれの Fourier 変換結果の積になるので)」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「そうか。多項式の積って畳込みそのものだったんですね。 https://t.co/Im0SY5RIFZ」 / Twitter
κeenさんはTwitterを使っています 「昨日rust-jpのslackで整数の平方根がとりたいけどメソッドがないって話題が上がってたので(非負)整数の開平計算実装してみた https://t.co/jsFSgjZLNg アルゴリズムはWikipediaでも参考にしてみて。 開平法 - Wikipedia https://t.co/L2mNx0H1re」 / Twitter
extract_sqrt.rs
開平法 - Wikipedia
Shinji KonoさんはTwitterを使っています 「学部の授業で連続だが至る所で微分不可能な関数で、三角波を細かくしていく、するとゼロになる。失敗。そこで諦めないで、それを全部足すとできるってなのが印象に残ってる。フラクタルみたいなので理解してたので解析的書けるんだ的な面白さがあった。」 / Twitter
Iwao ShumpeiさんはTwitterを使っています 「自称文系という中には、微分といわれると冷や汗をかき、積分なんていわれたら一日中ブルーみたいな人がいるけれど、「いま時速○○だから××時間後には△△あたりに着くな」などいうとき、普通に物体の位置を速度の積分で導出しているのだから、実はほとんどの人は日常生活で初歩的な積分は使えている。」 / Twitter
Iwao ShumpeiさんはTwitterを使っています 「物体の位置を微分したら速度、速度を微分したら加速度になる。当然ながら反対方向の加速度→速度→位置は積分。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そういえばいたるところで微分できない連続関数のグラフってあったな。どんなに拡大してもカクカクしているという。」 / Twitter
Genki TakiuchiさんはTwitterを使っています 「@shinji_kono フラクタルな曲線全般的にそんな感じですけど、多分ワイエルシュトラス関数かな」 / Twitter
Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「関数解析は自分的に必要性がよくわからなくて… でも、機械学習系に入ってきてるのか。収束とか問題になるしな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「部分積分はけっこうパターンマッチ的にめんどくさい技術で、名前がついていて「ここで使うぞ」と身構える感じ。プログラミングだとメソッドを抜き出すrefactoringに近い。」 / Twitter
Yusuke Hayashi 林 祐輔さんはTwitterを使っています 「渡辺澄夫先生の講義ノートと講演スライド.「統計的推測の問題が物理学と似ている構造を持つのは,単なる偶然なのでしょうか.それとも, 観測から真の分布を推測する,ということは物理学の一部なのでしょうか.」 1. https://t.co/64whBKegAn 2. https://t.co/GIULKJlnp0 https://t.co/qiaf6Uj3kh」 / Twitter
KJ00007905533.pdf
Mathematical Foundation of Statistical Learning - statphys20180312.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積といえばzipWith (*) v1 v2 ……え、長い?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積が利用されるのって「愚直にループを回すと遅い」問題か「愚直にループを書くと字面的にうるさい」問題の結果だと思ってる」 / Twitter

SVM

SVMの理論的な話 - genkami.github.io
機械学習アルゴリズムのしくみを解説 「サポートベクトルマシン」と「k-means法」とは:CodeZine(コードジン)

ビタビアルゴリズム

その他

ビタビアルゴリズム - Wikipedia
畳み込み符号 - Wikipedia
HMM viterbi
Forward filtering-Backward samplingによる単語分割でアンダーフローを防ぐ – ご注文は機械学習ですか?
マルコフ連鎖とビタビアルゴリズム(HMM)を F# で。 - Bug Catharsis
ビタビアルゴリズムをpythonで実装してみた - Screaming Loud
ビタビアルゴリズム
Viterbi アルゴリズム
無線通信における畳み込み符号化について
無線通信における畳み込み符号化について
ボクにもわかる地上デジタル - 地デジ方式編 - 符号化
畳み込み符号のプログラムについて(C言語) - 畳み込み符号とビタビ復号のプログ... - Yahoo!知恵袋
Viterbiアルゴリズムについて - プログラマ専用SNS ミクプラ
ビタビアルゴリズム【入門】具体例で分かりやすく解説!(Viterbi)
ページ 1
あやしいサイコロと『隠れマルコフモデル』 | 株式会社フォワードネットワーク
Viterbiアルゴリズム - 機械学習の「朱鷺の杜Wiki」

動的計画法

blog

動的計画法でフィボナッチ数列の計算を速くする。 - from scratch
Matrix-chain multiplication problem - Lilliput Steps
なぜdp「やるだけ」なのか ~動的計画法について考える その1~ - kuuso1のブログ
競技プログラミングにおける動的計画法更新最適化まとめ(CHT, MongeDP, AlianDP, インラインDP, きたまさ法) - はまやんはまやんはまやん
DPとは何か フィボナッチで - 簡潔なQ
連鎖行列積問題 : がぶ飲みミルク珈琲
Tech Tips: 連鎖行列積を動的計画法で解く
第13回 NVIDIAが提供する数学ライブラリ | G-DEP

PDF

PowerPoint Presentation
バイオインフォマティクスⅠ
shiryou-20160906-4.pdf
untitled

スライド

動的計画法を極める!
動的計画法
動的計画法 / Python 11 - Speaker Deck

GEMM

Nehalemアーキテクチャ向けDGEMMの高速化: 事例 | NEC
dgemm を使用した行列の乗算
dgemm によるスレッド化の効果の測定
インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化 | iSUS
dgemm によるスレッド化の効果の測定
gemm-一般行列・行列積 VI - LabVIEW 2017ヘルプ - National Instruments
shinichiro hamajiさんのツイート: "すべてのアクセラレータ作るベンダーに一番自信ある設定でGEMMやった時の数字を公表する義務を課してほしい"

BLAS

Wikipedia

Basic Linear Algebra Subprograms - Wikipedia
OpenBLAS - Wikipedia
LAPACK - Wikipedia
LINPACK - Wikipedia

ロボ太さんのツイート: "「ソフトウェアテスト」というべきか微妙ですが、HPLがちゃんとできるということは、ハードウェアベンダーがちゃんとしたBLAS職人を抱えている証左になります。昔は知りませんが、現在の石で行列行列積を書くのは非自明な技術です。自分でDGEMMを書いてみれば、その性能の低さに驚くと思い… https://t.co/PQ4jZPQTWD"
ロボ太さんのツイート: "科学技術計算の多くはBLASに依存しており、その基本はDGEMMです。DGEMMはアーキやSIMD幅に応じて書き直す必要があります。HPLをちゃんとやるというのは「そのアーキでちゃんとしたBLASを用意します」という、ベンダーの意思表示になります(もちろんこちらはBLASはBLA… https://t.co/rYHdoO34wP"
Hideyuki Tanakaさんのツイート: "BLAS専用ハードとかないのは、BLASってめちゃくちゃ関数がおおいから専用ハードなんて作っても意味があんまないからじゃないのですかね…。DGEMM専用回路ですら汎用プロセッサと比べてたいしてメリットないんじゃないかと言われているのに。"
Hideyuki Tanakaさんのツイート: "すでに現在のアクセラレーターってDP演算回路が全体の数割を閉めているらしいから、全部埋め尽くしても数倍にしかならないし、そもそもそれらにきちんと途切れることなくデータを物故見続けるためにはそれなりの量のバスと、キャッシュがどうやっても必要になるから、DGEMM専用回路でも2倍も行… https://t.co/w2fBpD3je0"
Hideyuki Tanakaさんのツイート: "というのをDGEMM専用回路つくりゃいいじゃんという指摘を僕自身でしてみたときに思った。そんなこともないよっていうハード設計者の人がいらっしゃったらおしえてちょー(´・_・`)"
Hideyuki Tanakaさんのツイート: "あとBLASで負荷が高いのはLevel3だから、それ以外はソフトで書いたほうがいいでしょっていう。Level2はどう考えても帯域ネックになるしな。"
shinichiro hamajiさんのツイート: "PEZYのおかげでLINPACKというやつがDNNと違って単にGEMMやってるだけでなくてもうちょい大変なことをやってるという認識が持てたということがありました。以前はスパコンてGEMMお化けなんでしょくらいの認識だったというか、なんでスパコンで多体問題とか解けるのと今でもわかっ… https://t.co/KytNh0mxQb"
BLASの簡単な使い方
IBM Knowledge Center - BLAS 関数構文

Qiita

制御理論としての動的計画法 - Qiita
意外と解説がない!動的計画法で得た最適解を「復元」する一般的な方法 - Qiita

動的計画法(ナップサック問題) - アルゴリズム講習会
Spaghetti Source - 連鎖行列積
ダイナミックプログラミング
できる動的計画法:ロッド切り出し問題 | プログラミング | POSTD
chokudai(高橋 直大)さんのツイート: "多分DPを狭義に解釈してる人は「メモ化再帰はDPではない」みたいに言いそうだし、これは完全に競プロ方言だと思ってる。(メモ化再帰はDPです)"
chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「全探索→貪欲→動的計画法の順序で書いたのは初めてだけど、これはこれで良いのよね。 全探索→動的計画法がアルゴリズム的には繋がりが良いのだけど、貪欲を挟む事で、「自明な改善が出来ないケースでDPが有効」ってストーリー性を持たせやすくなる。」 / Twitter
omuomuginさんはTwitterを使っています 「大学ではなぜか動的計画法で解きたい問題のダメな方法として紹介されたので、しばらく末尾再帰以外の再帰は悪手なんだと思ってた。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@omuomugin 動的計画法で解きたい場合は、それは確かにナイーヴな再帰関数だとあんまり良い手じゃない気がします(メモ化再帰は使い所ありますが)。」 / Twitter

PDF

coding_06.pdf
ohp12.dvi
nlp-programming-ja-04-ws.pdf
アラインメントはグラフで表現できる
<4D6963726F736F667420506F776572506F696E74202D2091E630338FCD8CEB82E892F990B395848D86979D985F2E70707478>

GitHub

Yuji-Kosugi/sysele
yk-tanigawa/201410HMM: HMM
ビタビ複号を行うプログラム

探索

その他

antirez/rax: A radix tree implementation in ANSI C
興味深いデータ構造:BK木 | プログラミング | POSTD
米Microsoft、最近傍探索ライブラリ「Space Partition Tree And Graph(SPTAG)」をオープンソースで公開 | OSDN Magazine
Sonic - 軽量でスキーマレスな検索システム
Googleが概念ベクトルを使用した画像検索を研究
最小二乗法 機械学習 - Google 検索
行列 微分 - Google 検索
ユークリッド距離 - Google 検索

文字列

python 文字列 flatten - Google 検索
v8 rope 文字列 - Google 検索
v8 rope 文字列 flatten - Google 検索
Kazuho Okuさんのツイート: "wwww これメンテし続けてる情熱がすごい! これでうまく行くのは、数値に変換する前にflattenしてるってことですかねぇ… "
Takuo Kihiraさんのツイート: "@kazuho さん、さっき @yosuke_furukawa さんに教えてもらったんですが、V8 で rope で切り貼りされた文字列を flatten するためにはこうすればいいらしいですよ! https://t.co/Nt1LGTRwt0"
flatstr/index.js at master · davidmarkclements/flatstr
Takuo Kihiraさんのツイート: "そうだと思います。最適化で殺されそうですが、今度 disasm のコード覗いてみて、Rope を flatten する処理にどんなのがあるのか見てみますw… "
お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
文字列アルゴリズムの学びかた - Hatena Developer Blog
qrintfの最適化 - RuJIT開発日記
h2o/qrintf: sprintf accelerator for GCC and Clang
最も割高なアンチパターン : 構造化されたデータを文字列関数で操作する「printfアンチパターン」について | プログラミング | POSTD
最近のruby-core (2016年7月) | Money Forward Engineers' Blog
どれだけ速く文字列からスペースを削除できるのか | プログラミング | POSTD
kmem_cacheさんはTwitterを使っています: "strncpy()・strlcpy()よりも使いやすくてセキュアなstrscpy()が追加されたと。 / “Linux 4.3-rc4 Kernel Released: Adds A New & Better String Cop…” http://t.co/ztQJvCSuRl"
Hirochika Asaiさんのツイート: "strtok()にobsoleted by strsep()って書いてあるけど、strtok()とstrsep()の挙動が違う。macOSのstrtok()は連続するセパレータは省略してstrsep()は空文字を返す。POSIX的にはどっちが正しいんだろう…?"
文字列アルゴリズム Advent Calendar 2016 - Qiita
文字列検索アルゴリズムいろいろ - Qiita
SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | プログラミング | POSTD
rapidstring: rapidstring
boyerjohn/rapidstring: Maybe the fastest string library ever.

ビットベクトル

Kozonoyuki's Blog: ビットベクトルによる集合
C言語 ビットベクトル 集合 要素数の調べ方について - ビットベクトルを用い、集... - Yahoo!知恵袋
学生ゼミ 10/25 - JP@IKN
4.2.pdf
汎用kumAGIさんのツイート: "簡潔ビットベクトル、高速なのはいいんだけど構築のコストが大きいので検索が支配的なコストの場合に使うしか無くてDWHとかIMEとか使いどころが難しいのでは…。"
「ビット演算・ビットベクトルとは」を理解する - Qiita
簡潔ビットベクトル(完備辞書) - Mister雑記
簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
簡潔データ構造 - Wikipedia
簡潔データ構造超入門 ~つくって学ぶ簡潔ビットベクトル~ - EchizenBlog-Zwei
簡潔データ構造超入門III ~簡潔ビットベクトルで転置インデックスを効率的に実装する~ - EchizenBlog-Zwei
整数ベクトルからビット ベクトルへのマップ - Simulink

intrusive container

侵襲・非侵襲

関数呼び出しのトレース - yohhoyの日記
python - How do I print functions as they are called - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "C++は侵襲型のリストやマップなども用意して欲しいところ。 (できれば複数リスト対応できるもの) 非侵襲型=insertだけでアロケータ必須とか、要素内部を漁ってもイテレータが取れない、という制約になっている。"
SODA Noriyukiさんのツイート: "Boostにはあるし、言語標準の方でも議論はしてるっぽいですよね https://t.co/EtGBKKzf3o… "
Intrusive Containers

OSC2019東京・春出展さんのツイート: "Linuxカーネルのリンクリストは余計なアロケーションがなくて効率はいいんだけど、要素となるデータ構造と、それを入れるコンテナの種類が密に対応しちゃうのが気持ち悪い。"
SODA Noriyukiさんのツイート: "intrusive containerって奴ですね # これに対しSTLやglibみたいな奴は non-intrusive container Linuxに限らず他の OS でも似たような構造はあるし(*BSDだと <queue.h> や <tree.h> など)、ゲームとか組み込みの世界でもよく欲しくなるのでC++にも入れようって話が出てたり https://t.co/EtGBKKzf3o… https://t.co/EK4OaKn9jr"
SODA Noriyukiさんのツイート: "元となるデータ型を変更しないといけない(intrusive)という欠点は当然あるので、適材適所で使うものですが…… "
_さんのツイート: "Boost.Intrusive とかありましたね https://t.co/9dd13XN7Dx"
Chapter 19. Boost.Intrusive - 1.64.0
OSC2019東京・春出展さんのツイート: ""intrusive container"っていう呼び方は初めて知りました.ありがとうございます!とあるデータ構造を,ここではリンクリストで,こっちではarrayリストで,こっちではsetで,みたいにしたかったらintrusive containerは不向きですね.… https://t.co/QfDH6bELcN"
SODA Noriyukiさんのツイート: "arrayは無理なので向かないけど、(mapあたりで実装した)setとlistなら可能だし、わりとしょっちゅうやります。設計時にそのデータ型が属するcontainerの種類や数が不定だったりすると不可能ですが。… "
OSC2019東京・春出展さんのツイート: "ああ,そうか.ポインタで繋げるタイプのコンテナなら実現できそうですね.… "

疎行列

疎行列格納形式の話 - krustf の雑記
CRS形式 - JICFuS Wiki
疎行列のデータ構造入門再び - nursの日記
大規模疎行列のデータ構造とアルゴリズムその3 - nursの日記

ハッシュ

merkle DAG

ブロックチェーン処理に特化した中国製ファイルシステム「TCFS」 - PC Watch
IPFS入門 : 新たなP2Pハイパーメディア分散プロトコル | POSTD
トランザクションデータを要約する技術「マークルツリー」
[Japanese] Patricia Tree · ethereum/wiki Wiki
暗号学的ハッシュ関数 - Wikipedia
データのバージョン管理が可能な分散データベースNomsのイントロダクション - Qiita
ipfs.key
【次世代のインターネット】IPFS(Inter Planetary File System)で遊んでみた。 : 暗号通貨って何? es's website

マークル木

Go

Kentaro Haraさんのツイート: "なかなか表舞台の話題に出てこない技術に Trillian(https://t.co/E5vOG1cgwA)というのがあって、個人的にはブロックチェーンとほぼ同等のことができて、かつブロックチェーンよりよほど将来性がある技術だと思う。オープンソースになってて、SSL認証などですでに実用化されている。"
google/trillian: Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.

Kazuho Okuさんのツイート: "公文書の記録にgitとかブロックチェインとかみたいな話を目にするけど、普通はMerkle Hash Treeを使って部分検証を可能にするんじゃないの?"
Kazuho Okuさんのツイート: "ええ。Certificate Transparencyみたいなお金にならないものでさえmerkle treeで実現できてるわけで、公文書ならハッシュチェインで良いと僕も思います… "
ハッシュ木 - Wikipedia
Merkle tree - Wikipedia
データ検証などで利用するMerkle Treeのメモ | Siguniang's Blog
トランザクションデータを要約する技術「マークルツリー」
ビットコインの技術 Merkle tree(Hash tree) プログラミングJava
ビットコインとマークルツリーとマークルパスと - とってもやさしいビットコイン
【連載】暗号通貨ってなんだろう?⑦「第五部『その他』」 – びりあるの研究ノート
ビットコインとは何か? 第2回:ビットコインの仕組み(ブロックチェーンの構造) - ビットコインの解説 | Bitcoin日本語情報サイト
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイル破壊検出用の並列ハッシュ値計算を考える。 ファイルデータを例えば256KBブロックで分割し、インターリーブ的にn本のストリームに見立てる。 ストリーム毎にハッシュ値を取り、最後にハッシュ値*nを並べてハッシュ値を取った場合、上記目的用としての品質はどの程度担保されるかな…?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、md5やsha1記録用としては使えないので、イマイチではある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "良く似たものに、merkle-treeがあり、70年代の終わりからすでに分散ハッシュ計算方法として、実績がある様子。 https://t.co/B1IiFBGWAI"
Dan Kogaiさんのツイート: "ZFSはすでにブロック破壊検出と可能ならば修復も標準でやってくれるのだけどそれとは違う?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ZFSやbtrfsでは、こちらに書いたmerkle-treeが使われているみたいですね。 https://t.co/10YzrZNOlD 元々の動機はこちらに。 https://t.co/OWW9VhcYYT… "
鯉江さんのツイート: "AES-NIつかってGCMでチェックするのが早いと言ってる人がいたのを思い出しました。 https://t.co/XC2UX2GCzW https://t.co/MdzlQ0pMOb… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、いいですね。… "
IPFSについて勉強した - mizchi's blog

khash

libgit2の内部データ構造: strmap - Qiita
attractivechaos.awardspace.com
SW-1202-2282-2063さんのツイート: "@yukihiro_matz @mirichi 参考にされたオリジナルのkhashはこれですかね? https://t.co/4X9lsJlD0c"
mrubyでkhashの使い方がまずいせいで起きる現象(putするまえにgetしてない)
klib/khash.h at master · attractivechaos/klib
Klib — a generic library in C
attractivechaos/klib: A standalone and lightweight C library

SipHash

SipHashについてのメモ - Qiita
SipHash - Wikipedia
SipHash: a fast short-input PRF
siphash.pdf
jedisct1/siphash-js: A Javascript implementation of SipHash-2-4
veorq/SipHash: High-speed pseudorandom function (reference code)
Change Siphash to use one of the faster variants of the algorithm (Siphash13, Highwayhash) · Issue #29754 · rust-lang/rust
SipHashとAdvanced Hash Flooding - 不意になにかを残すブログ
SipHash — Idea of the day
siphash 0.0.1 : Python Package Index
Yusuke Endohさんのツイート: "rust が案外速いと知って、じゃあなんでこのコードは遅いんだろうと今更 perf report 見てみたらハッシュ関数が半分以上占めていた。siphash は遅いんだなあしみじみ"
DSAS開発者の部屋:最近の Python-dev (2017-02)

MurmurHash3

MurmurHash3 · aappleby/smhasher Wiki

xxHash

xxhashの紹介 - KengoSawa2の技術的ななにか
Cyan4973/xxHash: Extremely fast non-cryptographic hash algorithm
xxHash - Extremely fast non-cryptographic hash algorithm
Synergy KK - 02-08Silverstack - オフロードとバックアップ -xxHash、MD5 / SHA-1チェックサム方式とMHL
使った node.js ライブラリ – xxhashjs / xxhash « Ooharabucyou
xxHash - a hash algorithm as fast as memcpy
xxhash 1.0.1 : Python Package Index
XxHash - Wikipedia
xxhash
ハッシュ関数 xxHash の入力を32bitに限定した場合に重複した値が出ないことを確認したい - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "ベリファイ用ハッシュ計算のデフォルトは、xxHashにしようかな…"
Kengo Sawatsuさんのツイート: "server2012<-80gbps->server2012 で、検証してみたところ ベリファイなし:3000MB/Sec(たぶんハード上限) xxhash:1500MB/Sec MD5:300MB/Sec SHA1:340MB/Sec ハッシュ計算がネックになっているので、記録用には使えないが壊れてないことは保証されるハッシュがあってもいいのかもしれませんね。(有料?)… https://t.co/ACQZ2QpC36"
Shirouzu Hiroaki(白水啓章)さんのツイート: "並列版xxhashを考えてみます(笑) 何並列に分割するか、考えてどころですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHashをストライピング的に並列処理した場合の速度実験。 (i5-8600K(6コア)、チャンクサイズ16KB、ストライプ数16) ワーカースレッド数(6)で 15.2GB/s、(4)で 12.5GB/s、(2)で 6.8GB/s、(1)で 3.5GB/s に。 待ち合わせオーバーヘッドはあるものの、使う価値はありそうだな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "上記実験では、1MB毎に待ち合わせした場合の値。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHash64 の速度の件、ビルドオプションを /Ob1 → /Ob2 (inline指定のinline化 → 可能な全てのinline化)で、3.7GB/s → 13.3GB/s に向上、100Gb環境でもマルチスレッド版必要なさそう。 (逆に利用側での #define XXH_INLINE_ALL は効果なし)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、v3.52をリリースするかな、xxHashデフォルトに変更して。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "付記。ビルドオプションは xxHashライブラリのビルドオプションのみ変更。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MT化xxHash / オリジナルxxHashで比較実験。(i5-8600K) ハッシュ対象が6MBの場合、60GB/s / 14.3GB/s となり、1GBの場合、27GB/s / 13.4GB/s となった。 そしてMT化版は 3スレッド指定で性能上限に達する。 だいたい理由は判るが面白い。… https://t.co/9FtZC0lvuz"
xxHashメモ(VC++用Tips、MT実験)
SHIROUZU Personal Log(2018-07-08)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「知らないうちに xxHash で 128bit が定義されていたようだ。 https://t.co/NowpG61eeH ちなみに xxhashの作者はハッシュ品質テストにSMHasherを使っている様子…これが業界的にはデファクトなのかしらん? https://t.co/n6GXjFkMVK」 / Twitter
xxHash/xxh3.h at dev · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SMHasherは「ハッシュテストの DieHarder を目指している」とのこと。 https://t.co/0nOsBumaP3」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3(128bit)は、従来版より性能が高いらしいが、まだ実験版。 (10月の最新リリースでハッシュ値が変更されたが今後もありえる) https://t.co/9TkMrdl8iR」 / Twitter
Releases · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「従来の xxHash(64bit) に比べて、xxHash3 はSSE/AVX利用で性能向上が著しい(2-3倍)。 正式リリース(v0.8)になり次第、こちらをFastCopyのデフォルトにするかな。 (今もさらなる性能向上のPRが取り込まれている最中っぽい) https://t.co/n6GXjFkMVK https://t.co/DBC6a6Lx5x」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash(64bit)の並列化実験(=通常版と値が変わる)で 13GB → 60GB/sまで改善した時のメモ。(2年前) https://t.co/SCuw1ulL8S」 / Twitter
xxHashメモ(VC++用Tips、MT実験)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ようやくxxHash3 v0.80 リリースと。 (このリリース以降、128bit xxHash 値が将来リリースでも維持が保証される) https://t.co/sWDmn0hsnh」 / Twitter
Release xxHash v0.8.0 - Stable XXH3 · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3を含む、xxHash v0.80 がリリースされた、の方が正確だった。 xxHash3 は 128bit が使えるのに加えて、従来のxxHashに比べて処理性能も約1.5倍に向上。 https://t.co/K3DWI1qRVp」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、xxHashのYann Colletさんは zstd や lz4 の作者でもある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHashは x86系だけで 通常 / SSE2 / AVX2 / AVX512版 と4実装が含まれているのだが、CPU毎の最適実装への動的な切替は VC++ ではビルドできない。 (ので、自動切替を自前で用意したり) https://t.co/XBfW3qcKvj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K で 1MB * 60000 = 60GB分の xxh3(128bit) を計算するとこんな結果に。 通常: 6.0s SSE2: 3.1s AVX2: 2.4s (なお、もっと上位CPUでないとAVX512は使えないが、世評を見る限り、大して性能向上しないのではとも)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても xxh3、CoffeeLake i5 で 25GB/s 出るのは大したもの。 参考までにxxHash時代の記録。 https://t.co/SCuw1ulL8S」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は SSD RAID などで、I/O が高速化しているので、ハッシュ値計算がボトルネックになることがあるため、高速ハッシュ計算はとても大事。 (md5だと専用スレッドで計算しても間に合わない) https://t.co/A9kiB1nHKc」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu コピー時の同一性検証ならGCMみたいなMAC使った方が速かったりしません?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho xxh3は非暗号学的ハッシュなので非常に軽く、手元のi5-8600Kで25GB/s、公式サイトだと 30GB/s くらい出ているのですが、GCMでもこのくらい行くのでしたっけ…? https://t.co/GaHddSLjZL」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu あーすみませんmd5しか見てませんでした。gcmだとその条件で6GB/s程度は出ると思いますが10GB/sは行かないと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash作者のYann Colletさんに確認したところ、VC++では SSE2/AVX2/AVX512の動的切り替えは、下記のようなソース分割コードしか実現不可能という結論に。 https://t.co/qr9RCzQ5B7」 / Twitter
shirouzu/xxh3_sw

hash

kbcl0_0004 - essen-wiki
ドッグさんのツイート: "Facebook が開発した高速でメモリ効率の良いハッシュテーブル実装 F14 が Folly C++ ライブラリの一部として公開したのか.記事内では具体的な最適化の内容について解説されてる | 'Open-sourcing F14 for memory-efficient hash tables - Facebook Code' https://t.co/smzRYWwWks"
Open-sourcing F14 for memory-efficient hash tables - Facebook Code
ドッグさんのツイート: "ただし std::unordered_map とかが提供している reference stability は F14 では保証されないのか"
ドッグさんのツイート: "ハッシュ値が衝突すると衝突の解決のために普段とは違うパスを通らないといけないから CPU が分岐予測を外す → 衝突を減らすのが大事.とはいえナイーブにテーブルの初期サイズをデカくすると当然メモリ効率が悪くなる"
ドッグさんのツイート: "そこでスロットごとではなくチャンク (複数のスロットの塊) ごとにハッシュ管理して,検索時はそれぞれのチャンクをベクタ命令で並列に検索.二段構えになる分普通のハッシュテーブルより処理は多くなるけど,トータルとしては速くなる"
ドッグさんのツイート: "要素をポインタで間接的に持つ F14Node,要素を直接値で持つ F14Value,要素を配列に置いて配列で持つ F14Vector の複数のメモリレイアウトを検討して F14Value と F14Vecror のハイブリッドにしたらしい (F14Fast)"
ドッグさんのツイート: "C++ 的に頑張った点として, std::string をキーに持つテーブルは std::string_view で no copy に検索できるようになってる ,noexcept でムーブ出来ない型の要素を入れた時は [[deprecated]] で警告を出しまくる (ウケる) これは経験的に大抵 noexcept 付け忘れてるケースがほとんどのため"
汎用kumAGIさんのツイート: "大昔に作ったスライド、「あなたの知らないハッシュテーブルの世界」これslideboomってサービスに上げてたけどサービス終了したしアニメーションが入ってるせいかslideshareに上がらなかったのでとりあえずdropboxに置いて欲しい人に届くように公開。内容は古いです。 https://t.co/I1pxAshYt0"
あなたの知らないハッシュテーブルの世界.pptx
Shirouzu Hiroaki(白水啓章)さんのツイート: "完璧なハッシュ関数だと、fa fb の衝突はそれ以上改善できなさそう。 ただ、fa fb に加えて、ダミー文字列mを付与して、f(a+m) f(b+m) も行って、fa+f(a+m) と fb+f(b+m) で512bit比較が許容されるなら衝突改善できそう。… https://t.co/tD9Q5F6geC"
とつげき東北⛅さんのツイート: "問題: 1/(2^256)の確率で衝突してしまう暗号学的ハッシュ関数fがある。入力に対する出力は256bitで、衝突以外は「安全」だとする。 原文としてaとbがあるとする。xをハッシュにかけたハッシュ値をfxのように書く。 f以外のハッシュ関数がない場合に、faとfbの衝突を少しでも回避する方法を考察せよ。"
とつげき東北⛅さんのツイート: "そういう意図でした。 文字列を連結した場合……と書くとヒントになりすぎるし、240文字で制限あるしで困りました。 ちなみに「完全な」ではない場合の定義も曖昧で、aと何かを連結したものと、bと同じ何かを連結したものもまた衝突するなら、解なしぽいですね。 ご回答ありがとうございます!… https://t.co/HyQpVZWfdC"

QHash

島鉄雄さんはTwitterを使っています 「古い記事だけど辞書のベンチマーク比較サイトがあった。 これ見るとQHashがやたら速いし省メモリ。 早速ソースコード見てみたら、struct Span と言うデータ構造が肝のようだ。 要するに仮想記憶の様に所々しかメモリが確保されてない巨大配列を作ってるようだ。 これは良い。 https://t.co/RM9rjQZQje」 / Twitter
Benchmark of Dictionary Structures
島鉄雄さんはTwitterを使っています 「Boost のハッシュ(unordered_map)も十分速いし省メモリだから、今は std::unordered_map を使っておけば間違いないのかもしれないけど、ソースコードを見ても何やってるか全然分からん… その点 QHash はかなり読み易い。」 / Twitter

Go

意図的にプログラムの動きをランダムにしてバグを早期発見するテクニックについて|Rui Ueyama|note
Kazuho Okuさんのツイート: "@rui314 ネットワーク界隈だとossificationを防ぐためのgreasingという言い方をするので、そういう単語を紹介してもいいのかなと思いました cf. https://t.co/ZNyY1AadfS"
Rui Ueyamaさんのツイート: "@kazuho そう、TCPとかだとossificationがひどいので新しいプロトコルではなるべくgreasingするようにしていて、みたいなこと書いたんですが短くするために削除してしまいました。"
Kazuho Okuさんのツイート: "@rui314 なるほどです。「グリス(を塗る)」と言ったほうがランダム化よりも良いかと思ったのですが、意図的に落とされたんですね"
Rui Ueyamaさんのツイート: "@kazuho Goのマップとかだとgreasingっていう言い方を聞いたことがないんですよねぇ。そっちから書き始めたので話の流れ的にまあこれでいっか、と。"

POSTD

私が書いた最速のハッシュテーブル – PART 1 | プログラミング | POSTD
私が書いた最速のハッシュテーブル – PART 2 | プログラミング | POSTD
私が書いた最速のハッシュテーブル – PART 3 | コンピュータサイエンス | POSTD
私が書いた最速のハッシュテーブル – PART 4 | コンピュータサイエンス | POSTD

最近のruby-core

最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年11月) | Money Forward Engineers' Blog
最近のruby-core (2017年1月) | Money Forward Engineers' Blog

局所性鋭敏型ハッシュ

Miura HidekiさんはTwitterを使っています 「https://t.co/sHNKVNTbdU 面白いのだがよくわからない。隠れ層の重みを1bitとか2bitにしてハッシュテーブルで検索するって話なのかなー?」 / Twitter
ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
zakkiさんはTwitterを使っています 「@miura1729 理解しきれてませんが、重みの精度落とすんじゃなくて、局所性鋭敏型ハッシュでのハッシュテーブルで最近傍近似するとかなんとか https://t.co/TYiZIirw1E」 / Twitter
keroro824/HashingDeepLearning: Codebase for "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems"
miyoxさんはTwitterを使っています 「行列計算じゃなくてハッシュテーブルを使う? https://t.co/ta2Ak7J33V 論文はこれかな https://t.co/aRlUj0b1U7」 / Twitter
ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
[1903.03129] SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems
OGAWA, TadashiさんはTwitterを使っています 「.@miyox MLSys 2020でのペーパーとスライドです "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice &amp; Intel https://t.co/hoaRaKHv3Z Anshumali Shrivastava https://t.co/3sRRl219kU」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice &amp; Intel, MLSys 2020 https://t.co/25sEoYoKb1 https://t.co/u2OPpgLzPY Amazon-670K 2x (22 core Xeon E5-2699A v4, 2.4 GHz): 1 H TF on V100: 3.5 H https://t.co/b7f4Rnapj2 https://t.co/1kYVn7PfWz」 / Twitter
Anshumali Shrivastava

Twitter

chokudai(高橋 直大)さんのツイート: "(x,y)を((long)x<<32)+yでエンコードするとハッシュ衝突して死ぬ、普通に知らなかった。(C#のDictionaryの内部実装の問題っぽい)"
Kazuho Okuさんのツイート: "rubyのハッシュテーブルって何か昭和な実装使ってたと思うんだけどkhashとかにしないのかな #RubyKaigi"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyベリファイでは、I/O中にハッシュを並列計算することで、ハッシュ計算をI/O時間に隠蔽していた。 だが、速度向上につれて1GB/sを越えてくると、ハッシュ計算時間がI/O時間を上回るようになり、ハッシュ時間が律速要素になって来たのは、とても面白い。… https://t.co/UfkmUTUyYm"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のPythonのhash()は、起動毎に異なる値を返すらしい。 (hash値が予測可能だと、dictでDOS攻撃が可能なため) https://t.co/CSmQXCYs7B… "
security - hash function in Python 3.3 returns different results between sessions - Stack Overflow
Taku KudoさんはTwitterを使っています: 「unordered系のcontainerの実装を変えると、違う結果をはきだした。hash関数が変わると再現性がなくなるというのは本来あってはならないことだよな.. 速度的に強い制約ないのであれば、ordered なコンテナを使うほうが無難。」 / Twitter
SmoothieMap 2: the lowest memory hash table - Roman Leventov - Medium
KOMIYA AtsushiさんはTwitterを使っています: 「メモリフットプリントが小さく(1エントリあたりのヒープ使用量が小さく)て、rehash によるレイテンシの劣化がない java.util. Map の実装らしい。 “SmoothieMap 2: the lowest memory hash table ever” by Roman Leventov https://t.co/W6NJWQmVsH」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AIの偉い人から「LSH(Locality-sensitive Hashing)」という単語を聞いて調べ中。 (そもそも多次元=球面集中も知らなかった) ---- 「(昔は近似検索にはハッシュは使えなかったが)Locality-sensitive Hashingという類似検索向けのハッシュ法を開発して状況は一変し…」 https://t.co/RNXGZZf6BL」 / Twitter
7_256.pdf

HKDF, HMACなどのハッシュ関数を使う場合に知っておくべきFS/PFS – yohgaki's blog
A Hash Function for Hash Table Lookup
高速ハッシュアルゴリズム | YOSBITS
八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(1) - 第2回 RHG の逆襲
あなたの知らないハッシュテーブルの世界
テンプレート: Hopscotch Hashingとその他
aappleby/smhasher: Automatically exported from code.google.com/p/smhasher
luispedro/diskhash: Diskbased (persistent) hashtable
Positive Technologies - vulnerability assessment, compliance management and threat analysis solutions
leo-yuriev/t1ha: Fast Positive Hash, aka "Позитивный Хэш" - just the fastest portable hash function.
HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!
Re-implementation of Lock Free Cuckoo Hashing – ScienceOpen

二分探索

DSWアルゴリズム - Wikipedia
Day–Stout–Warren algorithm - Wikipedia

グラフ

NyaRuRuが地球にいたころ

graph (1) - NyaRuRuが地球にいたころ
graph (2) - NyaRuRuが地球にいたころ
graph (3) - NyaRuRuが地球にいたころ
graph (4) : 身近な例 - NyaRuRuが地球にいたころ
graph (5) : クエリ式 - NyaRuRuが地球にいたころ
graph (6) : 再帰クエリ - NyaRuRuが地球にいたころ

大規模グラフアルゴリズムの最先端
ページランクのアルゴリズムをC++で試してみる (1/3):CodeZine(コードジン)
BDDとZDDを下から読んで再帰アルゴリズムを作る - Qiita
01-BFSのちょっと丁寧な解説 - ARMERIA
ワーシャル–フロイド法 - Wikipedia
疎行列の計算を実装してグラフ理論をかじってみる (1/3):CodeZine(コードジン)
江崎貴裕@数理モデル本発売中!さんはTwitterを使っています 「巡回セールスマン問題の最短経路長は、もしノードの位置が一様ランダムに決まると仮定すると、その領域の面積とノード数の平方根に比例する式で近似できるということが知られているらしいのだが、試しに計算してみたら思ったよりいい近似で驚いた。 https://t.co/fWc7VrJhmw」 / Twitter
数学の難問「巡回セールスマン問題」の近似解を求める最良のアルゴリズムが数十年ぶりに更新される - GIGAZINE
Shinji KonoさんはTwitterを使っています 「この種のアルゴリズムの計算量や解の質の問題は極めて難しくて手法そのものが良くわかってない。アルゴリズム自体よりも、そっちだな。 https://t.co/J2MSPl1pDE」 / Twitter
Shinji KonoさんはTwitterを使っています 「巡回セールスマンはNPハードだがNP完全ではないけど、NPの理解に計算幾何学が使えるなら面白い。きっとやっている人たくさんいるんだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに、可能な計算全てに計量を入れるような話だし」 / Twitter

隣接行列

有向グラフ 隣接行列 圧縮 - Google 検索
有向グラフ 隣接行列 圧縮 意味ネットワーク - Google 検索
有向グラフ 隣接行列 意味ネットワーク - Google 検索
隣接行列 意味ネットワーク - Google 検索

map

各種マップ実装の性能比較 - mixi engineer blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonは、逆に3.7(実装では3.6)から挿入順でのイテレーションが保証されるように。 ただしハッシュ値は起動毎にランダム(コリジョン対策)」 / Twitter
mattnさんはTwitterを使っています 「そうするとユーザがそれに依存したコードを書いてしまい以降アルゴリズムを変更できなくなります。そこで Go では意図的にイテレーションの順をランダムにするようになっています。」 / Twitter

Elias-Fano encoding

Taku KudoさんはTwitterを使っています 「ソートされた整数列(転置インデックスのポジションリストとか)の圧縮に elias-fano-encoding という手法があることを知った。Quasi-succinct で、試したところ、ありがちな手製圧縮をはるかに凌駕する。 https://t.co/f32s48zQHn」 / Twitter
Sorted integers compression with Elias-Fano encoding | Antonio Mallia
Taku KudoさんはTwitterを使っています 「sentencepieceを本来の意味でのデータ圧縮につかってみた。当たり前だがうまくいく。」 / Twitter

トライ

404 Blog Not Found:Algorithm - 連想配列の実装としてのハッシュはオワコン?
Gauche:Trie
Parallel Collections - 並行トライ - Scala Documentation
Groonga - grn_dat - 参照ロックフリーなダブル配列
ダブル配列の豆知識
ダブル配列の実装方法
人生で何度目かのダブル配列TRIEを書いた - Qiita
すごいTrie - Qiita
Rui UeyamaさんはTwitterを使っています 「TrieというとGoの標準ライブラリのここらへんでTrieを使っているけど、実はこれかなり非効率的で、DFAを使って入力に対してリニアにしか時間がかからないようにしたほうがいいはず。パッチ書くの面倒だけど。 https://t.co/kBoyU1sKyj」 / Twitter
src/strings/replace.go - The Go Programming Language

Splay木

かつっぱ@競プロYouTuberさんはTwitterを使っています 「Splay木って最近示されたDynamicOptimalityの下界を達成していたっけ(ギリしていなかったような)」 / Twitter
かつっぱ@競プロYouTuberさんはTwitterを使っています 「根拠のない直感なんだけど、クエリ列のエントロピーの大小とOptimalDynamicBinarySearchTreeの計算量の大小も連動するイメージがあって それとSplayTreeのおそらくほぼOptimalなところを見ると、「Splay木は偏ったケースだと早い」がなんとなくそうかもしれんなという気になる」 / Twitter
Masaki HaraさんはTwitterを使っています 「へー動的最適性って示されたんだ (名前しか知らない)」 / Twitter
かつっぱ@競プロYouTuberさんはTwitterを使っています 「まどろっこしい話をしたのでスーパー火消しタイム - Tarjanの動的最適性の予想はまだ示されていないはず - 最近Wilberの下界が最適っぽいかもしれない予想にProgressがあった(https://t.co/9mPFBQBoVZ) だけなのでSplay木が全然下界じゃな可能性は残っています 最近の私のツイートはイメージです」 / Twitter
Settling the relationship between Wilber's bounds for dynamic optimality

Crit-Bit Tree

404 Blog Not Found:algorithm - PATRICIA に一番似合う姓は Crit-Bit かも
高速な文字列検索 Crit-Bit Tree コンテナ(C++) - Qiita
prog_0003 - kiwi-log
Crit-bit trees

機械学習インデックス

Kazunori Satoさんのツイート: "Jeff Dean他、Learned Index Structureを発表。B-Tree比で70%の性能向上と桁違いの省メモリを実現。GPU/TPUにも載りそう。 https://t.co/Bs2WmD2io9 https://t.co/eQGGRuAB2D"
Fadisさんのツイート: "「B-Treeのインデックスは機械学習で言う回帰木であり、この部分をディープラーニングを含む他の機械学習の手法で置き換える事ができる」 その発想はなかった"
Kazuho Okuさんのツイート: "多次元への拡張やばいな。任意のクエリに対応したインデックスを自動生成できれば、もうセカンダリインデックスどうしようとか考える必要なくなる / “The Case for Learned Index Structures – Ar…” https://t.co/y2PJqeq11F"
The Case for Learned Index Structures – Arxiv Vanity
Kazuho Okuさんのツイート: "機械学習インデックスのやつ、一次元なら古典的な方法でもできそう(例えばJPEGのように頻度を階層的にDCT)な気がするけど、どうなんだろうなー"
Kazuho Okuさんのツイート: "なんというか、次元低いなら機械学習いらない気がするんだよね。あるいは、次元が低くても機械学習に優位性があるなら、同じ手法を使うことで画像の圧縮率を大幅に上げることが可能だってことになるよね"
Kazuho Okuさんのツイート: "あーインデックスだと参照速度重要だからDCTよりもNNになるのかな"
Daisuke Okanoharaさんのツイート: "@kazuho 画像の圧縮にNNを使う研究はいくつか出ててすでにJPEG は超えてて特に低レートだとかなり勝ってます。スタートアップもでてきてます。ただ、NNによる圧縮の本命は容量も大きく圧縮がすごく効くであろう動画だと思います。 https://t.co/HwddgBaZcU"
IR Reading 2019秋 論文紹介 / IR Reading 2019Fall - Speaker Deck

進化的アルゴリズム

進化的アルゴリズム - Wikipedia
進化戦略 - Wikipedia
CMA-ES - Wikipedia
乱択アルゴリズム - Wikipedia
分散共分散行列 - Wikipedia

オートマトン

Ichiro HasuoさんはTwitterを使っています 「これ,実はオートマトン理論の成果です.「Bellman operator を使うと確率的オートマトンの解析が局所的にできるよ!(動的計画法)」という基本の話に,あえて大域的な解析を上手に組み合わせることで,解析が爆速になりました.[Phalakarn・滝坂・Haas・蓮尾 CAV'20]」 / Twitter
国立情報学研究所(NII)さんはTwitterを使っています 「[ニュースリリース] 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発 ~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ https://t.co/XIfTJW9bR6」 / Twitter
意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ - 国立情報学研究所 / National Institute of Informatics
国立情報学研究所(NII)さんはTwitterを使っています 「本研究ではゴールの達成確率を最大化する戦略を精度保証しながら高速に計算する手法を開発しました。工業製品の品質確認や自動運転の制御、マーケット投資戦略の策定等、幅広い分野の意思決定を支援するシステムに応用可能で、システムが示す選択肢の正しさを保証しつつ高速に計算結果を提示できます。 https://t.co/4AZ9QHLXfB」 / Twitter

blog

Segment Tree を少し速くする - Fixstars Tech Blog /proc/cpuinfo
Segment tree - Wikipedia
DSAS開発者の部屋:最近のPython-dev(2017-09)
はてなブックマークWeb版のエントリー検索のアルゴリズムを改善しました - はてなブックマーク開発ブログ
論文メモ: Accelerated Query Processing Via Similarity Score Prediction (SIGIR 2019) - stop-the-world
論文メモ: Fast Approximate Filtering of Search Results Sorted by Attribute (SIGIR 2019) - stop-the-world
Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
文字列アルゴリズムの学びかた - Hatena Developer Blog

スライド

実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
The first step self made full text search - Speaker Deck
Mercari Item Search: Behind The Scenes (20min) - Speaker Deck

Qiita

TDS: Transposition Table-driven Work Scheduling - Qiita
HDA*: Hash Distributed A* - Qiita
bit全探索について簡単にまとめる - Qiita

Twitter

島鉄雄さんのツイート: "プログラミング言語には split や split-if 等豊富に用意されているけど、split の対としての slice が無いものが多い気がする。(elisp とか…) slice は使用頻度が低いかもしれないけど、無いと一から作らないといけないから、用意しておいてほしいもんだ。… https://t.co/tBJ7fp4rSK"
takuya-aさんはTwitterを使っています: 「パフォーマンスのためにmutableなデータ構造を書く(一度確保した配列などのオブジェクトを何度も使い回して速度とメモリを稼ぐ)必要がたまにあり、そういうときは事前条件と事後条件のアサーションを思いつく限り書く。コードは冗長になるけど、逆に不変条件が明確になるのでわかりやすくなると思う」 / Twitter
kgotoさんはTwitterを使っています: 「素晴らしい。 ちなみに3進数だけでなく、任意のk進数配列を最適な領域で保存するデータ構造[Dodis+, STOC 2010]というのもあります(実装はたぶんまだない)。 https://t.co/ujr4BuSi0d」 / Twitter
かんぱさんださんはTwitterを使っています: 「{0,1,2}上の値から成る配列(Trit Array)に対する簡潔データ構造の実装を公開しました。 https://t.co/lhTsgATSH9」 / Twitter
kampersanda/succinctrits: Succinct Rank/Select Data Structures on Trits
takuya-aさんはTwitterを使っています: 「データ構造の本のなかで突然EM algorithmって出てきて???ってなったけど、データがメインメモリに載らない前提でディスクとかを使って計算するアルゴリズムはExternal memory algorithmっていうらしい。計算モデルもちゃんと定義されてる https://t.co/Ibs0p5GUkv」 / Twitter
External memory algorithm - Wikipedia
(            ​‌‍‎‏ null)さんのツイート: "Mapなどの連想配列の挿入順が保持されない、というのは昔は常識だったが、最近は多くの言語・処理系で保持されるようになってきており、逆に保持される方が常識であるように変化しつつあるのは面白い"
おーいわくんさんはTwitterを使っています: 「BERTを使って検索をより良くする話です | Understanding searches better than ever before https://t.co/P7QkslUvD9」 / Twitter
Understanding searches better than ever before
マスタケさんはTwitterを使っています: 「近傍探索の問題、実サービスで出会う問題は大抵部分集合内(,例えば同一タグで絞るとか日付で絞るとか)の近傍探索の問題に落とせるずで,実際そのほうが圧倒的に計算量が落とせるのに, 今までそういう提案はなかったという意味でこの論文は本当に好き https://t.co/y5fFf6Z3IS」 / Twitter
[1808.03969] Reconfigurable Inverted Index
takuya-aさんはTwitterを使っています: 「新着順や価格順などの属性によるソート順を維持しながらDCGなどの指標を最大化するランキングを近似誤差・時間計算量の理論保証つきで計算するアルゴリズムの論文です(オタク特有の早口)」 / Twitter
relevanceの意味・使い方・読み方 | Weblio英和辞書
takuya-aさんはTwitterを使っています: 「そもそも検索の精度というか、relevanceに対して真剣に向き合ってるサービス・会社が日本にほとんどないという」 / Twitter
takuya-aさんはTwitterを使っています: 「もちろんrelevanceだけを見ればいいわけではなく、レイテンシとかUIとかの全ての要素を含めたUXが大事なんだけど、そもそもrelevanceの問題にちゃんと取り組める、取り組んだ経験のある人が少ない」 / Twitter
takuya-aさんはTwitterを使っています: 「メモリに載らない(データの大部分はディスクにある)前提だとBkd-TreeとPH-Treeどっちが速いんだろう」 / Twitter
takuya-aさんはTwitterを使っています: 「PH-TreeはB+Treeのうえにデータを載せる実装があるので比較はできるはず https://t.co/7fgPeAKASx」 / Twitter
tzaeschke/phtree: PH-Tree
Tomoko UchidaさんはTwitterを使っています: 「2, 3 週間睡眠を削った結果,近似最近傍探索 (HNSW) のパッチができつつあります https://t.co/hRjZicENcG が,インデクシングはやっぱり遅いのと,大改造がすぎるので入るのかどうか。。。」 / Twitter
Add HNSW graph builder · mocobeta/lucene-solr-mirror@5fb9328
スマートコンさんはTwitterを使っています 「別に難しいことを知ってる必要はなく、「log n は n に比べて余程小さい」「幾つかに分割してたら log n っぽくなる」「n log n という表記があったらだいたいよさそう」「n^2 はでかい」くらいの肌感覚で良い」 / Twitter

blog

その他

測度論 / ルベーグ積分 - 星の本棚
JavaScript エンジニア向け: 知識ゼロから tensorflow.js で機械学習入門 - mizchi's blog
覚えるために学べ。GANを用いて過去に覚えたことを忘れないようにするクラス分類器 | AI-SCHOLAR
WebサービスのA/Bテストや機械学習でよく使う「確率分布」18種を解説 - paiza開発日誌
Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する
Factorization Machinesを今更読みました - EchizenBlog-Drei
DeepなFactorization Machinesの最新動向 (2018) - Gunosyデータ分析ブログ
20191109
距離学習(Metric Learning)入門から実践まで|はやぶさの技術ノート
人間が深層学習のAIを理解できないのには、理由がある:朝日新聞GLOBE+
識別/生成モデルの観点から見たRubin/Pearlの統計的因果推論(*既に一定の予備知識のある方向け) - Take a Risk:林岳彦の研究メモ
Agile Igniteを使用した継続的ディープラーニング - Denis Magda氏の講演より
説明可能なAIに関する調査結果を研究者チームが発表
AIがリスクとコストを事前に考慮して強化学習を行うためのツール群「Safety Gym」をOpenAIが発表 - GIGAZINE
なぜ「事実」と「意見」を区別して話せない人がいるのか。 | Books&Apps
東大情報学環大澤昇平氏の差別発言について - researchmap
JR西日本「ベンダーの提案すら理解できない素人だった」新幹線の“着雪量予測”データサイエンスコンペ開催までの「奮闘」
2000種類以上ものアフリカの諸言語を機械翻訳可能にするオープンソースプロジェクト「Masakhane」 - GIGAZINE
<8D758DC081698250816A2E626F6F6B>
motomura.dvi
ワードエンベディングベクトルを使った検索アプリを作った話 - 科学と非科学の迷宮
層の定義 - tsujimotterのノートブック
Kazunori SatoさんはTwitterを使っています: 「TJOさんのすばらしい説明可能性まとめ。 "ヒトが理解できるのはいわゆる「弾力性」とか「ルールベース」が関の山であり、これを機械学習モデルに置き換えると所詮は(一般化)線形モデルもしくは決定木(回帰木)止まりになる" https://t.co/ffC8SrfKf2」 / Twitter
機械学習の説明可能性(解釈性)という迷宮 - 渋谷駅前で働くデータサイエンティストのブログ
SentencePieceについて書いてみる。 - どん底から這い上がるまでの記録
物理法則を”発見”できる機械学習モデルAI Feynman - akira - Medium
ベイズ統計・ベイズ機械学習を始めよう | AIdrops
【第一回】ねこでも分かる!いかさまグラフにはもうダマされない!! - ed-ict|授業でもっとICT活用
ポケモンを題材に因果推論を実践してみる - tepppeiのブログ
20200505
AIっていったい誰なのよ | RAD-IT21
VAEに基づくグラフの表現学習 - Sansan Builders Box
銀行での不正検知の精度向上へ 暗号のままデータ連携・機械学習ができるわけ | DG Lab Haus
確率モデリングのための確率分布の式変形基本【ベイズの定理/グラフィカルモデル】 - HELLO CYBERNETICS

データ

生データ使い放題?! 「日本は機械学習パラダイス」になった ― DEEP LEARNING LAB 勉強会 - Deep Insider
効率的な教師データ作成(アノテーション)のための研究サーベイ - ABEJA Arts Blog
(翻訳) データエンジニアリングの未来 - satoshihirose
実践!固有表現認識 ~Flairを使って最先端の固有表現認識を体験しよう~ - Ahogrammer
AIデータ活用コンソーシアム設立 | yasuokaの日記 | スラド

ガウス過程

ガウス過程の補助変数法をJuliaで実装、回帰結果を比較 • matsueushi
ガウス過程の補助変数法 (Inducing variable method) を理解する • matsueushi

マルコフ

マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる | 秋元@サイボウズラボ・プログラマー・ブログ
強化学習の基本:マルコフ決定過程ってなんぞ? - HELLO CYBERNETICS

モデリング

ブラックホール撮影にも使える「スパースモデリング」とは?【機械学習】 - zalgo3の逆張りブログ

推論・推定

Pythonとカーネル密度推定(KDE)について調べたまとめ - Stimulator
なぜCatboostの推論は速いの? - 簡単なレポート

アンチウィルス

機械学習を使っているアンチウイルスを機械学習を使ってバイパスする「gym-malware」の紹介 - 脱力系日記

言語処理

チュートリアル「Janome ではじめるテキストマイニング」を GitHub & Google Colab で公開しました
文章埋め込みを用いた教師なしキーフレーズ抽出EmbedRankの実装とその評価 - Sansan Builders Box
言語処理学会の論文がぜんぶ公開されたからみんなで見ようぜ!! - 5日と20日は歌詞と遊ぼう。
言語処理学会第25回年次大会(NLP2019) 発表論文集
やぐさんのツイート: "Blog書きました。fasttextが公式で言語判定のモデルを配布しているので、それを使ってみたという話。サブワード単語埋め込みを使っていながらもモデルサイズが小さいところに、fasttextの気合いを感じます。 / fasttextを用いた言語判定 - Out-of-the-box https://t.co/p1PXd2jUIn"
fasttextを用いた言語判定 - Out-of-the-box
Elastic Common Schemaについて | Elastic
横断検索で社内情報共有を加速させる - Hatena Developer Blog
Googleの自然言語処理モデル「BERT」はインターネット上から偏見を吸収してしまうという指摘 - GIGAZINE

スライド

文章を読み、理解する機能の獲得に向けて-Machine Comprehensionの研究動向-
機械学習で泣かないためのコード設計
数式を綺麗にプログラミングするコツ #spro2013
EMアルゴリズム
坂本寛さんのツイート: "この教科書はわかりずらいところがあることが世に知られているので、教科書をより分かり易く理解するための工夫があり資料としてもすぐれている。発表ももちろん上手なので聴けなかった人は残念ですね。 #nlpaperchallenge… "
ᴉɥsᴉuɐʞɐu oɹɐʇuǝʞさんのツイート: "NLP の方の最初の発表資料公開しました。 https://t.co/lOkagdoSGf あとで修正するかもしれません〜 #nlpaperchallenge"
Deep nlp 4.2-4.3_0309
takuya-aさんのツイート: "昨日のMLM KANSAIの @nyanp さんの資料が公開されたぞ!特徴量の作り方めちゃめちゃ参考になるのでぜひ / 1件のコメント https://t.co/vRvm1AWXlx “最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング” https://t.co/AUtVR9gtaY"
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
Argo Workflow によるMLジョブ管理 - Speaker Deck
「安心な移動」のためのPOI検索
What’s new in Elastic Stack 7.1?
検索結果の品質向上 Elasticsearch入門 - Speaker Deck
chikoskiさんのツイート: "「経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう」 https://t.co/GRxqVoJP8P 最近、オリジナルとは違う形でSemantic Webが実現されつつあるのではないか、という気持ちになっている。"
#経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう - Speaker Deck
Cloud Composer & Dataflow によるバッチETLの再構築 #data_ml_engineering / 20190719 - Speaker Deck
近似最近傍探索の最前線 - Speaker Deck
Fast Succinct Trie - Speaker Deck
takuya-aさんはTwitterを使っています: 「FSTのDAGの構築は一度Javaで書いたことあるので理解してるつもりだけど、シリアライズまわりはいいアイデアあったら盗みたい https://t.co/GDIybhEtuP」 / Twitter
takuya-aさんはTwitterを使っています: 「FSTについてはこちらもどうぞ #Kuromoji https://t.co/6xdEyBNIZt」 / Twitter
犬でもわかる Minimal Acyclic Subsequential Transducer / Introduction to Minimal Acyclic Subsequential Transducer - Speaker Deck
takuya-aさんはTwitterを使っています: 「Lucene FSTのシリアライズのやりかた、 @moco_beta さんのおかげで完全に理解できたし、自分で作ってるFSTのライブラリで同じ方式のシリアライズを実装してみようかな」 / Twitter
#JJUG Java における乱数生成器とのつき合い方 - Speaker Deck
機械学習モデルの判断根拠の説明
深層学習による非滑らかな関数の推定
sigam23sp01.pdf
Target Encoding はなぜ有効なのか - Speaker Deck
ヤフーにおける機械学習検索ランキングの取り組み - Speaker Deck
niconicoの検索システム(2019年版) - Speaker Deck
hiroshiさんはTwitterを使っています: 「機械学習で用いるデータセットや学習済みモデルの著作権についてまとめられたIBIS2019での講演資料が公開されています。 STORIA法律事務所 柿沼太一 氏 「機械学習と知財・契約」 https://t.co/knum7n5yMY https://t.co/3A6nn2QQ1m」 / Twitter
機械学習と知財・契約
逆FM音源 - Speaker Deck
TFHEのための多項式乗算入門 - Speaker Deck
The Web Conference 2020 Report -多目的最適化における確率的ラベル集約- - Speaker Deck
cvpaper.challengeさんはTwitterを使っています 「「自己教師学習(Self-Supervised Learning)」のメタサーベイ資料を公開しました!教師がないデータに対して自ら教師を作成し学習する枠組みで、教師あり学習の代替を担うかもしれないとして最近注目を集めている技術です。トレンド、注目研究者/研究機関も含めています。 https://t.co/wgvVakgydA」 / Twitter
自己教師学習(Self-Supervised Learning)
cvpaper.challengeさんはTwitterを使っています 「「Vision and Language」のメタサーベイ資料を公開しました!画像と言語の融合問題について、タスク別のサーベイ(EQA, Navigation, Retrieval, Pre-trained Model)や最新動向について説明しています。 https://t.co/ADTLX9j693」 / Twitter
Vision and Language(メタサーベイ )
Mathematical Optimization in 60 minutes - Speaker Deck
Trends in Deep Generative model and Self-supervised Learning at NeurIPS2019 - Speaker Deck
Trends in Deep Learning Theory at NeurIPS 2019 - Speaker Deck
Trends in Natural Language Processing at NeurIPS 2019. - Speaker Deck
プログラミング言語として考えたTensor flow
Control as Inference (強化学習とベイズ統計)

Qiita

最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita
EMアルゴリズム徹底解説 - Qiita
自然言語処理における、Attentionの耐えられない短さ - Qiita
seq2seqで利用可能な日本語対話データセットをダウンロードするツール - Qiita
【機械学習】Google翻訳(みたいなもの)を自作してみた。 - Qiita
不均衡データを損失関数で攻略してみる - Qiita
パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語 - Qiita
Shiro Kawaiさんのツイート: "「AIは意味を理解しない」ことのすごくわかりやすい例だ https://t.co/y8OVswgGcN より正確に言うなら、「AIは与えられたデータの範囲内で通用する『意味』を見つけ出すが、その『意味』が人間の常識と一致する保証は何もない」かな。"
AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita
AngluinのL*アルゴリズムと機械学習(特にRNN)への応用 - Qiita
【2020決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita
__init__.py を省略してはいけない - Qiita
クックパッドを支える検索技術 「鰹」と検索して「鰹節」を表示されないようにする工夫 - ログミーTech
Taku KudoさんはTwitterを使っています 「公開ありがとうございます。1. なぜNFKDなんでしょう。2. neologd のバージョンがあったほうが再現させやすい。3.「語彙のカバー範囲」の意図が不明ですが、長いトークンが欲しいのであれば形態素解析しないほうがよい。 https://t.co/CZcuXcmRgn」 / Twitter
有馬幸介/StockmarkさんはTwitterを使っています 「BERTの軽量版とも言えるAIモデルであるALBERTについて日本語モデルを弊社エンジニアが公開しました!精度をほぼ落とさずモデルサイズが1/10ぐらいになっているので、やはり実務上は本当に使いやすい。 https://t.co/2sQ6LZ9uGu」 / Twitter
大規模日本語ビジネスニュースコーパスを学習したALBERT(MeCab+Sentencepiece利用)モデルの紹介 - Qiita
半順序でソートするためのアルゴリズムとは? - Qiita
ざっくり理解する分散表現, Attention, Self Attention, Transformer - Qiita
初 LAPACK!で DGELS (QR 分解もしくは LQ 分解)による最小二乗法を実装してみた - Qiita
Linuxのかな漢字変換の興亡 - Qiita
線分の交差判定と交点特定 - Qiita
pandasで1000万件のデータの前処理を高速にするTips集 - Qiita
深層学習のセキュリティ課題と論文まとめ - Qiita

Twitter

その他

茂木 健一郎

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たしかにダメダメな印象(笑) ニューラルネット基礎の「逆誤差伝播」の回路すら脳に見つからない状態だったはず。 (また最強の碁や将棋は、棋士の棋譜を使わず、自己対戦のみで最強に) https://t.co/jNzNTwRNAl」 / Twitter
タクラミックスさんはTwitterを使っています: 「茂木健一郎氏が人工知能や深層学習を十分に理解しているとは疑わしい記事。確かにある程度まで人工知能による英語翻訳は飛躍的に進んだが、それでも明らかに人間未満だ。決定的に欠けている部分を軽視して英語学習に安易に応用するのは疑問> 人工知能から学ぶ「英語学習法」https://t.co/EXvv2b6NqW」 / Twitter
人工知能から学ぶ「英語学習法」 | PRESIDENT Online(プレジデントオンライン)
タクラミックスさんはTwitterを使っています: 「…最も重大な疑問点はこの部分。 「人工知能が実行している学習法は、すべて、人間の脳がやっていることである。」 と茂木氏は断じているが、私が知る限り、人工知能は人間の脳がやっているであろうことを真似てはいるが、脳の仕組みを確実に解明した上での事ではない状態だった筈。私の認識不足か?」 / Twitter
タクラミックスさんはTwitterを使っています: 「…私の懸念は、深層学習が機械翻訳の精度を向上させたと言っても、必要な学習量や学習に必要な演算量は人間の能力を超える膨大なもので、同じ事を人間に適用するのは無理があるという事。人間にとって効率の良い学習法をこそ採用すべきなのに人工知能ブームに乗って世間を惑わせるだけにならないか?」 / Twitter
タクラミックスさんはTwitterを使っています: 「…「人工知能は人間の脳では出来ない事をやっている」というのが私の認識だ。人間の脳がやっている通りの事をしなくても、結果は出せるというのが、今流行っている人工知能界隈のやっている事だと理解している。よって、人間が学習する際に、深層学習と同じ手法を用いるのは無理があると私は思う。」 / Twitter
タクラミックスさんはTwitterを使っています: 「…反復学習の効果については人工知能以前から人間の学習成果として確認されている。茂木氏が人工知能分野の深層学習に中途半端に言及した上で 「人間が人工知能に学ぶ日が来るとは思わなかったが、時代は変わった。」 とお書きになるというのは、脳科学分野の著名人の一人として、いかがなものかと思う」 / Twitter

histric-1

Kazuho OkuさんはTwitterを使っています 「コロナ関係の計算してて思うのは、統計使ったソフトウェアのチューニングはPDCAサイクルをさくさく回せるので、統計の扱い方の訓練に向いてるんじゃないかなぁってこと。感染症の予測と対策とか練習も失敗もできないし」 / Twitter
ゆきさんはTwitterを使っています: 「Network-Based Website Fingerprinting https://t.co/r1vAw2seKs 機械学習を用いて、暗号化されたトラフィックから閲覧ページを推測する系の話し流行ってるよね。(あまり論文は読まないが、draftになると読む系男子orz) #yuki_id」 / Twitter
draft-wood-pearg-website-fingerprinting-00 - Network-Based Website Fingerprinting
Daisuke OkanoharaさんはTwitterを使っています: 「NNは斉次函数(ReLUを使った時など)であり指数損失(クロスエントロピー損失など)を使って学習する場合、勾配降下法による学習は正規化マージン最大化に対応し、その収束レートも示せる。はじめて現実的な条件で非線形多層NNで最大マージン化がされていることが証明された https://t.co/GDSd1fc3uW」 / Twitter
Gradient Descent Maximizes the Margin of Homogeneous Neural Networks | OpenReview
FadisさんはTwitterを使っています: 「ニューラルネットワークの誤差逆伝播で重みに対して上がってくる勾配が小さいと半精度浮動小数で計算した時に勾配が消える問題に対して、誤差をn倍して逆伝播して、重みを修正する前に1/nすれば良い(ReLUとか使ってるとこれでいけてしまう)とかやりだすNVIDIAさんあたまいい」 / Twitter
FadisさんはTwitterを使っています: 「半精度だとTensorCoreで爆速で計算できるからNVIDIAはディープラーニングに半精度を使って欲しいけど、ユーザは溢れを恐れて半精度に慎重になるから、スケールすれば半精度でも大丈夫そうな所を自動で見つけて半精度に置き換え、スケールを動的に求めながら学習するような最適化 AMP が作られたらしい」 / Twitter
Mitsuo Yoshida; AI botさんはTwitterを使っています: 「深層学習を使った推薦手法が増えてきてるけど、ちゃんと比較すると古典的な手法に負けてるという話。再現性の問題や不適切な比較実験が多いことを指摘。 / Recsys 2019 ベストペーパーを読んだメモ https://t.co/B5e8FgENof #Qiita」 / Twitter
RecSys 2019 ベストペーパーを読んだメモ - Qiita
Agata NaomichiさんはTwitterを使っています: 「text-to-text transfer transformer めっちゃ良い。夢が広がるしアイディアも広がる。BART も似たような話だけど T5 は論文自体がめちゃくちゃ長い分、比較とか考察に富んでてかなり読み応えある。 https://t.co/9qCkluBHyG」 / Twitter
[1910.10683] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
みぽさんはTwitterを使っています 「中央値と平均値の説明、「村にビルゲイツが引っ越してきたときの、その村の世帯年収の中央値と平均値」という感じの説明が好き」 / Twitter
Miura HidekiさんはTwitterを使っています 「イメージしやすい」 / Twitter
FadisさんはTwitterを使っています: 「ニューラルネットワークの学習は「なんでも関数」と「非線形最適化」の組み合わせなわけで、ニューラルネットワークの学習を効率よく行う工夫の何割かは非線形最適化問題を効率よく解く手法と見做す事ができて、今ニューラルネットワークと関係ない所で「AdaBoundすげぇ!」ってなってる」 / Twitter
AdaBound - Google 検索
えるエルさんはTwitterを使っています 「お馴染みパターン認識と機械学習(PRML)のアルゴリズムをPythonで実装したリポジトリ 作者は日本の方だと思われ,実装も結構前からあったようですが,今になって海外の研究者に発見されて絶賛されている模様 実際かなりキレイな実装で,PRMLを読むときはかなり参考になりそう https://t.co/Ul9QklyYKk」 / Twitter
ctgk/PRML: PRML algorithms implemented in Python
Yasunori OhtoさんはTwitterを使っています 「証明に穴があったので、全面リライトしました。広く拡散、読んで頂けると嬉しいです。 https://t.co/wMxkMZQoJv」 / Twitter
(PDF) Extract maximum clique using eigenvalue relation
piqcyさんはTwitterを使っています 「研究発表された検索アルゴリズムを実際使える&amp;検証できるようにするプロジェクト。Luceneで実装されている。検証のため様々なデータセットによるテストができるようになっており、新型コロナ関係論文もサポートされている。 https://t.co/jIgeRioC6o」 / Twitter
castorini/anserini: A Lucene toolkit for replicable information retrieval research
Kazuho OkuさんはTwitterを使っています 「3/23のデータ入れた。(7日移動平均を使っていることもあり)大きな変化は見えない。 東京は、なんらかの対策強化が近いうちにあると思う(参考 https://t.co/YF1BCrHRw4) https://t.co/T2tT3sSSRV」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そういえば株価チャートの移動平均、25日や75日の理論的根拠はなんなんだろう。件のグラフで7日移動平均使ってるのは、累計の対数グラフよりも感度が良く、かつ、平日休日の差に起因するもの含めノイズを消せるからなんだけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「移動平均とかを使うアルゴリズムの標準化をみていると、指標の理論的根拠にうるさくなってしまう問題」 / Twitter

histric-2

山本 和英(自然言語処理)さんはTwitterを使っています 「「自然言語が本来持ち合わせる量子的特性を利用して、文法例文を量子回路に変換しました。その上で得られたプログラムを量子コンピュータに実装し、質問応答をさせることに成功しました」「長年の夢であった「意味を理解」し「文法に基づいた」自然言語処理が実現しました」 https://t.co/kmeyXg1ILi」 / Twitter
英国ケンブリッジ・クオンタム・コンピューティング、世界で初めて量子自然言語処理における実証実験を実施 - CNET Japan
Quantum Natural Language Processing - Cambridge Quantum Computing - Medium
An introduction to t|ket> - YouTube
ミライ小町【公式】さんはTwitterを使っています 「本日バンダイナムコ研究所が公開したDistilBERTの日本語事前学習モデルは、、、 BERTモデルと比べてサイズが約40%小さいし! 推論が約50%も速くって! 精度は分類タスクで約90%なんですよ! すごーい!✨ https://t.co/hsa6Z16CFI」 / Twitter
BandaiNamcoResearchInc/DistilBERT-base-jp
Yuta.HさんはTwitterを使っています 「BigQuery MLで作成したモデルのTensorflow Saved Model 形式での取り出しが可能になりました!これによりBigQuery MLでPredictさせる機械学習モデルの生成だけではなくBigQuery ML自体がかんたんなモデルのフルマネージド分散学習環境として使えるようになりました。 https://t.co/zAnPTaumK0 #gcpja」 / Twitter
Exporting models  |  BigQuery ML  |  Google Cloud
Tomoyuki MorimaeさんはTwitterを使っています 「量子計算理論:オンライン教材 自宅学習をしている学生の方用に作ってみました。今後付け足していく予定です。 https://t.co/mrYXcvlTyc」 / Twitter
lectures.pdf
HELLO CYBERNETICSさんはTwitterを使っています 「統計的だが規則的な振る舞いがあるから学習できるのであって、本当にランダムなノイズを帳消しにできるわけではないのだが……。バラつきを機械学習で何とかしたい、みたいなの根本的におかしい。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「もちろん、(例えば囲碁など)素人目にはランダムに見えているものが、実際には何らかの規則に基づいているはずだ!しかし、それを解き明かすのは困難だ。という話は全然OK。 ここで言っているのはS/N比が極端に悪いものを機械学習に突っ込んでも何も生まれませんということ。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「データ収集におけるS/N比を良くする、特徴量を掴む、ということをしてみると、そこには意外とシンプルな規則があり、線形モデルないしルールベースでうまく行くということがあったりする。 予測できればOKはそうなんだけど、そういう土俵になってるかを調べるのはとても大切。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「囲碁でいうと、石の色を間違えてましたとか、石の置かれてる場所が違いましたとか、石を間違えて違うところに置いちゃます とかいうのが不規則に生ずる環境で、強化学習して絶対に見間違いせず、打ち手を誤らないようにします。 なんて無茶なんです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「そもそもベイズの「信用区間」なるものを全く使わないのでよく知らなかったのですが、下記を見る限りでは明らかに信頼区間の考え方に寄せられてわけわかんない説明になっちゃってますね。 信頼区間(confidence interval)と信用区間(credible interval)の違い https://t.co/C0KTtsPhmR」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「まともに勉強していないので理解が怪しいですが、統計はもともとデータをある仮定の元で要約することによって人間が判断を行いやすくするというのが1つの目的だと思います。AIの時代では、計算機が高次元のデータを整然と処理し判断を行うので、要約をする必要がないケースが出てくる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「件のベイズの「信用区間」が最たる例で、確かに人間にとっては区間を表示するのが直感的に解釈しやすいかもしれない。機械だと話は違う。むしろ、奇妙に要約された「区間」ではなく、大量のMCMCのサンプルなどを使った期待値計算やそれによる行動選択において人間を凌駕できる可能性の広がりがある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「まとめると次のように予想します。 ・モデリング→しばらくは人がやるし、やりやすくなるようにツールも進化する ・推論計算→MCMC以外でも数理的に特性の良いアルゴリズムが今後も登場する(はず) ・事後分布の活用→人間だけではなく計算機が利用するケースが増える」 / Twitter
Kazunori SatoさんはTwitterを使っています 「やっぱpredictionって言い方が期待値上げすぎと思う。inferenceくらいでいい。既知の事象からわかる範囲のことしか出てこない。汎化って、未来を予測できる性能ではなくて、既知の事象からいかに本質的なパターンを抽出できるか、という性能に過ぎない(本質ってなんじゃいって話になるけど)」 / Twitter
Kazunori SatoさんはTwitterを使っています 「MLは高次元から低次元のパターン(多様体?)を抽出するのは得意だけど、ドメイン知識や常識はない。人間はその逆。この両者をいかに合成するかがカギ。CNN(2D畳み込み)の成功やベイズ等の統計の強みも人の知恵の外挿と思うし、DNNのデータ拡張は非効率な外挿。どれも未来予測ではなくITの開発手法。」 / Twitter
ともい(Tomoi,S.)さんはTwitterを使っています 「今の時代であれば、文章を構成する言葉を数語入れればドロップダウンできる文章候補ができてて、ショートカットキーで選択すれば終わりとか、エージェントの域に来ててもいい気がしますが、作文ソフトを除き、そういう指向性のものってIMには全く降りてきてないような…。 (あればそれを扱ってみたい)」 / Twitter
ともい(Tomoi,S.)さんはTwitterを使っています 「特に、入力した情報より多いものを返す系が発達していないなと、自分の見た限りでは感じています。 タイプの正確性以前に、個人的にはキータイプの速度を超えることがブレイクスルーの一歩ではないかと感じてまして…。」 / Twitter
Isao TakaesuさんはTwitterを使っています 「NISTが策定中の「機械学習セキュリティ」に関するベストプラクティスのドラフト版。攻撃手法・防御手法の分類や用語を整理している段階。現バージョンの全文はPDFで確認することができる。 #aisec #jpsecai https://t.co/OXyKyin81x」 / Twitter
Artificial Intelligence: Adversarial Machine Learning | NCCoE
Agata NaomichiさんはTwitterを使っています 「強化学習やってると、gradient必要な計算とそうでない計算が混ざってよくわからなくなってくるんだけど、spinningup の実装読むと gradient いらない時はそもそも nd.array を返すような interface 設計になっていてとてもわかりやすい」 / Twitter
清 史弘さんはTwitterを使っています 「【清史弘からの提案 7 の説明案】  私が用意しておいたものをここにおきます。これを参考に(100%使ってもよいです)、この置換にたどり着くための話の動画を教育系のYouTuber のどなたかが作ってくれると嬉しいです。2枚になります。 #清史弘からの提案 https://t.co/VzILwv12gG」 / Twitter

Shinji KonoさんはTwitterを使っています 「統計に必要な数学はいろいろあるが、可視化できないなら、その結果に意味はない」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「多田明功さん「実務における数理最適化技術と実践」。2019年度後半より数理システム主催のワークショップと同タイトル。実行不可能な場合にも何かしらの答えを返して欲しいが、単純に緩和問題の解を返すだけではどこに違反が出るか分からず対処しにくいので、後調整しやすい特定の制約に違反をしわ寄せ」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「小熊祐司さん「工場ピーク電力抑制を目的とした生産設備運転計画最適化 ―最大値最小化とメタヒューリスティクス」。ピーク電力に応じて基本料金が決まるのでピーク電力最小化。最大値最小化の形で目的関数値に寄与しない箇所の自由度から同じ目的関数値をとる多数の解が存在し分枝限定法には不向き。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「一方で実行解は多数存在するのでメタヒューリスティクス向き。近傍定義および目的関数設計を工夫。ピーク電力をそのまま目的関数とすると、ピーク発生時間帯のジョブの移動のみが目的関数への感度を持ち、全体的にジョブを調整して平準化するという自然な改善がされづらいので、平準化の誘導項を追加。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「奥田裕之さん「自動運転における実時間最適化とモデル予測制御」。衝突回避制約は非凸になるのか(確かに言われてみれば)。相手の”迷い”を低減する合流制御の話、モード切替を伴う予測モデルを用いるMPCの話、制約充足型自動運転の話など面白かった。」 / Twitter
さっじーさんはTwitterを使っています 「富士通研究所のAI応用例だけど、災害避難経路最適化とか待機児童最適割当とか色々あって面白いなー ビックデータで学習させてブラックボックス化するんじゃなくて、数理モデルを基盤とした学習をすることで、なんでこの答えを出したのかを説明ができるAIができたりするってのはすごい」 / Twitter
全卓樹さんはTwitterを使っています 「物理学者から見た、ひとつの「世界の4分表」をどうぞ。ストロガッツ大先生のnonlinear dynamics and chaos 2014から。 通常は物理っていうと左上だけ、せいぜい右上まで含んだものをイメージするじゃないですか。でも実際はずっと広がってるし、最前線は他分野に浸食してるよって。 https://t.co/JdAeXiljS7」 / Twitter
UmeponさんはTwitterを使っています 「もう少し手が空いたら,capacitated vehicle routing problem(CVRP)や,vehicle routing problem with time-window(VRPTW)などの典型的な配送計画問題が整数計画ソルバーでどれぐらい解けるかを色々と試したい.」 / Twitter

users

@sammy_suyama

2020-11-24

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ほぼすべてのMLソリューションにおいて、限定された実験環境・データセット・テストベッドにおけるごまかしの「成果」から、いかに実運用に持っていけるかが最大の壁となる場合が多いので、このあたりの問題意識はしっかりとシェアしていきたい。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「このような限定的な成果を元の目標のサブゴールであると誤認してしまっているケースが多い。これはサブゴールではなく、単にオーバーフィット。MLに関わる人の多くが交差検証を理解しているにも関わらず、より広いマイルストンでのオーバーフィットに無頓着になってしまいがちなのが驚くべきところ。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「その実証実験で得られたやり方・モデルは、コスト面で横展開可能か?」 その質問にちょっと真摯に向き合うだけでこの問題はかなり回避される。(と同時に、無計画なPoCで短期に稼ぐだけのビジネスモデルは駆逐される)」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「たいてい言い訳として登場しがちなのが「もっとデータが集まれば将来的には解決する」と言って逃げるパターン。これは99%嘘なので注意です。本運用時のデータ収集に実証実験時と同じくらいコストがかかるようでは全くお話になりません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「以前TFUGで「MLのモデリングは自動化できるか?」という話をしたのを思い出した。結論としては「自動化できるくらい予測の目標が明確であり、妥当な評価を行うためのデータ量が豊富であること」でした。正しいと思いますが、この前提条件、正直モデリング作業自体よりもはるかに満たすのが難しいです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ブラックボックスな手法は使うのは容易ですが、それだけでは実用に耐える評価を下すまでの道のりが果てしなく遠くなる場合が多い気がします。」 / Twitter

2020-12-02

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えばAlpha Goの提案する手は一見人間には理解不能かもしれませんが、読み筋を示して行けば(途方もない苦労を要するものの)一応理解はできるはず。要は、要素を分解すれば最終的に人間が納得できる可能性があるのであれば、それは「理解できる」に入るんじゃないかと思います。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「人間が処理できないほど、1.考慮すべき項目が多数、2.探索すべき組み合わせが多数、といった場合には機械学習(というか」計算機)のアドバンテージが出るというだけの話です。これだけのことで、単なる技術をわざわざ「超人間的な知性の神秘」みたいな議論には進めない方が良いですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「深層学習はパラメータ数が多く暗記できるキャパが大きいので、「深層学習が一番うまくいった」という実験結果は、まず課題設定の失敗(leakageなど)を疑った方が良いです(経験上、9割以上はこれ)。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「統計的予測に素養のない方達が、すぐに深層学習なり機械学習に飛びついてしまう昨今ですので、この辺りは十分にケアすべきです。解決は簡単です。あなたの作った手法が、本運用と同じようにデータが入ってくる状況で要求性能を発揮しますか?という問いに答えられるような実験設定をすることです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「面倒臭がっているケースが多いと思われます。元データの散布図を見れば済む話を、わざわざ「機械学習の解釈性」なる技術でモデルの入出力の挙動を確認するなどは典型例ですね。」 / Twitter
Masa YamamotoさんはTwitterを使っています 「本当のところで、どうしてこうなるのかわからない、と言うケースは少ない気がしますね。 検証が面倒だからやらないのか、そもそも適当に問題を扱っているか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「人工知能が人間の能力を越えた」みたいな文言は、くだらない週刊紙の表紙レベルに留めておくべきと思います。データが大量に保存でき、人間より早く計算できると言う時点で、計算機は人間を十分に上回っているし、現代の人工知能もその延長線上に過ぎません。」 / Twitter

histric-1

須山敦志 Suyama AtsushiさんはTwitterを使っています 「カグルなどもほとんどは教師ありを使うような課題だと思うのですが、要となる前処理・特徴量抽出はほとんどが教師なし。利用頻度は教師あり/なしで8対2くらいかもしれないですが、重要度はそのまま逆転しますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「教師なしモデルを使いこなすor設計できる人が機械学習を制する。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もう1歩進むと、 実践的な統計モデリングに限定して言えば、教師なし/教師ありといった区別はしない方が応用の幅が広いことは自著でも簡単に説明しています。 https://t.co/5W7PVnk9qU」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「うーむ、なぜでしょう。「xとyのペアを与えれば機械が勝手に学習して予測できるようになる」という噂が流布されているからでしょうか?」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習は教師ありと教師なしに分類される」という入門書籍の定番の1行目の文句を信じ切って進んでしまうと、多くの人が機械学習の膨大な応用範囲と一貫した手法の理解を見過ごしてしまうことになる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「Juliaを使うとガウス過程回帰が実質10行程度で実験できる。 https://t.co/wXVwwL9KwB」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ハイパーパラメータを調整したければForwardDiff.jlなどを使えば追加数行でできると思います。 https://t.co/68N1y40M1g」 / Twitter
JuliaDiff/ForwardDiff.jl: Forward Mode Automatic Differentiation for Julia
須山敦志 Suyama AtsushiさんはTwitterを使っています 「結果の可視化以外では特別なライブラリは一切使用していません。基本的に線形代数の計算式を並べるだけで実装できる。ブロードキャストをうまく使うことがポイントですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「実装したい人へのオススメは、適当に「Gaussian process kernel」とでも検索して、9行目・10行目を別のカーネルに置き換えて試してみることです。予測結果が色々変わります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「高度な統計解析をするためには確率モデルによってデータシミュレータを作る必要があります。ただしシミュレータはたいてい複雑なので事後分布を計算するのが困難。さらに事後分布を近似するヒントとなる尤度関数(モデルの一部)も計算できないケースもあります。一方で、」 / Twitter
Daisuke OkanoharaさんはTwitterを使っています 「多くの科学領域でシミュレーションが作られてきたが、尤度が計算できず、観測からの推論が困難で非効率なABCしか使えなかった。近年のML/DLの発展で高次元でも尤度や事後確率分布の代理関数を推定でき、微分可能なシミュレータを使って高度な推論ができるようになったhttps://t.co/BGvvBV7rjE」 / Twitter
The frontier of simulation-based inference | PNAS
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ABC(近似ベイズ計算)と呼ばれる技術も古くからあり、尤度が全く計算できないような場合でも(モデルが比較的小さければ)事後分布が推定できます。ただし高次元のディープなモデルなどには適用が難しい。もう少し近年では、」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ディープなモデル含む複雑なシミュレータに関しても密度比推定を利用することによって尤度計算ができなくても計算を進めるやり方があります。ほぼ同様のアイデアはみんな大好きGANにも使われています。変分推論法との関係性などはlikelihood-free VIとして整理されています。 https://t.co/Gq52TxqrHf」 / Twitter
[1702.08896] Hierarchical Implicit Models and Likelihood-Free Variational Inference
Daisuke OkanoharaさんはTwitterを使っています 「問題を解くために使ってはいけない別の情報を使って”ずる”をするショートカット学習は動物でもみられ、現在のML/DLでも広くみられる。これによりMLは違う方向に汎化し、学習分布外(o.o.d)に外挿できない。実験結果の詳細な分析、o.o.d汎化のテスト実験が必要である。https://t.co/OIKtfOY61G」 / Twitter
[2004.07780] Shortcut Learning in Deep Neural Networks
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習や深層学習が「ズル」して学習データセットで良い成績を出すという話は結構根深いです。例えば画像中の猫・犬を分類するタスクで、DNNで誤って犬と判定された猫は芝生の上にいたり。学習データ中では屋外の芝生にいるのは犬の方が圧倒的に多かったということなんでしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「同じことは実は人間でも起こっています。人種差別なんかがそう。対象となる人自体の本質を見ずに、表面的な特性だけで判断をする。こうすることによって人類は予測の「省力化」を行っています。表面的な相関や過去の事例だけで物事を判断すると未来(=学習に使っていないデータ)で大間違いを起こす。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「面接などで候補者の技術力を知りたければXGBoostの使い方などどーーーでもいい話はせずに,教師なしの手法についてどれだけ語れるかにフォーカスするとよいです.」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データを格子状に並べた瞬間に「画像だッ!」ってなるのはいかがなものか」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「取るべき解析プロセスは、見かけ上のデータフォーマットや計測手段(センサー種類とか)などではほぼ決まりません。対象データの背後にある構造やデータ量、解析目的に応じて決まります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には 実問題 = 現状と理想にギャップがあり頑張っているんだけどどうにもならなくマジで困っている人たちがいる問題」 / Twitter

histric-2

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガチで機械学習の研究をやっている人であれば、多重共線性みたいな概念にいちいち名前がついていることに驚くのではないかと思いますね。」 / Twitter
干物男!かとう茶んさんはTwitterを使っています 「ML系だとOLS(最小二乗法にパラメータ識別の仮定が入っているやつ)をちゃんと習わずに来る人が大量にいて(というかほとんど),そういう人たちは最初からカーネル入れて正則化かけてたりするので,やや理論っぽいことをやろうとしている人でも多重共線性とか知らずに生きてたりします.」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「あー、確かにこれはありますね。計算アルゴリズムが幾何的な情報をうまく扱えていない。」 / Twitter
📊🛠📝 (𝚖𝚊𝚕𝚕𝚊𝚛ĝ𝚎 𝚊𝚙𝚕𝚒𝚔𝚎𝚋𝚕𝚊)さんはTwitterを使っています 「回帰なんかをStanで実際に推定しようとすると、分散揃える謎処理した方がかなり速くなるんですよね。 NUTSのパラメータ調整が入るので、スケールが違いすぎると限られたwarmup期間では上手くいかない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データ間で数値のスケールが著しく異なるのが原因で計算上変な挙動が起きる場合、単純にデータの表現方法を変えれば解釈性を保ちつつ改善できる可能性がありますね。ミリメートルをメートルに直して、それにモデルの事前分布も合わせるとか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはかなりあるあるで、多くの教師ありのシチュエーションだと前処理(スケーリングとか)とk近傍法で他の手法と大差ない。どころか説明しやすい。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これで問題が解決できればそれでOKですが、もう少し追求していくと「近いとは何か?」という設計上の問いが出てきます。ここで出てくるのがカーネル法やガウス過程などのデータ間の類似度を設計することによって回帰モデルを設計するやり方です。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガウス過程などのカーネル(共分散関数)を設計するアプローチは非常に直感的で強力なのに、実際はRBFカーネル(デフォルトではこれが多い)を使った「なめらかノンパラ曲線フィッティング」くらいしか利用されていないのが惜しいところ。これだと動作的にはほぼk近傍法に近い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ということで、カーネル関数の機能を直感的に理解したい場合は下記のサイトの下の方にあるデモをぽちぽちしてみるのをお勧めしています。(あと、よく聞かれますが、多次元入力版の拡張ももちろん簡単にできます。) https://t.co/87goFc6gGC」 / Twitter
A Visual Exploration of Gaussian Processes
高梨陣平さんはTwitterを使っています 「GoogleのAIが集中砲火を受けている。具体的な証拠無しには有効性の検討はできない。」 / Twitter
The RegisterさんはTwitterを使っています 「ICYMI: Google is under-fire for bragging about making a super-human cancer detection AI – and then not supporting those claims with tangible evidence "Without the computer code and fitted model, it will be very difficult to build on their work..." https://t.co/8aUiQo0Cbo」 / Twitter
Top doctors slam Google for not backing up incredible claims of super-human cancer-spotting AI • The Register
須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓収集した実験用データに対してはうまい具合に良い予測精度が出せて、多様な個別環境に適応できるようなモデル&学習のやり方はまったく考慮されていない。ML失敗のあるあるですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これの解決のために転移学習や能動学習がカギになるという人もいますし、あるいは差異の要因がある程度仮定できるなら階層ベイズで解決するのが手っ取り早いでしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えば10の病院からそれぞれ1万枚の画像データを集めたとしたら、データ量は10万ではなく、10です。この辺の見かけの数値にとらわれない課題難易度の認識が大事。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ビッグデータ」や「大量データで学習」などの流行文句がありつつも、少量データに対する効率的な学習が超大事なのはこういった理由があるためです。この辺りは下記の杉山先生の研究課題を見るとよいです。 https://t.co/JHUfekL0tS」 / Twitter
理研AIP-NEC連携センター | 革新知能統合研究センター
須山敦志 Suyama AtsushiさんはTwitterを使っています 「現実問題を直接数理最適化問題としてデザインすることも重要ですが、個人的には機械学習と組み合わせる際にも有用だと思います。僕も以前、構築した機械学習アルゴリズムの部分問題を解くためにQP Solverなどを併用したことがある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分もまだまだ知識が足りていないですが、例えばベイズ統計の近似手法を改善するためには数理最適化の考え方を深く理解する必要がある。例えば隠れマルコフモデルなどを効率よく推論計算するためには動的計画法が定番。モデルの構造に合わせて適切な手法選択するためにはこの辺りの知識は必須ですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「最適化問題のオーバーフィットの話にも関連しますが、現実的にはアルゴリズムで計算された出力結果が実際にビジネスオペレーションに落とし込めるかが重要になってきます。簡単にいうと、出口論が大事。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「架空の話ですが、自動販売機1台1台の精緻な売上予測が出来たとしましょう。最適化アルゴリズムによって提案された在庫管理のスケジューリングが、現実のオペレーションではあまりにもダイナミックすぎて管理しにくくなる可能性がある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「数字の上では高いROIが期待できても、現実のオペレーションに対するフィージビリティが保てないケースは非常に多い。この辺りは現実課題を数理的な問題に落とし込むとかそういう以前の段階で事前に業務を深く理解したメンバーと議論する必要がある。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「これは制御の問題にも通じます。あるカメラの予測を通じて物体を追いかけるような制御をしたいとして、その予測に従って追いかける動作を現実的な制御入力で達成できないことがあります。 すると何をいつまでに予測できなければ制御が間に合わないのか、逆算する必要があるわけです。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「予測はしばしば、次のアクションのための情報として扱われますが、本当にアクションに繋がるのか、あるいはアクションに繋がるような情報とは何なのかを常に考えて予測問題を作らねばならないわけです。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「これめちゃくちゃ重要だよなー。 特に経営者からやってくるテーマそのままだと出口が作れないケースが結構ある。本当にやりたいことをより広いスコープで捉えて「単純な方法でも成果がでそう」なテーマに変えて提案して「あとから精度上げに行く」くらいの気持ちでやるのがいいと思う。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「たとえば、在庫予測したい!とか30回くらい聞いたけど、庫内滞留のリスク最小化したいとかは聞いたことないもん。なぜなら、ロジとマーケの組織が縦割りになってるから。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「そもそものKPI分割が問題を局所化している可能性を考えないといけない。」 / Twitter

micchanさんはTwitterを使っています 「このスレッド全部に頷きすぎて頭くらくら。前に某大手食品メーカーの熟成予測をやった際、エンジンの成果は出せたけど、サイクルが現場にフィットせず仕入れのSCM側の改革も必要だったり、かなり広範囲で見ないと結局インパクトが出せない問題を思い出しました。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「根本には、サプライチェーン全体から見たボトルネックを認識せずに、部分問題を過度に最適化することに問題があります。特にロジスティクスでの物理的制約や顧客の認知限界などは多くの場合無視できない。過度な部分最適化は全体としての柔軟性を欠く。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「正解ラベルがないとまったく何も進みません」という案件は、たいてい正解ラベルが集まった後でもまったくうまくいかない」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「この認識が間違いであることは実務者全員が認識した方がよいですね。 &gt;入力と出力の関係性が未知でもデータがあれば予測モデルを立てられる」 / Twitter
MassSさんはTwitterを使っています 「入力と出力の関係性が未知でもデータがあれば予測モデルを立てられるというメリットがあったはずが、実用では結局対象の理解がある程度欲しいとなると、、ジレンマ」 / Twitter
MassSさんはTwitterを使っています 「結局実務では対象の現象を仮説立てて挙動をモデルに入れ込んで作り込んでいくことが多くて、あり得る現実的な入力全てに対して万能に返してくれるものはないとなると、、個別問題になりやすく、、悩ましい」 / Twitter
MassSさんはTwitterを使っています 「ただし、ディープラーニング含め何ちゃら学習器を使って(過学習をしている状態を除いては)なんらか入力に対して予測可否がなんとなく分かるというベンチマーク的な使い方はありだと思っていて、対象の理解はそこから逆算してすることもある」 / Twitter
MassSさんはTwitterを使っています 「結局機械学習は愚直に覚えるアルゴリズムなだけなので、現象が分かっているものに強いて使う必要はないのだけども、現象をアルゴリズムに入れ込める人間はそう多くはないので、愚直でもいいから効用のある課題に取り組むってのも忘れてはいけないと思う。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog https://t.co/ppwO7tTzBD」 / Twitter
Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog
須山敦志 Suyama AtsushiさんはTwitterを使っています 「lightGBなんちゃらが欠損値を扱えるとかわりとどうでもいい話をよく聞きますが、基本的にあらゆる回帰モデルは容易に欠損値補間ができるように拡張できます。もちろん、欠損の捉え方により無数にバリエーションはありますが。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ここ数年の機械学習の産業応用のドライバーは、機械学習の技術自体ではなくgit cloneな気がする」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習周りの考え方そのものは20~30年そんなに変わっていません。ただ、圧倒的に外部からのアクセシビリティが良くなった。」 / Twitter

@masahiro_sakai

2020-10-31

Masahiro SakaiさんはTwitterを使っています 「SAT-Based Encodings for Optimal Decision Trees with Explicit Paths https://t.co/Yuw61N4WCP SATソルバを使って最適な決定木を求める話。具体的には、二値分類で特徴量も2値のケースで、完全な分類を行う決定木のなかで、深さやノード数が特定の数の木をSATで求めるのを小さい方から繰り返す。」 / Twitter
SAT-Based Encodings for Optimal Decision Trees with Explicit Paths | SpringerLink
Masahiro SakaiさんはTwitterを使っています 「木を扱おうと思うとノードとエッジに基づいた符号化が思いつくけど、提案手法はパスに基づいた符号化で面白く、また自然に symmetry breaking 出来ていて良い。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「多値分類や特徴量が多値の場合への一般化は簡単だけど、特徴量が連続値の場合と誤分類を許す場合の扱いが自明でないので、手法は技術的に面白いものの、現状では実用するのは難しそう?」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「先日Optimal Trees の話 https://t.co/GRoUwV3uju を聞いて、そういえばSAT 2020でそんなタイトルの論文があったなぁ、と思って読んでみたのだった。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「一つめは、決定木学習のCARTは局所的に最適なブランチを繰り返すことで決定木を構築するが、それに対して(木の深さの制約のもと)大域最適な解を求める Optimal Trees という手法で、100万サンプル1万特徴量とかまでスケールし、 CART や XGBoost よりも高い汎化性能。」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深いテーマが多い。 ---- 「βアミロイド・ワクチン法」(βアミロイド投与で抗体生成) 「脳の消費エネルギーは 20W」 「ヒルの逃走法選択(≒自由意志)は膜電位の揺らぎ」(これは知っていた) https://t.co/3unQrNDbRq"
進化しすぎた脳 | PHILOSOPHY OF SCIENCE
Shirouzu Hiroaki(白水啓章)さんのツイート: "人間の「自由意志」も、根本はヒルの膜電位と大差ない原理(ランダム性)だろうなぁ。 (そして「飽きる」という現象と同じく、選択の固定化を避けて生存確率を高めてきたと)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、意識を「量子揺らぎ」に求める著名科学者も居た気がするが、例えばMRIでスピンの向きを揃えても意識を失わないし、PETにも耐えるし、もっと巨視的な話ではという気も。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "私も昔から「関数次第で何とでもなるよね」という違和感があったなぁ。 (フーリエ級数で解く人とかもいるのだろうか?) ちなみに現実的には「最もエントロピーの低い関数に基づく解のみを正解とする」的な補足があればよいのかな?… "
西内啓 Hiromu Nishiuchiさんのツイート: "IQテストとかでいくつか数字並べて次の数字何でしょうみたいな問題、やろうと思えば変な式でもフィッティング出来るはずで、結局のところ何が「正解」かってただの納得感の問題である。むしろ今の世の中に必要なのは1,2,3,x…という並びを見て4以外の斬新な答えとその理由を思いつける人間なのかも。"
西内啓 Hiromu Nishiuchiさんのツイート: "なお、全く数学的な意味はないんですけど、8,13,22,24,25,32,33,○,42,44,52という数の並びを見て○に入る数字即答できる人がいたらめっちゃ友達になりたい。今だと「この並びにいずれは0,3,6,23のどれかが入るんですかね!」みたいな話で盛り上がりたい。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ふーむ。 サンプルを使って法則発見より、全パターン網羅辞書を作れば法則化自体が不要、みたいなノリに見える(笑) https://t.co/bnceFj08Jl」 / Twitter
Hiroo YamagataさんはTwitterを使っています: 「いまやっている訳書で、自然言語解析で百万語くらいで学習させるとアルゴリズムにより成果に大きな差が出るが、一億語学習させると、もうアルゴリズムの差なんかどうでもよくなるそうな! だから、革新的アルゴリズムをひっさげた新たなグーグルによる下剋上なんてのは、もうあり得ないとのこと。」 / Twitter

@sinya8282

Ryoma Sin'yaさんはTwitterを使っています 「今日はデータサイエンスの講義を見学させてもらったんだけど、lasso の意味というかスパース感がめっちゃわかりやすくて腑に落ちた(普通に勉強になった).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「チコノフの正則化とかリッジ回帰とか調整項の意味とか事前情報の正当化とか、この辺の話は数学者と工学者でだいぶ伝え方が変わるのかな、とか思ったり(見学した講義は数学者の方が話していた)。」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「確率論の大家にフェラーという人がいる」 と講師の方が言った直後ニヤニヤしてる学生さんが何人かいたことは先生黙っておきます.」 / Twitter

@fffumihiro

くいなちゃんさんのツイート: "「数式」が苦手なプログラマさんの気持ちは分かります。 数式がプログラムだとすると、変数名や関数名が大抵1文字で、定義に "コメント" がほとんどなく、その定義こそが仕様書で、ステップ実行もデバッガもないとは、プログラマさんにとって 保守不可能と判断されると思われます。"
FFFumihiro MMMatsuiさんのツイート: "確かに言われてみれば、数式たくさん使って説明するあれこれにソフトウェア工学のあれこれを取り入れたら伝わりやすくなる可能性ある気がする。似たような式変形を何度もやる内に慣れてくのは、コメントが無いコードに対して、似たようなコードを書いた事あるからすぐ読めるって感覚に割と近い気がする"
FFFumihiro MMMatsuiさんのツイート: "なので、そういう式変形を扱った事がなくてもちゃんと分かりやすく伝えるっていう方向で良くできる余地はありそう。現状だとなんか、分かるまで読む側が鍛えろ的な感じで、あまりそういうの追求されてない気がするし"
FFFumihiro MMMatsuiさんのツイート: "素直に扱うと手に負えないくらい複雑になってしまうものを、なんとか万人にとって扱いやすくしたいという点では、ソフトウェア工学ってずっとそういうの研究してるわけだし、もっと他の分野に応用されてもよさそうだな"
きいねくさんのツイート: "確率問題は極端に考えると直感的にわかりやすくなる傾向があると思う. ■モンティホール→ドアの数が1億2個で1億個開ける(確率上昇が直感的にわかる) ■感染確率→感染確率 0 %の病気で,90%正しい検査キットで陽性だったときの本当に感染している確率(90%じゃないことが直感的にわかる)"
FFFumihiro MMMatsuiさんのツイート: "モンティホール問題は最初知ったとき不思議で不思議で、結局やっぱりこういう極端な場合を考えてやっとなるほどってなった"
FFFumihiro MMMatsuiさんのツイート: "確かに確率と直感のすり合わせって、モデルそのものは数個くらいの少ない N でイメージした方がわかりやすい気がするけど、直感的にあれ?ってなる挙動が隠れてたりとかは、一応 N を相当大きくした場合もイメージしてみないとなかなか気づけなそうな感じあるなあ"

物理と機械学習の相性

ogiwaraさんはTwitterを使っています 「ところでF=maが成り立つ、って証明はどこにもないよね」 / Twitter
ogiwaraさんはTwitterを使っています 「やっぱ物理における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
ゆうだい.jlさんはTwitterを使っています 「@designpatterngf 多くの自然現象がニュートンの運動の三法則で説明できることが立派な証明と思います(が、演繹的な証明はないよね、という意図ですよね?) なんか、そーゆの、物理と機械学習の相性はとても良いと思うんです。」 / Twitter

哲学的思慮

Ken McAlinnさんはTwitterを使っています 「特に昨今の再現性問題などを考えるにそういう哲学的思慮は大事だと思いますよ。つい最近もこういうディベートがありましたし、それを「宗教戦争」だって矮小化すると本質を捉えられずインパクト0の研究をすることになるのでは。いやもうそうだけど。 https://t.co/sD9fnKmF74」 / Twitter
Statisticians Debate Issues Central to Inference and Estimation | National Institute of Statistical Sciences
Ken McAlinnさんはTwitterを使っています 「インパクト0はクロムウェルの法に反してましたね。エプシロンに訂正します。」 / Twitter

数理最適化

UmeponさんはTwitterを使っています 「先日の白金鉱業.FMで「数理最適化では機械学習のような過学習のような問題はないんですか?」と質問されて、今まで強く意識していなかったなあと気付かされました。」 / Twitter
UmeponさんはTwitterを使っています 「もともと数理最適化では、任意の入力データに対して解の最適性と最悪計算時間を理論的に保証するようにアルゴリズムを設計・開発するので、そういう問題を議論する文化がなかったんだろうなあと。」 / Twitter
UmeponさんはTwitterを使っています 「ところが、現実問題の多くがNP困難な組合せ最適化問題で、アルゴリズムの出力する解の最適性や最悪計算時間が理論的に保証できなくなり、そういうことと向き合う必要が生じてる。」 / Twitter
UmeponさんはTwitterを使っています 「代表的な組合せ最適化問題では、ベンチマーク問題集というべきデータセットが公開されて、それらの問題例に対するパフォーマンスで開発したアルゴリズムが評価されてるけど、それって機械学習における過学習と同じ問題が生じてるのは本当にそう。」 / Twitter
UmeponさんはTwitterを使っています 「最近の組合せ最適化のコンペティションでは、出題時に配布するデータと評価時に使うデータを分けて、後者をシークレットにしてるし、数理最適化の論文に数値実験の結果を掲載する際にも、そういう手続きは必要かなと思う。」 / Twitter
UmeponさんはTwitterを使っています 「トークでは、入力データの不確実性という観点からロバスト最適化の話題に触れましたが、こういう観点もあったなあと思い出した次第です。」 / Twitter

組合せ最適化

がぶさんはTwitterを使っています 「社内で話題 https://t.co/iOowCTeeQk 組み合わせ最適化→組合せ最適化がいいよって話 https://t.co/tAVUBTy7g6」 / Twitter
電通、エー・スター・クォンタムと業務提携 - ニュースリリース一覧 - ニュース - 電通
「組合せ最適化」と「組み合わせ最適化」のどちらが正しい? - Togetter
がぶさんはTwitterを使っています 「「組み合わせ最適化」って検索するとことごとく「組合せ最適化」ってでるの面白い https://t.co/564fD161lQ」 / Twitter
組み合わせ最適化 - Google 検索

関数解析的資料

逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「まだ出版会社とか決まってませんがgithubあたりで順次公開したら見に来てくれる人よかったらふぁぼください ふぁぼ多ければ公開します」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「私が機械学習の入門書出せたら 初手でヒルベルト空間を仮説空間として導入して、汎関数で損失関数を定義し、フレシェ微分で勾配法を定義する。 実アルゴリズムはこれの特別な場合です。 数学科学部レベルの解析学を履修した人にはさいっこうにわかりやすい機械学習の入門資料」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「ニューラルネットもSVMもResNetも、ぜーーんぶ積分表現理論とかの無限次元の連続理論を先に持ってきて、実際のアルゴリズムはすべてその離散化として定義する」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「機械学習始めた頃、多くの書籍の数学的な雑さに戦いた。 今はもちろんだいぶ機械学習のことがわかってるから、雑な資料でも忖度して読めるけど、今後機械学習始める数学徒があんな無駄な努力する必要はないです。 初手から関数解析的な資料でやった方がいいに決まってる」 / Twitter
逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「「一般的な機械学習入門書」はこのレポジトリで公開となります。今(2020/10/11現在)は序文しか書いてませんが、これを更新する形でどんどん作り上げていく所存。 https://t.co/yNkutk6PwL リンクミスったので再掲」 / Twitter
Runnrairu/Machine-Learning-text: 一般的な機械学習入門
takuya kuboさんはTwitterを使っています 「@ranoiaru 解析学の方なのですね。情報幾何は(本当はちょっと違うけど)統計モデル上の微分幾何で、双対アファイン接続(接続のなかで計量によって結ばれる対のアファイン接続)がわかってしまえば、かなり素直な話だと思います。 輸送解析も楽しみです。頑張ってください。」 / Twitter
逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「@bocchi_talks 専門はSDEです」 / Twitter

次元

七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
七誌さんはTwitterを使っています 「イメージを式で表すことを試みる。 n次元の擬ベクトルはn-1本のベクトルの外積で構成される。 例えば5次元では v₁∧v₂∧v₃∧v₄=⋆v₅ となり、左辺が張る部分空間に次元を落とすことを繰り返して、2次元まで落とす。 v₁∧v₂∧v₃=⋆v₄ v₁∧v₂=⋆v₃ そもそもv₁∧v₂だけで表せるけど…」 / Twitter

テンソル

Shinji KonoさんはTwitterを使っています 「ベクトルとテンソルの「変換」は、実態は一つ。変換されてるのは座標系に対する表現。それが理解できれば変換は自然に見えてくるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「では実態は何かというと位置と線形変換。なので、座標変換自体もテンソルなので、なれないと混乱する。計量テンソル。」 / Twitter
Shinji KonoさんはTwitterを使っています 「行列とテンソルの違いは、行列は表現のことだが、テンソルは線形変換という意味を持ってるってこと。テンソルの行列表現とかそんな感じ。」 / Twitter

機械可読自然言語

ロボ太さんはTwitterを使っています 「日本語みたいな自然言語を、プログラミング言語と同じレベルで機械可読になるように言語仕様を定めることができたらうれしいかなぁ。日本語っぽいプログラミング言語ではなく、プログラミング言語っぽい日本語って意味で。例えば複数の意味に取れる文章は文法エラーになる、みたいな。」 / Twitter
ロボ太さんはTwitterを使っています 「昔、AIに協力しながら何かをさせるタスクを与え、自由に通信させてたら、そのうち「共通言語」を作り出していった、みたいな研究みた気がするけど、そうしてできた「人工自然言語」は、機械可読性が良くなるのかなぁ。それとも曖昧性が残るのかしら。」 / Twitter
uint256_tさんはTwitterを使っています 「@kaityo256 https://t.co/CIMggdv9oD これでしょうか」 / Twitter
1706.05125.pdf
ロボ太さんはTwitterを使っています 「@uint256_t 僕が見たのは10年以上前、教師なし学習で人工言語を作る試みだった気がします。でもこの論文も面白そうですね。」 / Twitter

テスト

Shuhei FujiwaraさんはTwitterを使っています: 「機械学習、「大量にテストケースを用意すると、それなりにそのテストを通過する関数を自動生成できるやつ」で大体のエンジニアに伝わると思うんだけどどうなんだろ」 / Twitter
そすうぽよさんはTwitterを使っています: 「@shuhei_fujiwara 未知の入力に対してもそれっぽい答えを返す(返してほしい)という性質も重要だと思います」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@_primenumber もちろん大事は大事なんですが、そのあたりは大雑把な仕組みがわかった後に伝える方が楽かなという気持ちです」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数って言葉は正確でない気がします。本当に関数を生成できたら、すごい技術ですが。多分究極のAIですね。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 多分優秀なエンジニアほど、言葉の正確性に対するこだわりは強いので、「それができたらプログラマも機械学習に駆逐されるじゃん!と感じてしまうと思います。生き残るのは… 多分テストケース職人??(か、仕様書書きエンジニアのみ)」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 関数の形に強い制約があるとか省略している部分はあるけど、一応一部の教師あり学習に対しては嘘ではないと言って良い程度の説明かなあと思っています。 相手が本当に厳密な説明を求める場合はみっちり数時間付き合ってもらうしかないですね(実際に本気で興味を持ってくれたらする気はあります)。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数ではなく、ロジックという言葉を使うのはどうでしょうか?ロジックのほうが、意味合いが広いので、関数より良い気がします。関数というと、プログラミング言語で言うところの関数を連想するので、誤解を与えるかと。」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 普段はもうちょっと慎重に言葉を選ぶので、僕も実際にロジックという言葉を使っていますね。 「データから欲しい入出力のロジックを逆算で生成するのが目標」という説明をすることが多いです。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara あと、これも優秀なエンジニアならではですが、テストケースが通ればいいだけだったら、もろ過学習しまくってしまえばいいんでない?AIってそんなもんなの?なんて誤解もあるかもですね。学習データにない入力にもそれなりな出力を返せるようにできることも捕捉が必要だと。」 / Twitter

無限小での線形代数

ふみさんはTwitterを使っています 「大学入ってすぐの微積の授業で教授が「微積は無限小で線形代数をする分野」って言ってて、そのとき微積と線形代数が全く別物だと思ってた私は意味わからなかったけど、今はめっちゃわかるし的確に言い表した言葉だったんだなって感動している」 / Twitter
無限小と微分 | 関数の微分 | 微積分 | 数学 | ワイズ
授業実践記録
無限小 - Wikipedia
小話Vol.3:関数の「無限小バトル」と「微分可能性」 - 新米数学博士の数学談話室
Lecture9.pdf
第1章 微積分入門
TRonso33_Ikeda.pdf

統計的因果推論

須山敦志 Suyama AtsushiさんはTwitterを使っています 「非常に参考になります。因果推論も仮定の明確化が超重要ですね。 https://t.co/nBwE2etUvL https://t.co/71buObKlVM」 / Twitter
統計的因果推論入門の講義資料を公開しました - Unboundedly

確率分布

@7shi

七誌さんはTwitterを使っています 「二項分布→ポアソン分布→指数分布→ガンマ分布 の流れを勉強した。導出まで追っていないけど、それはまた別の機会に。ポアソン分布は素朴な算数で出せそうな気がしたけど、ネイピア数が出て来る時点で素朴な算数ではない・・・ #bayes_hmc」 / Twitter
七誌さんはTwitterを使っています 「@gm3d2 Wikipediaを見て気付きましたが、半減期もポアソン分布なんですね。」 / Twitter
gm3dさんはTwitterを使っています 「@7shi 量子力学でそのうちある状態から別の状態への「単位時間あたりの遷移確率」を計算すると思うので、そうすると系が始状態のままでいる時間(=寿命)はポアソン分布になります。」 / Twitter
七誌さんはTwitterを使っています 「@gm3d2 ポアソン分布は単純な仮定から導かれるので、適用範囲が広いのですね。」 / Twitter
七誌さんはTwitterを使っています 「ポアソン分布と指数分布を知っている現象に適用するなら原子核の半減期かなと思うけど、分布の理解が曖昧で自力では適用できなかった。 「一つ一つの崩壊する時間間隔の確率は指数分布に従い、単位時間あたりの崩壊はポアソン分布になる。」 https://t.co/nx9Krkvpas」 / Twitter
半減期 - Wikipedia
七誌さんはTwitterを使っています 「ずっとシュレーディンガー方程式は何を扱っているのかちんぷんかんぷんだったけど(計算すると確率分布が得られることしか分からない)、量子力学の難解さと関係なく、単に周辺知識(ハミルトンヤコビ、微分方程式、波動、フーリエ、連続の式、拡散など)が不足していた面が大きかったと感じている。」 / Twitter
七誌さんはTwitterを使っています 「確率分布の時間発展をアニメーション化するとうねうねしているのはピンと来なかったけど、正規化されていれば面積が保存される(常に1)ので、非圧縮性の流体みたいな感じがして来た。そういう手がかりもなく漫然と見ていても、何もイメージが湧かない…」 / Twitter
七誌さんはTwitterを使っています 「一周回って、改めてリウヴィルの定理を眺めていた。深い・・・ 「確率分布がどのように時間発展するかを予言する定理」 「時間発展に対して相空間中の体積が保存」 「運動は非圧縮性流体中の浮かぶ微小な粒子の運動に類似」 https://t.co/rjeopv34Yj」 / Twitter
リウヴィルの定理 (物理学) - Wikipedia
七誌さんはTwitterを使っています 「ざっくりした書き方に好感を持った。 「情報幾何学に現れる空間はコンパクトではない(略)。なので、安心して積分を行えない可能性がある。それを安易に回避するには積分値が有限となるものを積分すれば良い。」 シンプレクティック・ベクトル空間上の確率分布の発展について https://t.co/rp4ydtZKfR」 / Twitter
Kyoto University Research Information Repository: シンプレクティック・ベクトル空間上の確率分布の発展について : ラクダを飼ってみませんか? (統計多様体の幾何学の新展開)
七誌さんはTwitterを使っています 「言い回しが面白い。 「シンプレクティック幾何学とは、非退化で可積分な構造(微分2形式)を備えた多様体の幾何学であり、古典力学を無駄と思える程に抽象化した解析力学を更に抽象化したものである。」」 / Twitter
七誌さんはTwitterを使っています 「話題に出ている島谷先生の『ポアソン分布・ポアソン回帰・ポアソン過程』は面白そうだったので入手していたけど、いつものように積んでいたので少し読んでみた。 確かに、パソコンを使って乱数でシミュレーションをして納得感を得ることが強調されている。私が先日書いた非局所性の記事と同じ方針だ!」 / Twitter

τ-σさんはTwitterを使っています 「与えられた確率 分布がどの程度にべき分布に近いのかということを定量化し,妥当な閾値によって判別 できる方法が,Clauset らによって最近開発された https://t.co/2gshuffR5p」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 似てるな〜と思ってちょっと考えたのですが、wavenetの正解データはone-hot vectorなのに対して、生成データは確率分布なので、GANの判別器が判別しやすすぎて上手く学習されない気がします。正解データの方も確率分布にするいい方法があれば、かなり上手くいきそうに思えます!」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta parallel WaveNetの場合、連続な確率分布が出力です。しかも平均値が分かります。その平均値をgeneratorの出力としてGANに取り入れられそうだなと思っています。元論文でもparallel WaveNetの出力をSTFTして誤差に用いているのは、同じ仕組みだと思っています。」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 平均値を判別器に入力するの、とてもいいと思います!! その場合、wavenetが出力する確率分布の山が1つであることが前提になりそうですが、実際山は1つなんでしょうか??(wavenetやったことなくて知らなくて・・・画像の方のPixelRNNの方は、論文で多峰になることを報告していました!)」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta 私もWaveNetの出力を観察したことはないので分かりませんが、多峰になることは多い気がします。VAEのようなトリックを使って、微分可能なサンプリングをすればいいのかも?(parallel WaveNetもlossの計算で何かしら工夫をしているはずです)」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 確かに! 正規分布の混合みたいな多峰の確率分布であることを仮定して、VAEを使ってサンプリングすればできるかも・・・うーん、なるほどです。parallel WaveNet、もうちょっと深く読まねば。良い議論でした!ありがとうございます!!」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta こちらこそありがとうございます。蛇足ですが、parallel WaveNetでは256クラス分類ではなく、波形の各サンプルがロジスティクス分布の混合から生成されると仮定して、その分布の母数をネットワークの出力としています。parallel WaveNetというか、PixelCNN++で提唱されたテクニックですが。」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ そうなんですね!! parallel WaveNetは難しそうで・・・ それを踏まえて詳細に読んでみたいと思います!!ありがとうございます!!」 / Twitter
出国失敗さんはTwitterを使っています 「@kazuokiriyama_ 確率分布も有名なものは知っているといいかもしれないです。 例えば、判別分析で、与えられたラベル付きデータをグループごとに分ける直線を引くのは、各グループのデータが、分散が同じ正規分布から生成されたと仮定して、確率が最も大きいグループから生成されたと推定することに対応しています。」 / Twitter
いんぐらむさんはTwitterを使っています 「@brenazmsc その辺はPRMLの2章で泣きながらやってるので大丈夫かと……」 / Twitter
出国失敗さんはTwitterを使っています 「@kazuokiriyama_ それなら大丈夫そうですね。等分散の仮定を外すと判別関数が2次式になるのも面白いです。 パッケージを使っているだけで何をやっているか知らない状態だと、不適切な手法で分析を行ってしまうことがあるので、理論を学ぶのも必要と感じています。」 / Twitter
s.t. 超兄貴ではないさんはTwitterを使っています 「最尤法による判別分析 メリットはサンプル数が多ければ、確率的に判別できる デメリットはデータの分布が既知である必要があることと、サンプル数が必要であること #kantomath #kantomath1」 / Twitter
俺人〜Oregin〜さんはTwitterを使っています 「#JDLA #G検定 復習のつぶやき。 生成モデルの復習 訓練データの特徴を学習し、類似したデータを生成するモデル。例として、自己符号化器の潜在変数に確率分布を導入したVAEや、訓練データと生成器が生成したデータを識別器で判別させることによって学習を進めるGANなどがある。」 / Twitter
みっちゃん|研究者✖️ブロガー|毎日一歩ずつ成長中🥚→🐣さんはTwitterを使っています 「今日は、ベイズの定理を用いたデータ判別を紹介しました。 https://t.co/LWsVtKkPxk – ベイズの定理を用いて、学生さんを配属するクラスを判別する – ベイズ判別=確率分布を考慮したベイズの定理 #ブログ #ブログ初心者 #ブログ更新しました #17日目 #ベイズ判別 #データを判別する方法はいろいろ」 / Twitter
ベイズの定理を用いたデータ判別【ベイズ判別法】 | mi-chan-nel | みっちゃんねる
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、正規分布仮定が論外なのはマンデルブロ「禁断の市場」で知った。 (ノア効果やヨセフ効果という用語もこれで知った…後者はランダムな独立過程でなくて大変動が長期影響する話)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ただマンデルブロの本にしても「グラフの相似形から世界にべき乗則多い」と気づいてマルチフラクタルやノア効果等その性質を深める研究をしたものの、その根源(なぜべき乗則が現れるか)については説明が無い気が…「だって潜水艦ノイズから綿花価格までべき乗則に溢れてるから」的な。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 #数楽 正規分布に関連している確率分布達について勉強すると、結果的にガンマ函数とベータ函数について学ぶことになるのですが、そのとき、ベータ函数の4種の表示を心に留めておくと計算の見通しが良くなる場合があります。そのとき②を忘れずに!詳しくは添付画像を参照。 https://t.co/g1gvMwHcvF」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 ガンマ函数とベータ函数で済ませることができない場合には超幾何函数達まで一般化する必要が生じる。一般化する前にガンマとベータの扱いに慣れておくことは損にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「楕円な分布に線を引いて、どれが近似とか議論してる統計は嫌い。楕円は楕円だろ。」 / Twitter

確率・統計・意味

純セメスさんのツイート: "児童虐待死事件に心理学者の先輩は「円環的因果律って知ってます?物事の要因は1つだけでなく沢山あって、中には無限ループになってるものもあるんです。それなのに知りもしない外野の人間が結果論で1つの原因を見つけて袋叩きにしている。そんな奴がいる限り虐待問題は解決しません」なるほどである… https://t.co/rVLbsQbjnc"
Yusuke Odaさんのツイート: "NMTがポジネガ間違えるのは極めて典型的なエラーで,誰が翻訳モデル作っても発生しうる問題なんですが,世間的にはやっぱり今でもパターンマッチで翻訳しているものと思われているらしく,特定のリクエストから学習したんだろうという言説が飛んでいる."
Yusuke Odaさんのツイート: "ポジネガの間違いは人間が見れば致命的だが,ニューラル翻訳モデルからしてみればたった1単語の差異でしかないので,人間が思っている以上に矯正は難しい(恐らく世界中の機械翻訳研究者が頭を抱えている)"
Shiro Kawaiさんのツイート: "「意味が逆になる」ことの重大性への重み付けは、対訳だけを学習データとする限りは得られないって感じなのかな。その範囲では些細な違いだし >RT"
須山敦志 Suyama Atsushiさんのツイート: "ガウス過程のインタラクティブなデモ。 特に最後にあるカーネル関数の組み合わせ方と得られる予測分布の関係性はとてもわかりやすい。 https://t.co/87goFc6gGC"
A Visual Exploration of Gaussian Processes
Kohei Ichikawaさんのツイート: "非線形システムにおいて系全体の状態を決定する(observabilityを実現する)ために必要になる最小の直接観測すべきノードをグラフの静的な情報から調べる手法を提案。 双対する概念である可制御性は非線形だとお手上げだったのに可観測性は上手くいくのがとても面白いです。 https://t.co/7XHvwFuXdR… https://t.co/FQuvUnE24m"
Observability of complex systems | PNAS
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔から、研究で「信頼性区間95%」が多くて、「どこから出た基準なのだろう?」という疑問があったが、今月の日経サイエンスで氷解。 統計学を作ったフィッシャーさん「とりあえずp=0.05くらいが妥当?」と書いただけだったという話。さらに後年、0.05を挙げた点を後悔していたとか(笑)」 / Twitter
三鷹ういさんはTwitterを使っています: 「@shirouzu @NikkeiScience フィッシャーさんが、農学者であった点は注目ですね。 農業なら、20年に1回は異常気象です。」 / Twitter
dif_engineさんはTwitterを使っています 「測度論的確率論のすごさってのは,(考えても仕方ない)「なぜある試行でそれが選ばれたか」を全く問題にすることなく確率的な現象を記述してることなんだけど,平岡&堀『プログラミングのための確率統計』以外でそういうことを強調して書いたものを見たことがない気がする.」 / Twitter
dif_engineさんはTwitterを使っています 「すごさの一つ,ですね.主語がでかすぎた.」 / Twitter
dif_engineさんはTwitterを使っています 「自分は確率論の講義受けるまえにルベーグ積分のあらすじは理解していたので,確率空間の公理が難しいとは思わなかったけど具体的な現象との結びつきかたの理解にはその後長い時間がかかった.」 / Twitter
dif_engineさんはTwitterを使っています 「コルモゴロフの『確率論の基礎概念』は,そのちょっと前のフレシェの仕事にヒントを得てラプラスやガウスあたりまでの話を整理したみたいなことなんじゃないかと思ってる(けどよくわからない).」 / Twitter
dif_engineさんはTwitterを使っています 「『確率論の基礎概念』はこの分野が測度論で塗りつぶされるきっかけをつくった本だから「ランダムネスそのものを正面から取り扱わないよ宣言」ぐらいありそうだと思うかもしれないけどそういうことは書いてくれてない.」 / Twitter
dif_engineさんはTwitterを使っています 「若干繰り返し気味になるが,フレシェの仕事に刺激されてラプラス,ガウスあたりの仕事を「現代風に」しようとしたという意味なら結局問題は「期待値の評価」であってランダムネスそのものは興味の関心からズレていくよね.」 / Twitter
統計たんさんはTwitterを使っています 「統計学を理解するには,データから推論をしているから客観的な推論になっている,というナイーブな価値観を投げ捨てることがまず必要だと思います。」 / Twitter

ベイズ

ベイズの事前分布

須山敦志 Suyama AtsushiさんはTwitterを使っています 「基本的に超パラメータというものはデータのなんとなくの「スケール観」を示しているものです。超パラメータの最適化というのはそのスケール観をデータから自動調整することを意味します。モデル選択の1つと考えるべきですが、やりすぎると当然過学習してしまいます。僕は最適化はしません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「よくデータを正規化(平均ゼロ、分散1にそろえる)みたいな謎の前処理を見ることがあるのですが、ある意味ベイズ統計の事前分布のパラメータ(超パラメータ)はこのようなデータのスケール設定を妥当性・解釈性を持って実施するものだと見ることができます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「XXXを最大化/最小化する」みたいな設計方針の統計手法は、このようなデータのスケール観や考慮するノイズ量の情報がわかりにくくなってしまっている場合が多い。だからスケーリングなどの前処理に闇雲な試行錯誤を要する。確率モデルで手法を解釈するとこの辺の仮定がわかりやすくなる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これ、古いツイートでしたが、「超パラメータ」はベイズの事前分布のパラメータを指していることに注意です。最適化アルゴリズムの設定パラメータなどは指していません。」 / Twitter

ベイズ統計の回帰モデル

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計の回帰モデルの解説で「パラメータの事後分布p(θ|y)を求めてから予測分布p(y*|y)を求める」と書かれていることが多いが、この手順は必須ではないので本質的ではないと思う。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「現に、モデルとデータから予測分布を出すにはパラメータをまるまる周辺化して消してしまってもよい。その意味で、予測を行うためにはパラメータの存在自体とか「学習」といった考え方はそもそもなくてもOK」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「事後分布→予測分布の計算手順は典型的だし、直観的にもわかりやすいので支持されているのだと思うが、この手順が当たり前だと思い込んでしまうと潜在変数モデル、時系列モデル、ノンパラモデル、教師あり/教師なし/半教師ありといった手法を統一的に理解できなくなる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「複数の手法やモデルを統一的な観点で理解しておくと、いろんなアイデアの間を自由に行き来して適宜活用できるのでとても便利だし、何よりストレスが少ない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「とは言え、何でもかんでもひとつの枠組みに丸め込んでしまうと思考停止になることもあり得るので、「事後分布→予測分布」のような特定の典型例にあえてフォーカスして性質を調べたり計算を効率化したりするのは工学的な観点で重要」 / Twitter

TensorFlow User Group ベイズ分科会の資料 PPLについて - HELLO CYBERNETICS
バッチベイズ最適化を使ってロボットに完璧なオムレツの調理方法を学ばせる

特許

Hacker Newsさんのツイート: "Google's PageRank patent has expired https://t.co/qozXMIut9A"
US6285999B1 - Method for node ranking in a linked database - Google Patents

ツール・ライブラリ

piqcyさんのツイート: "Microsoftが、高速なTokenizerをリリース。その速度は、なんとspaCyの10倍にのぼる。現在はアジア圏の言語がサポートされていないが、今後に期待。 https://t.co/VrbxrGOmUy"
Microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
Wolfram Japanさんのツイート: "ソフトウェア開発者のためのWolfram Engineが無料で公開されました。どんなシステムにも配備でき、プログラム、言語、Webサーバから呼び出せるWolfram言語エンジンです。ご興味のある方はStephen Wolframのブログページからダウンロードしてお試しください。 https://t.co/1QKMY23eQq… https://t.co/suPRPmDUGY"
Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Blog
ikawahaさんのツイート: "かわいそうな形態素解析ライブラリとしておなじみの kagome が docker デビューしたよ 🎉 KEINOS さんありがとう! #デモサーバがすぐ立てられるのでラティス見たりするの楽になるかもね https://t.co/YMl9D5TBo0"
ikawaha/kagome - Docker Hub
kentoさんはTwitterを使っています: 「@sanjutsu_yu そんな感じを考えてます! 日本語を論理式に変換して、さらに文間の含意関係の判定を行うソフトウェア(https://t.co/ps4yK3nrgu)がもうあるので、今は簡単な対話型インターフェースと定理のデータベースを追加して、自分で使ってみようとしてます。 含意関係認識はCoqのtacticでやってるみたいです」 / Twitter
mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.
kentoさんはTwitterを使っています: 「@sanjutsu_yu もちろん変換は完全ではないので使ってみて問題があるかとは思いますが... 組合せ範疇文法という文法に基づいて日本語を論理式に変換するんですが、日本語で最初に定義されたのが2010年、このソフトウェアの論文が出たのが2016年なので現代に生まれてよかったです。」 / Twitter

異常検知

Yasuhisa Yoshidaさんのツイート: "最近仕事で取り組んでいた異常検知の機能、やっと出せました。ロール内で普段と異なる動きをしているホストを教師なし機械学習で検知します。検知だけではなく、このメトリックの動きが変っぽいよというところも提示するのもポイントです(解釈可能な機械学習ってやつ)。 https://t.co/HW5t5sy5IA"
新機能・ロール内異常検知の使いかた - Mackerel ブログ #mackerelio
Mamoru KomachiさんはTwitterを使っています: 「今日は吉田さん (@syou6162) に大学院の集中授業で異常検知を題材に演習をお願いしています。講義資料は以下だそうです〜 https://t.co/Mcv0tPZXFg」 / Twitter
syou6162/tmu_cs2

手法の区別

HELLO CYBERNETICSさんはTwitterを使っています 「モデルと推論or最適化手法、そしてアルゴリズム(具体的な実行手順)は明確に区別した方がいいです。おそらく、そこらへんがごちゃごちゃになるから膨大な種類の機械学習手法がバラバラにあるように見えるのだと思います。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「NNはモデルで勾配法は最適化手法で、後方自動微分が勾配を求める具体的なアルゴリズムです。 単層パーセプトロンに勾配法を利用する場合は上記と同じですが、勾配法ではなく凖ニュートン法を用いることもでき、ロジスティック回帰はそのケースが多い。 呼び名が変わるが変わってるのは最適化手法。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「別に勾配法を利用していてもロジスティック回帰と呼べて、なぜならこの呼び名がモデルに対してつけられているから。シグモイド関数が出力層に来てる単層パーセプトロンとロジスティック回帰はモデルとして同じ。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「あと状態空間モデルは無論モデルで、その中の隠れマルコフモデルや動的線形ガウスモデルがある。 これに対して、ベイズフィルタの一種であるカルマンフィルタやパーティクルフィルタは潜在変数の推論方法。HMMの潜在変数推論として動的計画法の一種のビタビアルゴリズムがあるようなもの。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「線形ガウスモデルやHMMに対してEMアルゴリズムを利用すると潜在変数に加えて状態空間空間モデルのパラメータを推定するということができる(EMアルゴリズムがパラメータと潜在変数を逐次最適化するアルゴリズムという考え方)。」 / Twitter

モデル

データ丸暗記

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「A Iはデータが正しくないと動かない」は間違い。より正確には「モデルで想定されていないデータが入力されると正しく動作しない」です。なぜ前者のような間違いが起こるかというと、現状応用されているほとんどの機械学習や深層学習のモデルがデータ丸暗記なやり方に依存しているからです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データの汚さや不正確さを理由にして実用への失敗の理由にする考え方はよろしくない。丁寧な実験計画でも組まない限り、世の中に出回っているリアルデータは全て「汚い」と考えた方が良いし、それへの対処がまさにエンジニアリングで求められているものです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「あるAIベンチャーの人がまさにこのような発言をしていたわけですが、これは「私はリアルなデータを扱ったことがありません」という白状に近い。この辺りも、A Iに関する企業や取り組みが実応用に根ざしたものかどうか判断するのに役に立ちます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ウェブデータで学習されたAIが差別的な発言をしてしまう件に関して、「AIは素直に学んだだけ、悪いのはデータ」みたいな妙な結論を出すのは良くある話。いや、AIが悪い。人が設計している以上、AIを何か別の知的主体かのように捉えて責任逃れするのは間違っている。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これに限って言うと、AIはウェブデータから頻度に基づく類推を行っただけです(前述の通り、丸暗記するだけなので)。世の中どれくらい差別や偏見に満ちた発言が多いのか、という集計くらいにはなったかも。」 / Twitter

piqcyさんのツイート: "文表現を得るためのUniversal Sentence Encoderの多言語版モデルが公開。学習に使っている言語には、日本語も含まれている。単語分割はSentencePieceベースのよう。… "
takuya-aさんのツイート: "LightGBM のモデルのデバッグのために SHAP 使ってみたけど、簡単に始められてよかった。Jupyter の中から普通に可視化できる。 https://t.co/Vf2VGmnkEC"
slundberg/shap: A unified approach to explain the output of any machine learning model.
Daisuke OkanoharaさんはTwitterを使っています: 「微分、積分、微分方程式などのシンボリックな数学方程式はNNで驚くほどの精度で解ける。方程式を木表現経由のポーランド記法で表し、Transformerを使ったseq2seqで教師あり学習する。MathematicaやMatlabを超える求解率を達成できる他、有効な解を一つだけでなく多く列挙できるhttps://t.co/dQco5uihuE」 / Twitter
Deep Learning For Symbolic Mathematics | OpenReview
nikqさんはTwitterを使っています: 「https://t.co/LAGdNiwKVu うへーすごい、Network architecture searchの結果、まじでただランダムにつないだNNがResNet-50相当を達成…」 / Twitter
Randomly Wired Neural Networks - Towards Data Science
HELLO CYBERNETICSさんはTwitterを使っています 「ベイズモデリングは、予測にとにかく効きそうな中間表現(潜在変数)をモデルに持たせつつ、統計のことよくわからん人にも、なんだか納得してもらえるような事後分布や予測分布などのバラつき表現も兼ね備えており、 ツールとして予測重視の機械学習と説明重視の統計のいいとこ取りが形式的にできる。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「実際のところ潜在変数に実体としての対応物が無かったとしても、グラフィカルモデル見せながら、なんとなくの納得感が得られるのは、人間側のバグ的な要素も大きいのだが、事をすすめる上では重要だったり…」 / Twitter
Kazunori SatoさんはTwitterを使っています 「出自不明・説明不能な謎MLモデルを乱造しないように、Googleが提唱するMLモデルのマニフェスト作法「Model Card」を作る方法を解説。この例ではscikit-learnとAI Platformを利用。 #gcpja」 / Twitter
Google Cloud JapanさんはTwitterを使っています 「人気の高い scikit-learn フレームワークを使用して、独自のモデルカードを簡単に作成する方法をご紹介。あらゆる機械学習フレームワークに応用できます。https://t.co/nCaHsbZg3z #gcpja」 / Twitter
Scikit-Learn でモデルカードを作成してクラウドにデプロイする方法 | Google Cloud Blog

単語ベクトル・単語選択・距離

やぐさんのツイート: "指定した語彙だけに限定することで単語ベクトルのモデルサイズを小さくする変換コードを書きました。読み込み時間短くしたりdockerに載せたりするときに便利かもです。 https://t.co/3ZJwBx8VyB"
Out-of-the-box - 語彙を限定して単語ベクトルのモデルサイズを小さくするminify_w2v
やぐさんのツイート: "単語埋め込みのout-of-vocabularyのベクトルの初期化を自分でも実装して試してみました。Kaggleのコンペでは如何にOOVを無くすかが重要だったみたいですが、実タスクだとどうなんでしょう Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化 https://t.co/54O9zJMwR5"
Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化
piqcyさんのツイート: "単語分散表現において、Euclid距離で意味の近さ、加減算で意味の差し引きができる理由について調べた研究。共起シフトPMI(csPMI=PMI(x,y) + log p(x,y))という値が単語ペア間(王様/男性, 女王/女性)でそれぞれ等しければ、それらはベクトル空間上で同一平面に存在することを証明している。… https://t.co/6wFGeSvp67"
ketsumedo_yarouさんのツイート: "faissがついに1T=10^12本のベクトルに対する探索の話を始めたので、いよいよ大学レベルで個人で何か出来る時代の終わりが近付いてきている(これまでこの界隈は1B=10^9本の話だった) https://t.co/6UoR0tx5vu"
Indexing 1T vectors · facebookresearch/faiss Wiki
しゅんけーさんのツイート: "精度を保ったまま最小限の語彙を選択する variational vocabulary dropout (VDD) を提案。多くのNLPタスクで用いる語彙数は昨今非常に大規模となるが、限られた計算リソース下での実行することは難しい。 そこでdropoutベースで精度低下に寄与しない単語を学習する枠組みを導入している。… https://t.co/qYAAV6k4Tw"
しゅんけーさんのツイート: "How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey https://t.co/bKLMnUV1Z6 @shunk031さんから… https://t.co/281qr1I4w6"
How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey

データ

TJOさんのツイート: "機械学習を用いた自然科学研究の多くに既に「再現性の危機」や「データセットの選別による恣意的な知見」という問題が出ているらしく、かつて心理学や認知神経科学が踏んだ轍を高速かつ全力で後から踏みに行っているということで険しい顔をしてゐる https://t.co/y3A7KboQOD"
AAAS: Machine learning 'causing science crisis' - BBC News
elasticJPさんのツイート: "#Elasticsearch において、言語アナライザーが文章を単語に正しく分割するためには辞書の存在が重要です。最近良く聞かれる「辞書を更新する際の挙動」についてブログを書きました。是非お読みください。https://t.co/MpsrnNivqN"
CJK アナライザーの辞書更新時の挙動について | Elastic Blog
Taku Kudoさんのツイート: "最近この手の「機械学習に使えるxxx」という記事を散見するが、手段と目的が入れ替わってておっさんには理解しがたい。 https://t.co/IONds3Tdyq"
【20個掲載】機械学習に使えるスポーツ関連のデータセット | Gengo AI
Shun Aoki🇺🇸青木俊介👑さんはTwitterを使っています: 「GitHubにあるオープンデータのまとめ。機械学習用の有名どころから交通系・社会科学・気象系などなど網羅されているので領域のオープンデータを俯瞰で見るにはとても良さそう。5年ほど運用されているっぽい。 https://t.co/75YxqhMNBh https://t.co/xfks0V6dPM」 / Twitter
awesomedata/awesome-public-datasets: A topic-centric list of HQ open datasets. PR ☛☛☛
Susumu YamazakiさんはTwitterを使っています: 「統計や機械学習において,諸事情で集められないデータをどのように扱うか,という議論は,とても大事だと思います。 というのは,例えば AI とヘイトが強く結びついてしまう事例が散見されますが,本質的な理由の1つは,人種や民族にわたってデータを集める条件が揃っておらず,公平でないからです。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「この問題については「MBA が会社を滅ぼす」という書籍でも論じられています。データ駆動による経営では,測られないデータによって,大きく誤差を生じてしまう,というストーリーです。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「さて,行動経済学における「ナッジ」という考え方は,人間の本能的な思考様式によって,認知が歪められてしまい,合理的に判断することができなくなるということに着眼しています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「ナッジと同じ議論が,機械学習や統計学など,データ駆動の考え方についても言えるのかもしれません。すなわち,補正が必要です。」 / Twitter
ゆうだいさんはTwitterを使っています 「機械学習のためのデータセットが大量に公開されている神サイト. https://t.co/U3rpWNCiOx」 / Twitter
UCI Machine Learning Repository
HELLO CYBERNETICSさんはTwitterを使っています 「データないけどオンライン強化学習で何とかしたい みたいなのカジュアルに言うのは構わんが、CartPoleを適当な手法で良いから一回動かしてみてほしい。このレベルのタスクですらエピソードは数百必要なわけですが、本当に覚悟あるのだろうか。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「統計のプロを謳う人がこれを言っていて、私が "サンプルサイズが大きすぎるのは良くない"というのは、実験とデータ収集にはコストが掛かるのだから"意思決定に必要なサンプルサイズを見積もりましょう"という意味ですよね と確認したら、検定に応じて最適なサイズがあるのだと言われたので、黙った。」 / Twitter
nekoumeiさんはTwitterを使っています 「ずっと気になってたので調べました 「サンプルサイズが大きすぎると良くない」ってどういうこと?|nekoumei #note https://t.co/KQQ7cRAojW」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「それ以前に、サンプルサイズと標本数を混同していたり、統計計算では不偏分散を用いるものだと言っていたり、よく分からん変換をカマしてとりあえず単回帰していたり、正規分布してなかったり直線に乗らないデータは異常だと言ってたり、社会はそういうものかと現実に戻された感があってよかった。」 / Twitter

データ構造

takuya-aさんのツイート: "ANNのインデックスの構築戦略おもしろい。1時間・1日・1ヶ月ごとに差分に対してインデックス構築してデプロイ、APIサーバからそれらを自動で組み合わせて返している。 / “メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog” https://t.co/zqati0ay3W"
メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog
takuya-aさんのツイート: "ダブル配列の構築時の空き領域の検索、簡潔ビットベクトル使ったらけっこう高速化できんじゃね?って思って調べてたら、すでにdarts-cloneに実装されてたときの顔してる"
かんぱさんださんのツイート: "Goでダブル配列書きました。あまり最小接頭辞トライを採用してる実装がないように感じたので、最小接頭辞トライを採用してます。普通のトライと比べて、多くのケースでメモリ効率とキャッシュ効率が良くなるはずです。 https://t.co/NS5kN9J6oz"
kampersanda/doublearray-go: Go implementation of double-array minimal-prefix trie
かんぱさんださんのツイート: "簡単に実装するために、BASE/CHECKは単純なint配列です。"

ソート

κeenさんはTwitterを使っています 「バイトニックソート、ネットワークソートの一種というのを知っていれば瞬殺できる」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「ところで結構基本的なことがしばらく考えても解らず詰まっておる,具体的には “バイトニックソートがなぜソートになっているのかの正当性” が解らない(計算量を度外視した実装を見ても直観が湧かないどころか各補助函数の事前条件と事後条件が把握できない)」 / Twitter

経済や統計では重視される「識別」

成田 悠輔さんはTwitterを使っています 「機械学習モデルが実応用でうまく動いてくれないことが多いのは、評価データで同じ性能を達成する解が複数あることが原因だという主張。実はこれ、経済や統計では重視される「識別」が機械学習では無視されてることと同根なのはあまり知られていない https://t.co/mhOsLnwesQ」 / Twitter
[2011.03395] Underspecification Presents Challenges for Credibility in Modern Machine Learning

シャープレー値

成田 悠輔さんはTwitterを使っています 「1950年代にゲーム理論や経済学で誕生、その後絶滅したと思われてた概念(シャープレー値)が、5年ほど前からAIや機械学習でルネッサンスしてる。いったい何が起きているのか、これを読むとわかる https://t.co/TS28m9oWTj」 / Twitter
5.9 Shapley Values | Interpretable Machine Learning

伊津野 英克さんはTwitterを使っています 「古市さんが「GoTo批判にはエビデンスがない」と批判してたけど、ベイズ会計のエントリ書いてて気づいたのは、十分なデータがないなら、より妥当な事前分布が置かれてるかが重要ということ。エビデンス無くても西浦さんの見解を支持するのが科学的な態度だよ。」 / Twitter

Advent Calendar

自然言語処理 Advent Calendar 2016 - Qiita
自然言語処理 Advent Calendar 2017 - Qiita
漢直 Advent Calendar : ATND
漢直 advent calendar 2013 - connpass
漢直 Advent Calendar 2015 - Adventar
Androidでも漢直がしたかった話 - にせねこメモ
TUT-Code打鍵動画 - にせねこメモ
情報検索・検索エンジン Advent Calendar 2019 - Qiita
自然言語処理 Advent Calendar 2019 - Qiita
数理最適化 Advent Calendar 2020 - Qiita